1
0
mirror of https://github.com/golang/go synced 2024-11-11 20:01:37 -07:00
go/test/typeparam
Dan Scales 0265b6475f cmd/compile: replace calls to typecheck with transform functions
For additions, compares, and slices, create transform functions that do
just the transformations for those nodes by the typecheck package (given
that the code has been fully typechecked by types2). For nodes that have
no args with typeparams, we call these transform functions directly in
noder2. But for nodes that have args with typeparams, we have to delay
and call the tranform functions during stenciling, since we don't know
the specific types involved.

We indicate that a node still needs transformation by setting Typecheck
to a new value 3. This value means the current type of the node has been
set (via types2), but the node may still need transformation.

Had to export typcheck.IsCmp and typecheck.Assignop from the typecheck
package.

Added new tests list2.go (required delaying compare typecheck/transform
because of != compare in checkList) and adder.go (requires delaying add
typecheck/transform, since it can do addition for numbers or strings).

There are several more transformation functions needed for expressions
(indexing, calls, etc.) and several more complicated ones needed for
statements (mainly various kinds of assignments).

Change-Id: I7d89d13a4108308ea0304a4b815ab60b40c59b0a
Reviewed-on: https://go-review.googlesource.com/c/go/+/303091
Run-TryBot: Dan Scales <danscales@google.com>
TryBot-Result: Go Bot <gobot@golang.org>
Trust: Dan Scales <danscales@google.com>
Trust: Robert Griesemer <gri@golang.org>
Reviewed-by: Robert Griesemer <gri@golang.org>
2021-03-23 04:23:52 +00:00
..
absdiff.go cmd/compile: getting more built-ins to work with generics 2021-03-17 16:53:00 +00:00
adder.go cmd/compile: replace calls to typecheck with transform functions 2021-03-23 04:23:52 +00:00
append.go cmd/compile: getting more built-ins to work with generics 2021-03-17 16:53:00 +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
double.go cmd/compile: get untyped constants working in generic functions 2021-03-18 22:18:32 +00:00
fact.go [dev.typeparams] cmd/compile: make type conversions by type parameters work 2021-02-10 03:33:05 +00:00
graph.go cmd/compile: deal with comparable embedded in a constraint 2021-03-16 18:42:06 +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
list2.go cmd/compile: replace calls to typecheck with transform functions 2021-03-23 04:23:52 +00:00
list.go cmd/compile: get untyped constants working in generic functions 2021-03-18 22:18:32 +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
maps.go cmd/compile: add support for generic maps 2021-03-15 20:28:34 +00:00
metrics.go cmd/compile: fix case where func-valued field of a generic type is called 2021-03-15 20:29:11 +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
orderedmap.go cmd/compile: fix case where func-valued field of a generic type is called 2021-03-15 20:29:11 +00:00
pair.go [dev.typeparams] cmd/compile: support generic types (with stenciling of method calls) 2021-02-18 22:37:06 +00:00
sets.go cmd/compile: add support for generic maps 2021-03-15 20:28:34 +00:00
settable.go cmd/compile: getting more built-ins to work with generics 2021-03-17 16:53:00 +00:00
slices.go cmd/compile: fix case where func-valued field of a generic type is called 2021-03-15 20:29:11 +00:00
smallest.go [dev.typeparams] cmd/compile: small fixes for stenciling 2021-02-11 21:46:39 +00:00
smoketest.go
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