diff options
author | Bryan C. Mills <bcmills@google.com> | 2019-12-19 22:36:13 -0500 |
---|---|---|
committer | Bryan C. Mills <bcmills@google.com> | 2019-12-20 15:24:05 +0000 |
commit | 751aea8f199fdc9b0cbacf4fdd554bead8dbfdb9 (patch) | |
tree | f601fd8a1e98a918012b0a136fbe4ebf0dc235a3 /src/cmd/go/internal/modload/import.go | |
parent | 5c6f42773cec9eb217e258e104ee058f67253f72 (diff) | |
download | go-751aea8f199fdc9b0cbacf4fdd554bead8dbfdb9.tar.gz go-751aea8f199fdc9b0cbacf4fdd554bead8dbfdb9.zip |
cmd/go: avoid erroneous canonicalization when trying to resolve imports using replacements
Updates #32700
Fixes #33795
Change-Id: I16897a0a2f3aa2f0b0bf8cf8252f3f39eef2e7ba
Reviewed-on: https://go-review.googlesource.com/c/go/+/212200
Run-TryBot: Bryan C. Mills <bcmills@google.com>
Reviewed-by: Jay Conrod <jayconrod@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Diffstat (limited to 'src/cmd/go/internal/modload/import.go')
-rw-r--r-- | src/cmd/go/internal/modload/import.go | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/cmd/go/internal/modload/import.go b/src/cmd/go/internal/modload/import.go index 9ae2900e46..3170ffab88 100644 --- a/src/cmd/go/internal/modload/import.go +++ b/src/cmd/go/internal/modload/import.go @@ -203,7 +203,12 @@ func Import(path string) (m module.Version, dir string, err error) { latest := map[string]string{} // path -> version for _, r := range modFile.Replace { if maybeInModule(path, r.Old.Path) { - latest[r.Old.Path] = semver.Max(r.Old.Version, latest[r.Old.Path]) + // Don't use semver.Max here; need to preserve +incompatible suffix. + v := latest[r.Old.Path] + if semver.Compare(r.Old.Version, v) > 0 { + v = r.Old.Version + } + latest[r.Old.Path] = v } } |