]> Cypherpunks repositories - gostls13.git/commit
cmd/compile: reuse same node for global dictionaries
authorDan Scales <danscales@google.com>
Mon, 23 Aug 2021 22:45:10 +0000 (15:45 -0700)
committerDan Scales <danscales@google.com>
Tue, 24 Aug 2021 00:01:29 +0000 (00:01 +0000)
commit8eeb1bff1d7107828b41af08e599c78fc36bab30
tree5c041afd02fc4076e97def9a026ef13d25a23b84
parentbe1a6934776a3c7f636932918e756b44b6510214
cmd/compile: reuse same node for global dictionaries

Change stencil.go:getDictionaryValue() and reflect.go:getDictionary() to
reuse any existing name node that has been created for the needed global
dictionary. Otherwise, these functions may set the Def on a specific
dictionary sym to two different name nodes, which means the first node
will not satisfy the invariant 'n.Sym().Def.(*ir.Name) == n' (which is
the assertion in this issue).

Fixes #47896

Change-Id: I1e7ae1efd077a83c7878b4342feb6d28d52476cc
Reviewed-on: https://go-review.googlesource.com/c/go/+/344609
Run-TryBot: Dan Scales <danscales@google.com>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Keith Randall <khr@golang.org>
Trust: Dan Scales <danscales@google.com>
src/cmd/compile/internal/noder/stencil.go
src/cmd/compile/internal/reflectdata/reflect.go
test/typeparam/issue47896.go [new file with mode: 0644]