diff options
| author | Matthew Dempsky <mdempsky@google.com> | 2022-02-15 11:39:41 -0800 |
|---|---|---|
| committer | Matthew Dempsky <mdempsky@google.com> | 2022-04-04 18:33:29 +0000 |
| commit | e146d3eafafe149aa3a28e6a251db9c01d04f11d (patch) | |
| tree | 81c43f556a8c697b41ba5badaefcc532fac57974 /src/cmd/compile/internal/noder/unified.go | |
| parent | deaec2ecb3cca5b7a151feff2bf195c0fb76d3f5 (diff) | |
| download | go-e146d3eafafe149aa3a28e6a251db9c01d04f11d.tar.xz | |
cmd/compile: switch to final unified IR export format
Now that there's a native go/types importer for unified IR, the
compiler no longer needs to stay backwards compatible with old iexport
importers.
This CL also updates the go/types and go/internal/gcimporter tests to
expect that the unified IR importer sets the receiver parameter type
to the underlying Interface type, rather than the Named type. This is
a temporary workaround until we make a decision on #49906.
Notably, this makes `GOEXPERIMENT=unified go test` work on generics
code without requiring `-vet=off` (because previously cmd/vet was
relying on unified IR's backwards-compatible iexport data, which
omitted generic types).
Change-Id: Iac7a2346bb7a91e6690fb2978fb702fadae5559d
Reviewed-on: https://go-review.googlesource.com/c/go/+/386004
Trust: Matthew Dempsky <mdempsky@google.com>
Run-TryBot: Matthew Dempsky <mdempsky@google.com>
Reviewed-by: Robert Griesemer <gri@golang.org>
Reviewed-by: Robert Findley <rfindley@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Diffstat (limited to 'src/cmd/compile/internal/noder/unified.go')
| -rw-r--r-- | src/cmd/compile/internal/noder/unified.go | 16 |
1 files changed, 2 insertions, 14 deletions
diff --git a/src/cmd/compile/internal/noder/unified.go b/src/cmd/compile/internal/noder/unified.go index f45c4a7ea8..2c1f2362ad 100644 --- a/src/cmd/compile/internal/noder/unified.go +++ b/src/cmd/compile/internal/noder/unified.go @@ -16,7 +16,6 @@ import ( "sort" "cmd/compile/internal/base" - "cmd/compile/internal/importer" "cmd/compile/internal/inline" "cmd/compile/internal/ir" "cmd/compile/internal/typecheck" @@ -74,17 +73,6 @@ var localPkgReader *pkgReader func unified(noders []*noder) { inline.NewInline = InlineCall - writeNewExportFunc = writeNewExport - - newReadImportFunc = func(data string, pkg1 *types.Pkg, ctxt *types2.Context, packages map[string]*types2.Package) (pkg2 *types2.Package, err error) { - pr := pkgbits.NewPkgDecoder(pkg1.Path, data) - - // Read package descriptors for both types2 and compiler backend. - readPackage(newPkgReader(pr), pkg1) - pkg2 = importer.ReadPackage(ctxt, packages, pr) - return - } - data := writePkgStub(noders) // We already passed base.Flag.Lang to types2 to handle validating @@ -266,7 +254,7 @@ func readPackage(pr *pkgReader, importpkg *types.Pkg) { } } -func writeNewExport(out io.Writer) { +func writeUnifiedExport(out io.Writer) { l := linker{ pw: pkgbits.NewPkgEncoder(base.Debug.SyncFrames), @@ -332,5 +320,5 @@ func writeNewExport(out io.Writer) { w.Flush() } - l.pw.DumpTo(out) + base.Ctxt.Fingerprint = l.pw.DumpTo(out) } |
