]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/go: search the target for patterns when -mod=vendor is set
authorBryan C. Mills <bcmills@google.com>
Tue, 12 Mar 2019 13:25:46 +0000 (09:25 -0400)
committerBryan C. Mills <bcmills@google.com>
Tue, 12 Mar 2019 15:44:29 +0000 (15:44 +0000)
This fixes the root cause of the bootstrap failure reported in
https://groups.google.com/d/msg/golang-dev/xcVJDj5GJ84/U0pVnUOnBwAJ.

Updates #30228

Change-Id: I9ce0898922a5aac1f61ceff30319cf88031676c4
Reviewed-on: https://go-review.googlesource.com/c/go/+/167079
Run-TryBot: Bryan C. Mills <bcmills@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Jay Conrod <jayconrod@google.com>
src/cmd/go/internal/modload/search.go
src/cmd/go/testdata/script/mod_vendor_build.txt

index 2e82b92cc58414583c4174237136ca3538fca4c8..2cd657326c60611b19cf6df795afad8efdabe66d 100644 (file)
@@ -105,7 +105,14 @@ func matchPackages(pattern string, tags map[string]bool, useStd bool, modules []
        }
 
        if cfg.BuildMod == "vendor" {
-               walkPkgs(filepath.Join(ModRoot(), "vendor"), "", false)
+               if HasModRoot() {
+                       modPrefix := Target.Path
+                       if Target.Path == "std" {
+                               modPrefix = ""
+                       }
+                       walkPkgs(ModRoot(), modPrefix, false)
+                       walkPkgs(filepath.Join(ModRoot(), "vendor"), "", false)
+               }
                return pkgs
        }
 
index 01ee2d202aead529a9a434556a10115b95b74d75..da3fd9105536b74c06f3a722fa4155d1854253bc 100644 (file)
@@ -25,6 +25,10 @@ env GOPROXY=off
 ! go list ...
 go list -mod=vendor ...
 
+# However, it should still list packages in the main module.
+go list -mod=vendor m/...
+stdout m
+
 -- go.mod --
 module m