aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/compile/internal/types2/instantiate.go
diff options
context:
space:
mode:
authorRobert Griesemer <gri@golang.org>2021-08-25 21:48:21 -0700
committerRobert Griesemer <gri@golang.org>2021-08-26 17:19:04 +0000
commit166b691b652356074ea346157e8bbc13933380aa (patch)
tree182fbd181c57294f93fd878d66f3915f1959e2d7 /src/cmd/compile/internal/types2/instantiate.go
parentd6bdae33e918f779e9e50c020d32042e569368e2 (diff)
downloadgo-166b691b652356074ea346157e8bbc13933380aa.tar.gz
go-166b691b652356074ea346157e8bbc13933380aa.zip
cmd/compile/internal/types2: remove need for instance (struct)
instance was only used to hold the instantiation position for lazy instantiation (and encode the fact that we have a lazy instantiation). Just use a (pointer to a) syntax.Pos instead. We could use a syntax.Pos (no pointer) and rely on the fact that we have a known position (or fake position, if need be) to indicate lazy instantiation. But using a pointer leads to a smaller Named struct. Change-Id: I441a839a125f453ad6c501de1ce499b72a2f67a4 Reviewed-on: https://go-review.googlesource.com/c/go/+/345177 Trust: Robert Griesemer <gri@golang.org> Reviewed-by: Matthew Dempsky <mdempsky@google.com>
Diffstat (limited to 'src/cmd/compile/internal/types2/instantiate.go')
-rw-r--r--src/cmd/compile/internal/types2/instantiate.go2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/cmd/compile/internal/types2/instantiate.go b/src/cmd/compile/internal/types2/instantiate.go
index b78ac3bea3e..f9cde24dfc8 100644
--- a/src/cmd/compile/internal/types2/instantiate.go
+++ b/src/cmd/compile/internal/types2/instantiate.go
@@ -136,7 +136,7 @@ func (check *Checker) instance(pos syntax.Pos, typ Type, targs []Type) Type {
tname := NewTypeName(pos, t.obj.pkg, t.obj.name, nil)
named := check.newNamed(tname, t, nil, nil, nil) // methods and tparams are set when named is loaded
named.targs = NewTypeList(targs)
- named.instance = &instance{pos}
+ named.instPos = &pos
if check != nil {
check.typMap[h] = named
}