]> Cypherpunks repositories - gostls13.git/commit
[dev.typeparams] cmd/compile: call transformArgs before early typecheckaste in noder
authorDan Scales <danscales@google.com>
Fri, 6 Aug 2021 20:24:14 +0000 (13:24 -0700)
committerDan Scales <danscales@google.com>
Mon, 9 Aug 2021 19:43:09 +0000 (19:43 +0000)
commit9f4d6a83594a04f0fc82c33f373b7e7bcf64f7f2
treebf60a5655f608dbb238f6e1803ad0adf9221d271
parentca3c6985cd143f170699d22ed984b7eed0f68e4d
[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>
src/cmd/compile/internal/noder/helpers.go
src/cmd/compile/internal/noder/stencil.go
src/cmd/compile/internal/noder/stmt.go
src/cmd/compile/internal/noder/transform.go
test/typeparam/issue47514b.go [new file with mode: 0644]