]> Cypherpunks repositories - gostls13.git/commit
[dev.typeparams] cmd/compile: implement generic type switches
authorKeith Randall <khr@golang.org>
Tue, 3 Aug 2021 15:10:17 +0000 (08:10 -0700)
committerKeith Randall <khr@golang.org>
Mon, 9 Aug 2021 18:41:45 +0000 (18:41 +0000)
commitca3c6985cd143f170699d22ed984b7eed0f68e4d
tree6787bfb8efffc4757a2d0b0b3aa66094279bce97
parent57668b84ff43b15746a25e9653c278d174ea483f
[dev.typeparams] cmd/compile: implement generic type switches

Add a new dynamicType node, which is used as a case entry when
the type being switched to is generic.

Change-Id: Ice77c6f224b8fdd3ff574fdf4a8ea5f6c7ddbe75
Reviewed-on: https://go-review.googlesource.com/c/go/+/339429
Trust: Keith Randall <khr@golang.org>
Trust: Dan Scales <danscales@google.com>
Run-TryBot: Keith Randall <khr@golang.org>
Reviewed-by: Dan Scales <danscales@google.com>
21 files changed:
src/cmd/compile/internal/escape/expr.go
src/cmd/compile/internal/ir/expr.go
src/cmd/compile/internal/ir/node.go
src/cmd/compile/internal/ir/node_gen.go
src/cmd/compile/internal/ir/op_string.go
src/cmd/compile/internal/ir/type.go
src/cmd/compile/internal/noder/irgen.go
src/cmd/compile/internal/noder/stencil.go
src/cmd/compile/internal/noder/transform.go
src/cmd/compile/internal/typecheck/stmt.go
src/cmd/compile/internal/walk/switch.go
test/typeparam/typeswitch1.go [new file with mode: 0644]
test/typeparam/typeswitch1.out [new file with mode: 0644]
test/typeparam/typeswitch2.go [new file with mode: 0644]
test/typeparam/typeswitch2.out [new file with mode: 0644]
test/typeparam/typeswitch3.go [new file with mode: 0644]
test/typeparam/typeswitch3.out [new file with mode: 0644]
test/typeparam/typeswitch4.go [new file with mode: 0644]
test/typeparam/typeswitch4.out [new file with mode: 0644]
test/typeparam/typeswitch5.go [new file with mode: 0644]
test/typeparam/typeswitch5.out [new file with mode: 0644]