aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/go/internal/modload/import.go
diff options
context:
space:
mode:
authorBryan C. Mills <bcmills@google.com>2019-12-19 22:36:13 -0500
committerBryan C. Mills <bcmills@google.com>2019-12-20 15:24:05 +0000
commit751aea8f199fdc9b0cbacf4fdd554bead8dbfdb9 (patch)
treef601fd8a1e98a918012b0a136fbe4ebf0dc235a3 /src/cmd/go/internal/modload/import.go
parent5c6f42773cec9eb217e258e104ee058f67253f72 (diff)
downloadgo-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.go7
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
}
}