go/test/typeparam
Dan Scales 5b64381155 cmd/compile: fix naming of types inside instantiations
Issues 47713 and 47877 were both due to problems with the names used for
instantiated functions/methods, which must be in sync with the names
used by types2.

 - Switched to using NameString() for writing out type arguments in
   instantiation names. This ensures that we are always adding the
   package to type names even for the local package. Previously, we were
   explicitly adding the package name for local packages, but that
   doesn't handle the case when the local type is embedded inside a
   pointer or slice type. By switching to NameString(), we fix #47713.

 - types1 and types2 write out 'interface {' differently (vs.
   'interface{') and we were already handling that. But we needed to add
   similar code to handle 'struct {' vs 'struct{'. This fixes issue
   #47877.

While fixing these bugs, I also moved some duplicated code (which
include some of the changes above) into a common function addTargs(). I
also moved InstType() name to subr.go, and renamed: MakeInstName ->
MakeFuncInstSym and MakeDictName -> MakeDictSym.

Also removed a couple of ".inst..inst." prefix checks which are
irrelvant now, since we don't add ".inst." anymore to function
instantiations.

Fixes #47713
Fixes #47877
Fixes #47922

Change-Id: I19e9a073451f3ababd8ec31b6608cd79ba8cba36
Reviewed-on: https://go-review.googlesource.com/c/go/+/344613
Trust: Dan Scales <danscales@google.com>
Reviewed-by: Keith Randall <khr@golang.org>
2021-08-24 18:30:13 +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
issue47775.dir cmd/compile: always remove receiver type from instantiated method values 2021-08-23 19:27:46 +00:00
listimp.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
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 [dev.typeparams] cmd/compile: get export/import of generic types & functions working 2021-05-21 03:41:18 +00:00
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 cmd/compile: getting more built-ins to work with generics 2021-03-17 16:53:00 +00:00
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 [dev.typeparams] cmd/compile: use existing findpkg algorithm when importing through types2 2020-11-11 01:11:43 +00:00
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 cmd/compile: fix handling of ir.CurFunc during stenciling 2021-04-27 16:55:20 +00:00
issue45738.go cmd/compile: fix nongeneric closures in generic functions 2021-04-27 19:30:11 +00:00
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
issue46591.go test/typeparam: add a test case for issue46591 2021-08-20 21:00:08 +00:00
issue47258.go [dev.typeparams] test/typeparam: gofmt -w 2021-07-28 21:40:40 +00:00
issue47272.go cmd/compile: fix CONVIFACE case converting interface to empty interface 2021-08-17 13:23:13 +00:00
issue47272.out cmd/compile: fix CONVIFACE case converting interface to empty interface 2021-08-17 13:23:13 +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
issue47684.go cmd/compile: fix dictionaries for nested closures 2021-08-16 16:55:27 +00:00
issue47684b.go cmd/compile: fix dictionaries for nested closures 2021-08-16 16:55:27 +00:00
issue47684c.go cmd/compile: fix dictionaries for nested closures 2021-08-16 16:55:27 +00:00
issue47713.go cmd/compile: fix naming of types inside instantiations 2021-08-24 18:30:13 +00:00
issue47713.out cmd/compile: fix naming of types inside instantiations 2021-08-24 18:30:13 +00:00
issue47716.go cmd/compile: fixes for non-constant Sizeof/Alignof/Offsetof 2021-08-23 22:55:34 +00:00
issue47723.go cmd/compile: copy captured dictionary var to local var 2021-08-23 17:51:41 +00:00
issue47740.go cmd/compile: only use dictionaries for conversions to type parameters 2021-08-18 22:34:31 +00:00
issue47740.out cmd/compile: only use dictionaries for conversions to type parameters 2021-08-18 22:34:31 +00:00
issue47740b.go cmd/compile: only use dictionaries for conversions to type parameters 2021-08-18 22:34:31 +00:00
issue47775.go cmd/compile: always remove receiver type from instantiated method values 2021-08-23 19:27:46 +00:00
issue47775b.go cmd/compile: always remove receiver type from instantiated method values 2021-08-23 19:27:46 +00:00
issue47877.go cmd/compile: fix naming of types inside instantiations 2021-08-24 18:30:13 +00:00
issue47896.go cmd/compile: reuse same node for global dictionaries 2021-08-24 00:01:29 +00:00
list.go [dev.typeparams] test/typeparam: gofmt -w 2021-07-28 21:40:40 +00:00
list2.go [dev.typeparams] test/typeparam: gofmt -w 2021-07-28 21:40:40 +00:00
listimp.go [dev.typeparams] cmd/compile: move to new export version, keep reading previous version 2021-05-21 04:03:26 +00:00
listimp2.go [dev.typeparams] cmd/compile: Fix handling of Name nodes during stenciling 2021-05-24 22:16:09 +00:00
lockable.go [dev.typeparams] test/typeparam: gofmt -w 2021-07-28 21:40:40 +00:00
map.go [dev.typeparams] cmd/compile: small fixes for stenciling 2021-02-11 21:46:39 +00:00
mapimp.go [dev.typeparams] cmd/compile: add import/export of calls to builtin functions 2021-05-21 17:14:19 +00:00
maps.go cmd/compile: add support for generic maps 2021-03-15 20:28:34 +00:00
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 cmd/compile: fix case where func-valued field of a generic type is called 2021-03-15 20:29:11 +00:00
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 [dev.typeparams] cmd/compile: get export/import of generic types & functions working 2021-05-21 03:41:18 +00:00
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 [dev.typeparams] cmd/compile: get export/import of generic types & functions working 2021-05-21 03:41:18 +00:00
pragma.go cmd/compile: propagate pragmas from generic function to stenciled implementation 2021-04-15 00:29:05 +00:00
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 all: fix typos 2021-08-17 13:54:10 +00:00
smallest.go [dev.typeparams] test/typeparam: gofmt -w 2021-07-28 21:40:40 +00:00
smoketest.go cmd/compile: enable -G=3 by default 2021-08-21 00:24:02 +00:00
stringable.go [dev.typeparams] test/typeparam: gofmt -w 2021-07-28 21:40:40 +00:00
stringer.go [dev.typeparams] cmd/compile: small fixes for stenciling 2021-02-11 21:46:39 +00:00
stringerimp.go [dev.typeparams] cmd/compile: get export/import of generic types & functions working 2021-05-21 03:41:18 +00:00
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] cmd/compile/internal/types2: parameterized functions must have a body 2021-08-10 01:20:34 +00:00
typelist.go [dev.typeparams] cmd/compile/internal/types2: parameterized functions must have a body 2021-08-10 01:20:34 +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
typeswitch6.go [dev.typeparams] cmd/compile: handle interface type parameters in type switches 2021-08-10 01:56:50 +00:00
typeswitch6.out [dev.typeparams] cmd/compile: handle interface type parameters in type switches 2021-08-10 01:56:50 +00:00
typeswitch7.go [dev.typeparams] cmd/compile: handle interface type parameters in type switches 2021-08-10 01:56:50 +00:00
typeswitch7.out [dev.typeparams] cmd/compile: handle interface type parameters in type switches 2021-08-10 01:56:50 +00:00
valimp.go [dev.typeparams] cmd/compile: get export/import of generic types & functions working 2021-05-21 03:41:18 +00:00
value.go [dev.typeparams] cmd/compile: export/import of recursive generic types. 2021-06-04 16:43:27 +00:00