aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/compile/internal/typecheck/typecheck.go
diff options
context:
space:
mode:
authorMatthew Dempsky <mdempsky@google.com>2021-01-11 17:22:20 -0800
committerMatthew Dempsky <mdempsky@google.com>2021-01-12 04:46:22 +0000
commit95acd8121bf76a15ecba0259367dca0efe6d3a77 (patch)
tree8ff460877754208c25eface7bf66d0942513864a /src/cmd/compile/internal/typecheck/typecheck.go
parent12ee55ba7bf22157267e735e8e4bbf651c5b4e7d (diff)
downloadgo-95acd8121bf76a15ecba0259367dca0efe6d3a77.tar.gz
go-95acd8121bf76a15ecba0259367dca0efe6d3a77.zip
[dev.regabi] cmd/compile: remove Name.Typegen
Just directly set Type.Vargen when declaring defined types within a function. Change-Id: Idcc0007084a660ce1c39da4a3697e158a1c615b5 Reviewed-on: https://go-review.googlesource.com/c/go/+/283212 Trust: Matthew Dempsky <mdempsky@google.com> Trust: Dan Scales <danscales@google.com> Run-TryBot: Matthew Dempsky <mdempsky@google.com> TryBot-Result: Go Bot <gobot@golang.org> Reviewed-by: Dan Scales <danscales@google.com>
Diffstat (limited to 'src/cmd/compile/internal/typecheck/typecheck.go')
-rw-r--r--src/cmd/compile/internal/typecheck/typecheck.go11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/cmd/compile/internal/typecheck/typecheck.go b/src/cmd/compile/internal/typecheck/typecheck.go
index 431fb04bef..3fc077b00c 100644
--- a/src/cmd/compile/internal/typecheck/typecheck.go
+++ b/src/cmd/compile/internal/typecheck/typecheck.go
@@ -1681,13 +1681,22 @@ func CheckMapKeys() {
mapqueue = nil
}
+// typegen tracks the number of function-scoped defined types that
+// have been declared. It's used to generate unique linker symbols for
+// their runtime type descriptors.
+var typegen int32
+
func typecheckdeftype(n *ir.Name) {
if base.EnableTrace && base.Flag.LowerT {
defer tracePrint("typecheckdeftype", n)(nil)
}
t := types.NewNamed(n)
- t.Vargen = n.Typegen
+ if n.Curfn != nil {
+ typegen++
+ t.Vargen = typegen
+ }
+
if n.Pragma()&ir.NotInHeap != 0 {
t.SetNotInHeap(true)
}