diff options
author | Bryan C. Mills <bcmills@google.com> | 2020-02-28 15:03:54 -0500 |
---|---|---|
committer | Bryan C. Mills <bcmills@google.com> | 2020-02-28 21:56:35 +0000 |
commit | 618126b9895db7f29a861caa4e330d149858ff56 (patch) | |
tree | 14b22fa6de658827549b6c2e8d6f17bf2d102207 /src/cmd/go/internal/get/get.go | |
parent | 964fac3ee74fe4df5423dad18f78322d88aae84a (diff) | |
download | go-618126b9895db7f29a861caa4e330d149858ff56.tar.gz go-618126b9895db7f29a861caa4e330d149858ff56.zip |
cmd/go: avoid matching wildcards rooted outside of available modules
To avoid confusion, also distinguish between packages and dirs in
search.Match results.
No test because this is technically only a performance optimization:
it would be very difficult to write such a test so that it would not
be flaky. (However, tested the change manually.)
Fixes #37521
Change-Id: I17b443699ce6a8f3a63805a7ef0be806f695a4b3
Reviewed-on: https://go-review.googlesource.com/c/go/+/221544
Run-TryBot: Bryan C. Mills <bcmills@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Jay Conrod <jayconrod@google.com>
Diffstat (limited to 'src/cmd/go/internal/get/get.go')
-rw-r--r-- | src/cmd/go/internal/get/get.go | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/cmd/go/internal/get/get.go b/src/cmd/go/internal/get/get.go index b048eafa74..f7b2fa96e8 100644 --- a/src/cmd/go/internal/get/get.go +++ b/src/cmd/go/internal/get/get.go @@ -286,11 +286,12 @@ func download(arg string, parent *load.Package, stk *load.ImportStack, mode int) if wildcardOkay && strings.Contains(arg, "...") { match := search.NewMatch(arg) if match.IsLocal() { - match.MatchPackagesInFS() + match.MatchDirs() + args = match.Dirs } else { match.MatchPackages() + args = match.Pkgs } - args = match.Pkgs for _, err := range match.Errs { base.Errorf("%s", err) } |