aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/go/internal/modload/load.go
diff options
context:
space:
mode:
authorJay Conrod <jayconrod@google.com>2019-03-26 20:21:21 -0400
committerJay Conrod <jayconrod@google.com>2019-03-29 21:25:56 +0000
commitee780d4a780be9d8517583bb7c3598c834b6f775 (patch)
tree89d5f4956a5c1cd247564119065d29d82df32e6e /src/cmd/go/internal/modload/load.go
parentd8f60eea64a568b272222960eb253bfc08cfbac2 (diff)
downloadgo-ee780d4a780be9d8517583bb7c3598c834b6f775.tar.gz
go-ee780d4a780be9d8517583bb7c3598c834b6f775.zip
cmd/go: clarify error when package is removed in a module
If no module in the build list provides an imported package, we try to upgrade to the "@latest" version. If there is a requirement on a version of the module which is newer than the "@latest" version (e.g., a prerelease or pseudoversion), we cannot upgrade further. We previously reported "looping trying to add package" when we saw the package in "@latest" but it was removed later. The meaning of this is unclear for users, so with this change, we explain the package was removed. Fixes #30394 Change-Id: I1b7fec2c37e762fb600e66ee8a4df4aeaf13e67a Reviewed-on: https://go-review.googlesource.com/c/go/+/169720 Run-TryBot: Jay Conrod <jayconrod@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Bryan C. Mills <bcmills@google.com>
Diffstat (limited to 'src/cmd/go/internal/modload/load.go')
-rw-r--r--src/cmd/go/internal/modload/load.go3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/cmd/go/internal/modload/load.go b/src/cmd/go/internal/modload/load.go
index 71b7308c0d..57c2dd25a6 100644
--- a/src/cmd/go/internal/modload/load.go
+++ b/src/cmd/go/internal/modload/load.go
@@ -547,6 +547,9 @@ func (ld *loader) load(roots func() []string) {
}
for _, pkg := range ld.pkgs {
if err, ok := pkg.err.(*ImportMissingError); ok && err.Module.Path != "" {
+ if err.newMissingVersion != "" {
+ base.Fatalf("go: %s: package provided by %s at latest version %s but not at required version %s", pkg.stackText(), err.Module.Path, err.Module.Version, err.newMissingVersion)
+ }
if added[pkg.path] {
base.Fatalf("go: %s: looping trying to add package", pkg.stackText())
}