go/test/typeparam
Keith Randall 6a35e07512 cmd/compile: fix stenciling of conversions between interfaces
Conversions need to allow nil through.
We do that using a CONVIFACE instead of a DOTTYPE.

Also reorganize how nonempty interfaces are handled.
For nonempty to empty, a simple CONVIFACE suffices.
For nonempty to nonempty, we need to call the runtime to get the
new itab. Use the entry from the dictionary to identify the
target interface type (if parameterized).

Fixes #47925

Change-Id: I4ffeed964318bb3e270b06f558e6ab9c5bfc7188
Reviewed-on: https://go-review.googlesource.com/c/go/+/344830
Trust: Keith Randall <khr@golang.org>
Trust: Dan Scales <danscales@google.com>
Run-TryBot: Keith Randall <khr@golang.org>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Dan Scales <danscales@google.com>
2021-08-27 16:41:29 +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
issue47514c.dir cmd/compile: fix reference to generic type needed by crawler 2021-08-26 20:18:58 +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
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
eface.go cmd/compile: fix stenciling of conversions between interfaces 2021-08-27 16:41:29 +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
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
issue45738.go
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
issue47514c.go cmd/compile: fix reference to generic type needed by crawler 2021-08-26 20:18:58 +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
issue47710.go cmd/compile: delay fillinMethods to deal with mutually-recursive types 2021-08-27 01:42:38 +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
issue47878.go cmd/compile: fix stencil call expression. 2021-08-25 16:37:31 +00:00
issue47896.go cmd/compile: reuse same node for global dictionaries 2021-08-24 00:01:29 +00:00
issue47901.go cmd/compile: fix CheckSize() calculation for -G=3 and stencils 2021-08-25 15:30:19 +00:00
issue47924.go cmd/compile: mark ODYNAMICDOTTYPE as an expression that can panic 2021-08-24 18:31:34 +00:00
issue47925.go cmd/compile: fix stenciling of conversions between interfaces 2021-08-27 16:41:29 +00:00
issue47925b.go cmd/compile: fix stenciling of conversions between interfaces 2021-08-27 16:41:29 +00:00
issue47925c.go cmd/compile: fix stenciling of conversions between interfaces 2021-08-27 16:41:29 +00:00
issue47925d.go cmd/compile: fix stenciling of conversions between interfaces 2021-08-27 16:41:29 +00:00
issue47929.go cmd/compile: fix CheckSize() calculation for -G=3 and stencils 2021-08-25 15:30:19 +00:00
issue47948.go cmd/compile: fix function contains no TParam in generic function 2021-08-25 19:06:16 +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
mapimp.go [dev.typeparams] cmd/compile: add import/export of calls to builtin functions 2021-05-21 17:14:19 +00:00
maps.go
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
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
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
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