]> Cypherpunks repositories - gostls13.git/commit
[dev.regabi] cmd/compile: convert types.Node (a pointer) to types.IRNode (an interface)
authorRuss Cox <rsc@golang.org>
Wed, 25 Nov 2020 05:30:58 +0000 (00:30 -0500)
committerRuss Cox <rsc@golang.org>
Wed, 25 Nov 2020 17:30:40 +0000 (17:30 +0000)
commitc26aead50c3c8226c51fb97a94852f2134b881aa
treeb6e9d775fce43b9c96d290e73adc6403eff13514
parentacb4d1cef14529585266df1868045f80e37ae081
[dev.regabi] cmd/compile: convert types.Node (a pointer) to types.IRNode (an interface)

The pointer hack was nice and saved a word, but it's untenable
in a world where nodes are themselves interfaces with different
underlying types. Bite the bullet and use an interface to hold the
Node when in types.Sym and types.Type.

This has the nice benefit of removing AsTypesNode entirely.
AsNode is still useful because of its nil handling.

Change-Id: I298cba9ff788b956ee287283bec78010e8b601e5
Reviewed-on: https://go-review.googlesource.com/c/go/+/272933
Trust: Russ Cox <rsc@golang.org>
Run-TryBot: Russ Cox <rsc@golang.org>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
20 files changed:
src/cmd/compile/internal/gc/closure.go
src/cmd/compile/internal/gc/dcl.go
src/cmd/compile/internal/gc/embed.go
src/cmd/compile/internal/gc/escape.go
src/cmd/compile/internal/gc/export.go
src/cmd/compile/internal/gc/gen.go
src/cmd/compile/internal/gc/iimport.go
src/cmd/compile/internal/gc/init.go
src/cmd/compile/internal/gc/noder.go
src/cmd/compile/internal/gc/obj.go
src/cmd/compile/internal/gc/reflect.go
src/cmd/compile/internal/gc/ssa.go
src/cmd/compile/internal/gc/typecheck.go
src/cmd/compile/internal/gc/universe.go
src/cmd/compile/internal/ir/dump.go
src/cmd/compile/internal/ir/node.go
src/cmd/compile/internal/types/scope.go
src/cmd/compile/internal/types/sizeof_test.go
src/cmd/compile/internal/types/sym.go
src/cmd/compile/internal/types/type.go