Skip to content

Commit fc87207

Browse files
committed
packages: remove golang.org/x/tools/go/gcexportdata
1 parent ba6f4f0 commit fc87207

File tree

3 files changed

+12
-42
lines changed

3 files changed

+12
-42
lines changed

Diff for: .github/workflows/go.yml

+2-4
Original file line numberDiff line numberDiff line change
@@ -46,10 +46,8 @@ jobs:
4646
with:
4747
go-version: ${{ matrix.go-version }}
4848

49-
- name: Update golang.org/x/tools
50-
run: |
51-
go work init .
52-
go work edit -replace golang.org/x/tools=golang.org/x/[email protected]
49+
- name: Set types alias env
50+
run: echo "GODEBUG=gotypesalias=1" >> $GITHUB_ENV
5351

5452
- name: Build
5553
run: go build -v ./...

Diff for: packages/imp.go

+10-19
Original file line numberDiff line numberDiff line change
@@ -16,15 +16,14 @@ package packages
1616
import (
1717
"bytes"
1818
"errors"
19+
"go/importer"
1920
"go/token"
2021
"go/types"
2122
"io"
2223
"os"
2324
"os/exec"
2425
"sync"
2526
"sync/atomic"
26-
27-
"golang.org/x/tools/go/gcexportdata"
2827
)
2928

3029
// ----------------------------------------------------------------------------
@@ -42,6 +41,7 @@ type Importer struct {
4241
m sync.RWMutex
4342
cache Cache
4443
tags string
44+
imp types.Importer
4545
}
4646

4747
// NewImporter creates an Importer object that meets types.ImporterFrom and types.Importer interface.
@@ -55,7 +55,13 @@ func NewImporter(fset *token.FileSet, workDir ...string) *Importer {
5555
}
5656
loaded := make(map[string]*types.Package)
5757
loaded["unsafe"] = types.Unsafe
58-
return &Importer{loaded: loaded, fset: fset, dir: dir}
58+
r := &Importer{loaded: loaded, fset: fset, dir: dir}
59+
r.imp = importer.ForCompiler(fset, "gc", r.lookup)
60+
return r
61+
}
62+
63+
func (p *Importer) lookup(pkgPath string) (io.ReadCloser, error) {
64+
return p.findExport(p.dir, pkgPath)
5965
}
6066

6167
// SetCache sets an optional cache for the importer.
@@ -97,22 +103,7 @@ func (p *Importer) ImportFrom(pkgPath, dir string, mode types.ImportMode) (*type
97103
return ret, nil
98104
}
99105
p.m.RUnlock()
100-
f, err := p.findExport(dir, pkgPath)
101-
if err != nil {
102-
return nil, err
103-
}
104-
defer f.Close()
105-
return p.loadByExport(f, pkgPath)
106-
}
107-
108-
func (p *Importer) loadByExport(f io.ReadCloser, pkgPath string) (ret *types.Package, err error) {
109-
r, err := gcexportdata.NewReader(f)
110-
if err == nil {
111-
p.m.Lock() // use mutex because Import should be multi-thread safe
112-
defer p.m.Unlock()
113-
ret, err = gcexportdata.Read(r, p.fset, p.loaded, pkgPath)
114-
}
115-
return
106+
return p.imp.Import(pkgPath)
116107
}
117108

118109
// ----------------------------------------------------------------------------

Diff for: packages/imp_test.go

-19
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414
package packages
1515

1616
import (
17-
"go/types"
1817
"io"
1918
"os"
2019
"testing"
@@ -50,24 +49,6 @@ func TestImportBuiltin(t *testing.T) {
5049
}
5150
}
5251

53-
func Test_loadByExport(t *testing.T) {
54-
p := NewImporter(nil)
55-
if _, err := loadByExport(p, "/not-found", "notfound"); !os.IsNotExist(err) {
56-
t.Fatal("Test_loadByExport:", err)
57-
}
58-
if _, err := p.findExport(".", "C"); err == nil {
59-
t.Fatal("Test_loadByExport: no error?")
60-
}
61-
}
62-
63-
func loadByExport(p *Importer, expfile, pkgPath string) (pkg *types.Package, err error) {
64-
f, err := os.Open(expfile)
65-
if err != nil {
66-
return
67-
}
68-
return p.loadByExport(f, pkgPath)
69-
}
70-
7152
// ----------------------------------------------------------------------------
7253

7354
type diskCache struct {

0 commit comments

Comments
 (0)