diff options
author | Robert Griesemer <gri@golang.org> | 2021-08-25 21:48:21 -0700 |
---|---|---|
committer | Robert Griesemer <gri@golang.org> | 2021-08-26 17:19:04 +0000 |
commit | 166b691b652356074ea346157e8bbc13933380aa (patch) | |
tree | 182fbd181c57294f93fd878d66f3915f1959e2d7 /src/cmd/compile/internal/types2/instantiate.go | |
parent | d6bdae33e918f779e9e50c020d32042e569368e2 (diff) | |
download | go-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.go | 2 |
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 } |