1
0
mirror of https://github.com/golang/go synced 2024-11-17 02:14:42 -07:00
go/test/typeparam
Dan Scales d48f6d9f6f [dev.typeparams] Don't check typecheck(3) on transform, so no need to export/import it
We have a value typecheck(3) that indicates that a node in a generic
function still needs transformation (via the functions in transform.go).
But it is not very desirable to export/import the value of typecheck(3).
So, I changed the stenciling code to just try to transform all relevant
node types during node copy. Almost all tranform functions were already
idempotent. I only had to add an extra if check before calling
transformAssign() in the OAS case. We still use the typecheck(3) in
noder to determine when higher-nodes have to delay transformation
because one or more of their args are delaying transformation.

Added new test mapsimp.go that required these tranformations after import.

As an additional change, export/import of OINDEX requires exporting the
type using w.exoticType() rather than w.typ(), in order to handle
generic functions. Since generic functions can have pre-transform
operations, the index operation can have a tuple type (multiple return
from a map lookup).

Added printing of imported function bodies in -W=3 debug mode.

Change-Id: I220e2428dc5f2741e91db146f075eb5b6045f451
Reviewed-on: https://go-review.googlesource.com/c/go/+/322191
Trust: Dan Scales <danscales@google.com>
Run-TryBot: Dan Scales <danscales@google.com>
Reviewed-by: Keith Randall <khr@golang.org>
TryBot-Result: Go Bot <gobot@golang.org>
2021-05-24 22:17:33 +00:00
..
chansimp.dir [dev.typeparams] cmd/compile: fixing import of comm clauses/closures in generic functions 2021-05-21 23:13:46 +00:00
factimp.dir [dev.typeparams] cmd/compile: export OFUNCINST and OSELRECV2 nodes (for generic functions) 2021-05-21 17:03:30 +00:00
listimp2.dir [dev.typeparams] cmd/compile: Fix handling of Name nodes during stenciling 2021-05-24 22:16:09 +00:00
listimp.dir [dev.typeparams] cmd/compile: export OFUNCINST and OSELRECV2 nodes (for generic functions) 2021-05-21 17:03:30 +00:00
mapimp.dir [dev.typeparams] cmd/compile: add import/export of calls to builtin functions 2021-05-21 17:14:19 +00:00
mapsimp.dir [dev.typeparams] Don't check typecheck(3) on transform, so no need to export/import it 2021-05-24 22:17:33 +00:00
minimp.dir [dev.typeparams] cmd/compile: get export/import of generic types & functions working 2021-05-21 03:41:18 +00:00
pairimp.dir [dev.typeparams] cmd/compile: get export/import of generic types & functions working 2021-05-21 03:41:18 +00:00
sliceimp.dir [dev.typeparams] cmd/compile: fix handling of Nname field in (*subster).tstruct. 2021-05-21 23:25:07 +00:00
stringerimp.dir [dev.typeparams] cmd/compile: get export/import of generic types & functions working 2021-05-21 03:41:18 +00:00
valimp.dir [dev.typeparams] cmd/compile: get export/import of generic types & functions working 2021-05-21 03:41:18 +00:00
absdiff.go cmd/compile: getting more built-ins to work with generics 2021-03-17 16:53:00 +00:00
adder.go [dev.typeparams] cmd/compile: get export/import of generic types & functions working 2021-05-21 03:41:18 +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
chansimp.go [dev.typeparams] cmd/compile: fixing import of comm clauses/closures in generic functions 2021-05-21 23:13:46 +00:00
combine.go [dev.typeparams] cmd/compile: export OFUNCINST and OSELRECV2 nodes (for generic functions) 2021-05-21 17:03:30 +00:00
cons.go [dev.typeparams] cmd/compile: export OFUNCINST and OSELRECV2 nodes (for generic functions) 2021-05-21 17:03:30 +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
factimp.go [dev.typeparams] cmd/compile: export OFUNCINST and OSELRECV2 nodes (for generic functions) 2021-05-21 17:03:30 +00:00
graph.go cmd/compile: deal with comparable embedded in a constraint 2021-03-16 18:42:06 +00:00
importtest.go
index.go [dev.typeparams] cmd/compile: export OFUNCINST and OSELRECV2 nodes (for generic functions) 2021-05-21 17:03:30 +00:00
interfacearg.go cmd/compile: fix creation of named generic types (setting of t.nod) 2021-03-30 04:48:27 +00:00
issue45547.go cmd/compile: look for function in instantiations in all global assignments 2021-04-15 00:14:55 +00:00
issue45722.go cmd/compile: fix handling of ir.CurFunc during stenciling 2021-04-27 16:55:20 +00:00
issue45738.go cmd/compile: fix nongeneric closures in generic functions 2021-04-27 19:30:11 +00:00
issue45817.go [dev.typeparams] cmd/compile: fix use of method values with stenciled methods 2021-05-12 22:25:00 +00:00
list2.go [dev.typeparams] cmd/compile: Fix handling of Name nodes during stenciling 2021-05-24 22:16:09 +00:00
list.go cmd/compile: get untyped constants working in generic functions 2021-03-18 22:18:32 +00:00
listimp2.go [dev.typeparams] cmd/compile: Fix handling of Name nodes during stenciling 2021-05-24 22:16:09 +00:00
listimp.go [dev.typeparams] cmd/compile: move to new export version, keep reading previous version 2021-05-21 04:03:26 +00:00
lockable.go [dev.typeparams] cmd/compile: export OFUNCINST and OSELRECV2 nodes (for generic functions) 2021-05-21 17:03:30 +00:00
map.go [dev.typeparams] cmd/compile: small fixes for stenciling 2021-02-11 21:46:39 +00:00
mapimp.go [dev.typeparams] cmd/compile: add import/export of calls to builtin functions 2021-05-21 17:14:19 +00:00
maps.go cmd/compile: add support for generic maps 2021-03-15 20:28:34 +00:00
mapsimp.go [dev.typeparams] Don't check typecheck(3) on transform, so no need to export/import it 2021-05-24 22:17:33 +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: get export/import of generic types & functions working 2021-05-21 03:41:18 +00:00
minimp.go [dev.typeparams] cmd/compile: get export/import of generic types & functions working 2021-05-21 03:41:18 +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: get export/import of generic types & functions working 2021-05-21 03:41:18 +00:00
pairimp.go [dev.typeparams] cmd/compile: get export/import of generic types & functions working 2021-05-21 03:41:18 +00:00
pragma.go cmd/compile: propagate pragmas from generic function to stenciled implementation 2021-04-15 00:29:05 +00:00
sets.go cmd/compile: add support for generic maps 2021-03-15 20:28:34 +00:00
settable.go [dev.typeparams] cmd/compile: get export/import of generic types & functions working 2021-05-21 03:41:18 +00:00
sliceimp.go [dev.typeparams] cmd/compile: fix handling of Nname field in (*subster).tstruct. 2021-05-21 23:25:07 +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: get export/import of generic types & functions working 2021-05-21 03:41:18 +00:00
smoketest.go
stringable.go [dev.typeparams] cmd/compile: get export/import of generic types & functions working 2021-05-21 03:41:18 +00:00
stringer.go [dev.typeparams] cmd/compile: small fixes for stenciling 2021-02-11 21:46:39 +00:00
stringerimp.go [dev.typeparams] cmd/compile: get export/import of generic types & functions working 2021-05-21 03:41:18 +00:00
struct.go [dev.typeparams] cmd/compile: get export/import of generic types & functions working 2021-05-21 03:41:18 +00:00
sum.go [dev.typeparams] cmd/compile: get export/import of generic types & functions working 2021-05-21 03:41:18 +00:00
tparam1.go
typelist.go cmd/compile: deal correctly with unnamed function params during stenciling 2021-03-31 00:52:26 +00:00
valimp.go [dev.typeparams] cmd/compile: get export/import of generic types & functions working 2021-05-21 03:41:18 +00:00
value.go [dev.typeparams] cmd/compile: support generic types (with stenciling of method calls) 2021-02-18 22:37:06 +00:00