]> Cypherpunks repositories - gostls13.git/commit
[dev.typeparams] cmd/compile: Fix handling of Name nodes during stenciling
authorDan Scales <danscales@google.com>
Wed, 12 May 2021 02:29:10 +0000 (19:29 -0700)
committerDan Scales <danscales@google.com>
Mon, 24 May 2021 22:16:09 +0000 (22:16 +0000)
commit4c50721cda74abbf7732638f39a23dfbf6271a48
treec8114694dc3a5aa478aaf1a26d2b12d37741dfc8
parentdcaf785add683fdda9bd0e53395c17c55779a8ac
[dev.typeparams] cmd/compile:  Fix handling of Name nodes during stenciling

The name substitution for stenciling was incorrectly handling non-local
names. Made changes to explicitly built the vars[] name substitution map
based on the local variables (similar to what inlining substitution
does). Then, we we are stenciling a name node, we do NOT make a copy of
the name node if it is not in vars[], since it is then a reference to an
external name. Added new function localvar() to create the new nodes for
the local variables and put them in the vars[] map.

New test listimp2.go, added missing test calls in list2.go

Change-Id: I8946478250c7bf2bd31c3247089bd50cfeeda0fd
Reviewed-on: https://go-review.googlesource.com/c/go/+/322190
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/stencil.go
test/typeparam/list2.go
test/typeparam/listimp2.dir/a.go [new file with mode: 0644]
test/typeparam/listimp2.dir/main.go [new file with mode: 0644]
test/typeparam/listimp2.go [new file with mode: 0644]