// Versions returns the versions from rr.repo augmented with any matching
// replacement versions.
func (rr *replacementRepo) Versions(prefix string) ([]string, error) {
- versions, err := rr.repo.Versions(prefix)
+ repoVersions, err := rr.repo.Versions(prefix)
if err != nil && !errors.Is(err, os.ErrNotExist) {
return nil, err
}
- added := false
+ versions := repoVersions
if index != nil && len(index.replace) > 0 {
path := rr.ModulePath()
for m, _ := range index.replace {
}
}
- if !added {
+ if len(versions) == len(repoVersions) { // No replacement versions added.
return versions, nil
}
go list -m example.com/x
stdout '^example.com/x v0.2.0 '
-go get -d example.com/x@'<v0.2.0'
+go get -d example.com/x@<v0.2.0
go list -m example.com/x
stdout '^example.com/x v0.1.0 '
stdout '^example.com/x v0.0.0-00010101000000-000000000000 '
# If specific-version replacements exist, the highest matching version should be used.
-go mod edit -replace=example.com/x@v0.1.0=./x -replace=example.com/x@v0.2.0=./x
+go mod edit -replace=example.com/x@v0.1.0=./x
+go mod edit -replace=example.com/x@v0.2.0=./x
go get -d example.com/x
go list -m example.com/x
stdout '^example.com/x v0.2.0 '
-go get -d example.com/x@'<v0.2.0'
+go get -d example.com/x@<v0.2.0
go list -m example.com/x
stdout '^example.com/x v0.1.0 '
go list -m rsc.io/quote
stdout '^rsc.io/quote v1.3.1 '
-go get -d rsc.io/quote@'>v1.3.1'
+go get -d rsc.io/quote@>v1.3.1
go list -m rsc.io/quote
stdout '^rsc.io/quote v1.4.0'