aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/compile/internal/noder/reader2.go
diff options
context:
space:
mode:
authorRobert Griesemer <gri@golang.org>2021-09-08 16:03:57 -0700
committerRobert Griesemer <gri@golang.org>2021-09-08 23:59:02 +0000
commita1f6208e56436281ce5e26ad745f8fc3f7a9b280 (patch)
tree25f360a87d8870fa124e40be61cdd43906ff1078 /src/cmd/compile/internal/noder/reader2.go
parentf5f8a911d8425995c61ed836584b4f3ad0e4c8fc (diff)
downloadgo-a1f6208e56436281ce5e26ad745f8fc3f7a9b280.tar.xz
go/types, types2: add Environment to Config
Port to types2 and adjust compiler accordingly. Change-Id: I2e72b151ef834977dca64cb2e62cedcac4e46062 Reviewed-on: https://go-review.googlesource.com/c/go/+/348578 Trust: Robert Griesemer <gri@golang.org> Run-TryBot: Robert Griesemer <gri@golang.org> Reviewed-by: Matthew Dempsky <mdempsky@google.com> Reviewed-by: Robert Findley <rfindley@google.com> TryBot-Result: Go Bot <gobot@golang.org>
Diffstat (limited to 'src/cmd/compile/internal/noder/reader2.go')
-rw-r--r--src/cmd/compile/internal/noder/reader2.go10
1 files changed, 4 insertions, 6 deletions
diff --git a/src/cmd/compile/internal/noder/reader2.go b/src/cmd/compile/internal/noder/reader2.go
index 3886d571b5..6e2d1f2e76 100644
--- a/src/cmd/compile/internal/noder/reader2.go
+++ b/src/cmd/compile/internal/noder/reader2.go
@@ -18,7 +18,7 @@ import (
type pkgReader2 struct {
pkgDecoder
- check *types2.Checker
+ env *types2.Environment
imports map[string]*types2.Package
posBases []*syntax.PosBase
@@ -26,11 +26,11 @@ type pkgReader2 struct {
typs []types2.Type
}
-func readPackage2(check *types2.Checker, imports map[string]*types2.Package, input pkgDecoder) *types2.Package {
+func readPackage2(env *types2.Environment, imports map[string]*types2.Package, input pkgDecoder) *types2.Package {
pr := pkgReader2{
pkgDecoder: input,
- check: check,
+ env: env,
imports: imports,
posBases: make([]*syntax.PosBase, input.numElems(relocPosBase)),
@@ -233,9 +233,7 @@ func (r *reader2) doTyp() (res types2.Type) {
obj, targs := r.obj()
name := obj.(*types2.TypeName)
if len(targs) != 0 {
- // TODO(mdempsky) should use a single shared environment here
- // (before, this used a shared checker)
- t, _ := types2.Instantiate(types2.NewEnvironment(), name.Type(), targs, false)
+ t, _ := types2.Instantiate(r.p.env, name.Type(), targs, false)
return t
}
return name.Type()