aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMichael Matloob <matloob@golang.org>2022-10-06 13:41:02 -0400
committerMichael Matloob <matloob@golang.org>2022-10-06 18:18:22 +0000
commitfda5dcd9bba38bcdbe9ac473985e108e125c34a5 (patch)
tree38e1dc095b3eee79d069807237268dc335f51797 /src
parent9dfadf911d2dcb093c3a37c79869bead0f9f6349 (diff)
downloadgo-fda5dcd9bba38bcdbe9ac473985e108e125c34a5.tar.xz
cmd/go: fix incorrect determination of import path is DirImportPath
In practice this only shows up when a vendored package, imported on the command line, imports an internal package. Change-Id: I34c161d1f1ef15a87c58a422f17d11f77fbac53f Reviewed-on: https://go-review.googlesource.com/c/go/+/439735 Run-TryBot: Michael Matloob <matloob@golang.org> Reviewed-by: Michael Matloob <matloob@golang.org> TryBot-Result: Gopher Robot <gobot@golang.org> Reviewed-by: Bryan Mills <bcmills@google.com>
Diffstat (limited to 'src')
-rw-r--r--src/cmd/go/internal/modload/load.go1
-rw-r--r--src/cmd/go/testdata/script/vendor_internal.txt16
2 files changed, 17 insertions, 0 deletions
diff --git a/src/cmd/go/internal/modload/load.go b/src/cmd/go/internal/modload/load.go
index e74780a7b2..afd6c80370 100644
--- a/src/cmd/go/internal/modload/load.go
+++ b/src/cmd/go/internal/modload/load.go
@@ -753,6 +753,7 @@ func (mms *MainModuleSet) DirImportPath(ctx context.Context, dir string) (path s
suffix := filepath.ToSlash(dir[len(modRoot):])
if strings.HasPrefix(suffix, "/vendor/") {
longestPrefixPath = strings.TrimPrefix(suffix, "/vendor/")
+ continue
}
longestPrefixPath = mms.PathPrefix(v) + suffix
}
diff --git a/src/cmd/go/testdata/script/vendor_internal.txt b/src/cmd/go/testdata/script/vendor_internal.txt
new file mode 100644
index 0000000000..4c0f1facee
--- /dev/null
+++ b/src/cmd/go/testdata/script/vendor_internal.txt
@@ -0,0 +1,16 @@
+go build ./vendor/foo.com/internal/bar/a
+
+-- go.mod --
+module example.com/x
+go 1.19
+
+require "foo.com/internal/bar" v1.0.0
+-- vendor/modules.txt --
+# foo.com/internal/bar v1.0.0
+## explicit
+foo.com/internal/bar/a
+-- vendor/foo.com/internal/bar/a/a.go --
+package a
+import _ "foo.com/internal/bar/b"
+-- vendor/foo.com/internal/bar/b/b.go --
+package b \ No newline at end of file