diff options
author | Jay Conrod <jayconrod@google.com> | 2019-03-26 20:21:21 -0400 |
---|---|---|
committer | Jay Conrod <jayconrod@google.com> | 2019-03-29 21:25:56 +0000 |
commit | ee780d4a780be9d8517583bb7c3598c834b6f775 (patch) | |
tree | 89d5f4956a5c1cd247564119065d29d82df32e6e /src/cmd/go/internal/modload/load.go | |
parent | d8f60eea64a568b272222960eb253bfc08cfbac2 (diff) | |
download | go-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.go | 3 |
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()) } |