aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/go/internal/get/get.go
diff options
context:
space:
mode:
authorBryan C. Mills <bcmills@google.com>2020-02-28 15:03:54 -0500
committerBryan C. Mills <bcmills@google.com>2020-02-28 21:56:35 +0000
commit618126b9895db7f29a861caa4e330d149858ff56 (patch)
tree14b22fa6de658827549b6c2e8d6f17bf2d102207 /src/cmd/go/internal/get/get.go
parent964fac3ee74fe4df5423dad18f78322d88aae84a (diff)
downloadgo-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.go5
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)
}