go/test/typeparam
Dan Scales 229b909313 cmd/compile: don't do Resolve on OKEY identifiers during import
For generic functions, we can export untransformed OKEY nodes, and the
key identifier is written as an ONONAME. But in this case, we do not
want to call Resolve() on the identifier, since we may resolve to a
global type (as happens in this issue) or other global symbol with the
same name, if it exists. We just want to keep the key identifier as an
Ident node.

To solve this, I added an extra bool when exporting an ONONAME entry,
which indicates if this entry is for a key or for a global (external)
symbol. When the bool is true (this is for a key), we avoid calling
Resolve().

Fixes #49497

Change-Id: Ic8fa93d37bcad2110e0e0d060080b733e07e35d7
Reviewed-on: https://go-review.googlesource.com/c/go/+/363074
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-11-10 21:53:03 +00:00
..
absdiffimp.dir
aliasimp.dir
chansimp.dir
dedup.dir
factimp.dir
geninline.dir
issue46461b.dir
issue47514c.dir
issue47775.dir
issue47892.dir
issue47892b.dir
issue48094.dir
issue48094b.dir
issue48185a.dir
issue48185b.dir
issue48280.dir
issue48306.dir
issue48337a.dir
issue48337b.dir
issue48454.dir
issue48462.dir
issue48716.dir
issue49027.dir
issue49241.dir
issue49246.dir
issue49497.dir cmd/compile: don't do Resolve on OKEY identifiers during import 2021-11-10 21:53:03 +00:00
listimp.dir
listimp2.dir
mapimp.dir
mapsimp.dir
mdempsky
mincheck.dir
minimp.dir
mutualimp.dir
orderedmapsimp.dir
pairimp.dir
recoverimp.dir
setsimp.dir
sliceimp.dir
stringerimp.dir
valimp.dir
absdiff.go
absdiffimp.go
adder.go
aliasimp.go
append.go
boundmethod.go
builtins.go
chans.go
chansimp.go
combine.go
cons.go
dedup.go
dedup.out
dictionaryCapture-noinline.go
dictionaryCapture.go
dottype.go
dottype.out
double.go
eface.go
equal.go
fact.go
factimp.go
genembed.go
genembed2.go
geninline.go
graph.go
ifaceconv.go
importtest.go
index.go
index2.go
interfacearg.go
issue39755.go
issue44688.go
issue45547.go
issue45722.go
issue45738.go
issue45817.go
issue46461.go
issue46461b.go
issue46472.go
issue46591.go
issue47258.go
issue47272.go
issue47272.out
issue47514.go
issue47514b.go
issue47514c.go
issue47676.go
issue47684.go
issue47684b.go
issue47684c.go
issue47708.go
issue47710.go
issue47713.go
issue47713.out
issue47716.go
issue47723.go
issue47740.go
issue47740.out
issue47740b.go
issue47775.go
issue47775b.go
issue47797.go
issue47877.go
issue47878.go
issue47892.go
issue47892b.go
issue47896.go
issue47901.go
issue47924.go
issue47925.go
issue47925b.go
issue47925c.go
issue47925d.go
issue47929.go
issue47948.go
issue47966.go
issue48013.go
issue48016.go
issue48030.go
issue48042.go
issue48047.go
issue48049.go
issue48056.go
issue48094.go
issue48094b.go
issue48137.go
issue48185a.go
issue48185b.go
issue48191.go
issue48198.go
issue48225.go
issue48253.go
issue48276a.go
issue48276a.out
issue48276b.go
issue48280.go
issue48306.go
issue48317.go
issue48318.go
issue48337a.go
issue48337a.out
issue48337b.go
issue48344.go
issue48424.go
issue48453.go
issue48454.go
issue48462.go
issue48537.go
issue48538.go
issue48598.go
issue48602.go
issue48604.go
issue48609.go
issue48617.go
issue48645a.go
issue48645a.out
issue48645b.go
issue48711.go
issue48716.go
issue48838.go
issue48962.go
issue49027.go
issue49049.go
issue49241.go
issue49246.go
issue49295.go
issue49309.go
issue49421.go
issue49432.go
issue49497.go cmd/compile: don't do Resolve on OKEY identifiers during import 2021-11-10 21:53:03 +00:00
list.go
list2.go
listimp.go
listimp2.go
lockable.go
map.go
mapimp.go
maps.go
mapsimp.go
metrics.go
min.go
mincheck.go
minimp.go
mutualimp.go
nested.go
nested.out
ordered.go
orderedmap.go
orderedmapsimp.go
pair.go
pairimp.go
pragma.go
recoverimp.go
recoverimp.out
sets.go
setsimp.go
settable.go
shape1.go
shape1.out
sliceimp.go
slices.go
smallest.go
smoketest.go
stringable.go
stringer.go
stringerimp.go
struct.go
subdict.go
sum.go
tparam1.go
typelist.go
typeswitch1.go
typeswitch1.out
typeswitch2.go
typeswitch2.out
typeswitch3.go
typeswitch3.out
typeswitch4.go
typeswitch4.out
typeswitch5.go
typeswitch5.out
typeswitch6.go
typeswitch6.out
typeswitch7.go
typeswitch7.out
valimp.go
value.go