go/test/typeparam
Dan Scales dca9c11845 cmd/compile: add support for generic channels and type conversion during calls
Add support for channels in subster.typ(). Add new test file chans.go.

To support assignability of bidirectional channel args to directional
channel params, I needed to type check generic calls after they are
instantiated. (Eventually, we will create separate functions to just do
the assignability logic, so we don't need to call the old typechecker in
this case.) So, for generic calls, we now leave the call as OCALL (as a
signal that the call still needs typechecking), and do typecheck.Call()
during stenciling.

Smaller changes:
 - Set the type of an instantiated OCLOSURE node (and not just the associated
   OFUNC node)

 - In instTypeName2, filter out the space that types2.TypeString inserts
   after a common in a typelist. Our standard naming requires no space
   after the comma.

 - With the assignability fix above, I no longer need the explicit
   conversions in cons.go.

Change-Id: I148858bfc6708c0aa3f50bad7debce2b8c8c091f
Reviewed-on: https://go-review.googlesource.com/c/go/+/301669
Trust: Dan Scales <danscales@google.com>
Trust: Robert Griesemer <gri@golang.org>
Reviewed-by: Robert Griesemer <gri@golang.org>
2021-03-15 20:28:10 +00:00
..
absdiff.go cmd/compile: deal with helper generic types that add methods to T 2021-03-10 17:36:55 +00:00
chans.go cmd/compile: add support for generic channels and type conversion during calls 2021-03-15 20:28:10 +00:00
combine.go cmd/compile: deal with closures in generic functions and instantiated function values 2021-02-26 18:57:20 +00:00
cons.go cmd/compile: add support for generic channels and type conversion during calls 2021-03-15 20:28:10 +00:00
fact.go [dev.typeparams] cmd/compile: make type conversions by type parameters work 2021-02-10 03:33:05 +00:00
importtest.go [dev.typeparams] cmd/compile: use existing findpkg algorithm when importing through types2 2020-11-11 01:11:43 +00:00
index.go [dev.typeparams] cmd/compile: small fixes for stenciling 2021-02-11 21:46:39 +00:00
list.go [dev.typeparams] cmd/compile: support generic types (with stenciling of method calls) 2021-02-18 22:37:06 +00:00
lockable.go cmd/compile: fix noder.Addr() to not call typechecker 2021-03-12 02:30:33 +00:00
map.go [dev.typeparams] cmd/compile: small fixes for stenciling 2021-02-11 21:46:39 +00:00
min.go [dev.typeparams] cmd/compile: small fixes for stenciling 2021-02-11 21:46:39 +00:00
ordered.go cmd/compile: get instantiated generic types working with interfaces 2021-03-09 16:37:52 +00:00
pair.go [dev.typeparams] cmd/compile: support generic types (with stenciling of method calls) 2021-02-18 22:37:06 +00:00
settable.go cmd/compile: fix handling of partially inferred type arguments 2021-03-11 00:31:14 +00:00
smallest.go [dev.typeparams] cmd/compile: small fixes for stenciling 2021-02-11 21:46:39 +00:00
smoketest.go [dev.typeparams] cmd/compile: enable type-checking of generic code 2020-10-27 03:37:05 +00:00
stringable.go [dev.typeparams] cmd/compile: support generic types (with stenciling of method calls) 2021-02-18 22:37:06 +00:00
stringer.go [dev.typeparams] cmd/compile: small fixes for stenciling 2021-02-11 21:46:39 +00:00
struct.go [dev.typeparams] cmd/compile: support generic types (with stenciling of method calls) 2021-02-18 22:37:06 +00:00
sum.go [dev.typeparams] cmd/compile: small fixes for stenciling 2021-02-11 21:46:39 +00:00
tparam1.go [dev.typeparams] cmd/compile/internal/types2: set compiler error message for undeclared variable 2020-12-02 04:48:13 +00:00
value.go [dev.typeparams] cmd/compile: support generic types (with stenciling of method calls) 2021-02-18 22:37:06 +00:00