diff options
author | Russ Cox <rsc@golang.org> | 2018-08-10 15:25:15 -0400 |
---|---|---|
committer | Russ Cox <rsc@golang.org> | 2018-08-10 20:02:31 +0000 |
commit | 5c11480631f5654e9e6937ff08c453660138c64d (patch) | |
tree | 40e1e4885fa07298bccd64c787d58c8adca9b3c5 /src/cmd/go/internal/modload/search.go | |
parent | 64205cd4b6d48432fdcbe2127d45e4f786468ff3 (diff) | |
download | go-5c11480631f5654e9e6937ff08c453660138c64d.tar.gz go-5c11480631f5654e9e6937ff08c453660138c64d.zip |
cmd/go: don't let ... match GOROOT/src/cmd in module mode
GOROOT/src/cmd uses GOROOT/src/cmd/vendor, which module
mode simply cannot handle.
Exposed by making ... match the standard library, which it still should.
But for now it's fine to just exclude commands.
Change-Id: I2201b94445f11239022de8a2473aa3b573f405c0
Reviewed-on: https://go-review.googlesource.com/129055
Run-TryBot: Russ Cox <rsc@golang.org>
Reviewed-by: Bryan C. Mills <bcmills@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Diffstat (limited to 'src/cmd/go/internal/modload/search.go')
-rw-r--r-- | src/cmd/go/internal/modload/search.go | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/cmd/go/internal/modload/search.go b/src/cmd/go/internal/modload/search.go index 6aaabe6a08..24825cc35d 100644 --- a/src/cmd/go/internal/modload/search.go +++ b/src/cmd/go/internal/modload/search.go @@ -37,6 +37,10 @@ func matchPackages(pattern string, tags map[string]bool, useStd bool, modules [] walkPkgs := func(root, importPathRoot string) { root = filepath.Clean(root) + var cmd string + if root == cfg.GOROOTsrc { + cmd = filepath.Join(root, "cmd") + } filepath.Walk(root, func(path string, fi os.FileInfo, err error) error { if err != nil { return nil @@ -47,6 +51,14 @@ func matchPackages(pattern string, tags map[string]bool, useStd bool, modules [] return nil } + // GOROOT/src/cmd makes use of GOROOT/src/cmd/vendor, + // which module mode can't deal with. Eventually we'll stop using + // that vendor directory, and then we can remove this exclusion. + // golang.org/issue/26924. + if path == cmd { + return filepath.SkipDir + } + want := true // Avoid .foo, _foo, and testdata directory trees. _, elem := filepath.Split(path) |