1
0
mirror of https://github.com/golang/go synced 2024-11-17 02:54:45 -07:00
go/test/typeparam
Dan Scales 9f4d6a8359 [dev.typeparams] cmd/compile: call transformArgs before early typecheckaste in noder
In the cases where we do an early call to typecheckaste() in noder to
expose CONVIFACE nodes, we need a preceding call to transformArgs().
This is needed to allow typecheckaste() to run correctly, in the case of
f(g()), where g has multiple return values.

I also cleaned up the code a bit and commented the code in Call(), and
we do the call to typecheckaste() in several more cases.

In stencil.go:stencil(), I moved the transformCall earlier for the
OCALLMETH/ODOTMETH case, just as I did in my previous CL for
OCALL/OFUNCINST. By doing this, transformArgs no longer needs to deal
with the extra dictionary args. Therefore, I was able to simply
transformArgs() to look like typecheckargs() again, and make use of
RewriteMultiValue directly.

Updates #47514

Change-Id: I49eb82ac05707e50c2e2fb03e39458a70491d406
Reviewed-on: https://go-review.googlesource.com/c/go/+/340531
Trust: Dan Scales <danscales@google.com>
Run-TryBot: Dan Scales <danscales@google.com>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Keith Randall <khr@golang.org>
2021-08-09 19:43:09 +00:00
..
absdiffimp.dir [dev.typeparams] test/typeparam: gofmt -w 2021-07-28 21:40:40 +00:00
aliasimp.dir [dev.typeparams] test/typeparam: gofmt -w 2021-07-28 21:40:40 +00:00
chansimp.dir [dev.typeparams] test/typeparam: gofmt -w 2021-07-28 21:40:40 +00:00
dedup.dir [dev.typeparams] cmd/compile: put shape types in their own package 2021-08-04 17:56:00 +00:00
factimp.dir [dev.typeparams] test/typeparam: gofmt -w 2021-07-28 21:40:40 +00:00
listimp2.dir [dev.typeparams] test/typeparam: gofmt -w 2021-07-28 21:40:40 +00:00
listimp.dir [dev.typeparams] test/typeparam: gofmt -w 2021-07-28 21:40:40 +00:00
mapimp.dir [dev.typeparams] test/typeparam: gofmt -w 2021-07-28 21:40:40 +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
mdempsky [dev.typeparams] cmd/compile: fixing case where type arg is an interface 2021-08-05 17:33:41 +00:00
mincheck.dir [dev.typeparams] cmd/compile/internal/types2: implement type sets with term lists 2021-08-05 19:36:47 +00:00
minimp.dir [dev.typeparams] test/typeparam: gofmt -w 2021-07-28 21:40:40 +00:00
mutualimp.dir [dev.typeparams] test/typeparam: gofmt -w 2021-07-28 21:40:40 +00:00
orderedmapsimp.dir [dev.typeparams] test/typeparam: gofmt -w 2021-07-28 21:40:40 +00:00
pairimp.dir [dev.typeparams] test/typeparam: gofmt -w 2021-07-28 21:40:40 +00:00
setsimp.dir [dev.typeparams] cmd/compile: always generate (*T).M wrappers for instantiated methods 2021-05-26 21:39:54 +00:00
sliceimp.dir [dev.typeparams] test/typeparam: gofmt -w 2021-07-28 21:40:40 +00:00
stringerimp.dir
valimp.dir [dev.typeparams] test/typeparam: gofmt -w 2021-07-28 21:40:40 +00:00
absdiff.go [dev.typeparams] test/typeparam: gofmt -w 2021-07-28 21:40:40 +00:00
absdiffimp.go [dev.typeparams] cmd/compile: export/import of recursive generic types. 2021-06-04 16:43:27 +00:00
adder.go [dev.typeparams] test: update all the typeparam tests to use the new union/tilde syntax 2021-06-03 16:05:22 +00:00
aliasimp.go [dev.typeparams] cmd/compile: get type aliases working with generic types 2021-05-26 21:38:54 +00:00
append.go
boundmethod.go [dev.typeparams] cmd/compile: handle meth expressions on typeparams 2021-07-29 21:58:06 +00:00
builtins.go [dev.typeparams] cmd/compile/internal/types2: fix make with type parameter argument 2021-08-06 20:34:46 +00:00
chans.go [dev.typeparams] test/typeparam: gofmt -w 2021-07-28 21:40:40 +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] test/typeparam: gofmt -w 2021-07-28 21:40:40 +00:00
cons.go [dev.typeparams] test/typeparam: gofmt -w 2021-07-28 21:40:40 +00:00
dedup.go [dev.typeparams] cmd/compile: put shape types in their own package 2021-08-04 17:56:00 +00:00
dedup.out [dev.typeparams] cmd/compile: put shape types in their own package 2021-08-04 17:56:00 +00:00
dictionaryCapture-noinline.go [dev.typeparams] test/typeparam: gofmt -w 2021-07-28 21:40:40 +00:00
dictionaryCapture.go [dev.typeparams] test/typeparam: gofmt -w 2021-07-28 21:40:40 +00:00
dottype.go [dev.typeparams] cmd/compile: implement generic .(T) operations 2021-07-29 17:15:21 +00:00
dottype.out [dev.typeparams] cmd/compile: implement generic .(T) operations 2021-07-29 17:15:21 +00:00
double.go [dev.typeparams] test/typeparam: gofmt -w 2021-07-28 21:40:40 +00:00
equal.go [dev.typeparams] test/typeparam: gofmt -w 2021-07-28 21:40:40 +00:00
fact.go [dev.typeparams] test/typeparam: gofmt -w 2021-07-28 21:40:40 +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 [dev.typeparams] test/typeparam: gofmt -w 2021-07-28 21:40:40 +00:00
ifaceconv.go [dev.typeparams] test/typeparam: gofmt -w 2021-07-28 21:40:40 +00:00
importtest.go
index.go [dev.typeparams] test/typeparam: gofmt -w 2021-07-28 21:40:40 +00:00
interfacearg.go [dev.typeparams] test/typeparam: gofmt -w 2021-07-28 21:40:40 +00:00
issue39755.go [dev.typeparams] test/typeparam: gofmt -w 2021-07-28 21:40:40 +00:00
issue44688.go [dev.typeparams] test/typeparam: gofmt -w 2021-07-28 21:40:40 +00:00
issue45547.go [dev.typeparams] test: rename blank functions 2021-07-28 21:41:07 +00:00
issue45722.go
issue45738.go
issue45817.go [dev.typeparams] test/typeparam: gofmt -w 2021-07-28 21:40:40 +00:00
issue46472.go [dev.typeparams] test/typeparam: gofmt -w 2021-07-28 21:40:40 +00:00
issue47258.go [dev.typeparams] test/typeparam: gofmt -w 2021-07-28 21:40:40 +00:00
issue47514.go [dev.typeparams] cmd/compile: make sure closures inside generic funcs are not compiled 2021-08-06 18:50:46 +00:00
issue47514b.go [dev.typeparams] cmd/compile: call transformArgs before early typecheckaste in noder 2021-08-09 19:43:09 +00:00
list2.go [dev.typeparams] test/typeparam: gofmt -w 2021-07-28 21:40:40 +00:00
list.go [dev.typeparams] test/typeparam: gofmt -w 2021-07-28 21:40:40 +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
lockable.go [dev.typeparams] test/typeparam: gofmt -w 2021-07-28 21:40:40 +00:00
map.go
mapimp.go [dev.typeparams] cmd/compile: add import/export of calls to builtin functions 2021-05-21 17:14:19 +00:00
maps.go
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
min.go [dev.typeparams] test: update all the typeparam tests to use the new union/tilde syntax 2021-06-03 16:05:22 +00:00
mincheck.go [dev.typeparams] cmd/compile: adding union support in types1 2021-05-26 15:33:02 +00:00
minimp.go
mutualimp.go [dev.typeparams] cmd/compile: create .dict Param in the package of the instantiated function 2021-06-07 19:34:39 +00:00
nested.go [dev.typeparams] test: add expected failure mechanism 2021-07-07 11:12:13 +00:00
nested.out [dev.typeparams] cmd/compile/internal/types2: support local defined types 2021-06-16 21:38:50 +00:00
ordered.go [dev.typeparams] test/typeparam: gofmt -w 2021-07-28 21:40:40 +00:00
orderedmap.go [dev.typeparams] test/typeparam: gofmt -w 2021-07-28 21:40:40 +00:00
orderedmapsimp.go [dev.typeparams] cmd/compile: export/import of recursive generic types. 2021-06-04 16:43:27 +00:00
pair.go [dev.typeparams] test/typeparam: gofmt -w 2021-07-28 21:40:40 +00:00
pairimp.go
pragma.go
sets.go [dev.typeparams] test/typeparam: gofmt -w 2021-07-28 21:40:40 +00:00
setsimp.go [dev.typeparams] cmd/compile: always generate (*T).M wrappers for instantiated methods 2021-05-26 21:39:54 +00:00
settable.go [dev.typeparams] test/typeparam: gofmt -w 2021-07-28 21:40:40 +00:00
shape1.go [dev.typeparams] cmd/compile: make all pointer types have the same shape 2021-07-31 17:03:07 +00:00
shape1.out [dev.typeparams] cmd/compile: make all pointer types have the same shape 2021-07-31 17:03:07 +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 [dev.typeparams] test/typeparam: gofmt -w 2021-07-28 21:40:40 +00:00
smallest.go [dev.typeparams] test/typeparam: gofmt -w 2021-07-28 21:40:40 +00:00
smoketest.go [dev.typeparams] test/typeparam: gofmt -w 2021-07-28 21:40:40 +00:00
stringable.go [dev.typeparams] test/typeparam: gofmt -w 2021-07-28 21:40:40 +00:00
stringer.go
stringerimp.go
struct.go [dev.typeparams] test/typeparam: gofmt -w 2021-07-28 21:40:40 +00:00
subdict.go [dev.typeparams] test/typeparam: gofmt -w 2021-07-28 21:40:40 +00:00
sum.go [dev.typeparams] test/typeparam: gofmt -w 2021-07-28 21:40:40 +00:00
tparam1.go [dev.typeparams] test/typeparam: gofmt -w 2021-07-28 21:40:40 +00:00
typelist.go [dev.typeparams] test: rename blank functions 2021-07-28 21:41:07 +00:00
typeswitch1.go [dev.typeparams] cmd/compile: implement generic type switches 2021-08-09 18:41:45 +00:00
typeswitch1.out [dev.typeparams] cmd/compile: implement generic type switches 2021-08-09 18:41:45 +00:00
typeswitch2.go [dev.typeparams] cmd/compile: implement generic type switches 2021-08-09 18:41:45 +00:00
typeswitch2.out [dev.typeparams] cmd/compile: implement generic type switches 2021-08-09 18:41:45 +00:00
typeswitch3.go [dev.typeparams] cmd/compile: implement generic type switches 2021-08-09 18:41:45 +00:00
typeswitch3.out [dev.typeparams] cmd/compile: implement generic type switches 2021-08-09 18:41:45 +00:00
typeswitch4.go [dev.typeparams] cmd/compile: implement generic type switches 2021-08-09 18:41:45 +00:00
typeswitch4.out [dev.typeparams] cmd/compile: implement generic type switches 2021-08-09 18:41:45 +00:00
typeswitch5.go [dev.typeparams] cmd/compile: implement generic type switches 2021-08-09 18:41:45 +00:00
typeswitch5.out [dev.typeparams] cmd/compile: implement generic type switches 2021-08-09 18:41:45 +00:00
valimp.go
value.go [dev.typeparams] cmd/compile: export/import of recursive generic types. 2021-06-04 16:43:27 +00:00