src/cmd/go/internal/gover/mod.go | 3 +++ src/cmd/go/testdata/script/mod_get_toolchain.txt | 10 ++++++---- diff --git a/src/cmd/go/internal/gover/mod.go b/src/cmd/go/internal/gover/mod.go index d3cc17068def6d19cc51f4a25a2a61b1bbd543a9..3ac5ae8824b2337e219060720034499cc3056c8f 100644 --- a/src/cmd/go/internal/gover/mod.go +++ b/src/cmd/go/internal/gover/mod.go @@ -109,6 +109,9 @@ // ModIsPrerelease reports whether v is a prerelease version for the module with the given path. // The caller is assumed to have checked that ModIsValid(path, vers) is true. func ModIsPrerelease(path, vers string) bool { if IsToolchain(path) { + if path == "toolchain" { + return IsPrerelease(FromToolchain(vers)) + } return IsPrerelease(vers) } return semver.Prerelease(vers) != "" diff --git a/src/cmd/go/testdata/script/mod_get_toolchain.txt b/src/cmd/go/testdata/script/mod_get_toolchain.txt index 758142d668f9c6bbf90f14c685fff633eff91f4c..901a0bb819667f5983755d22b426fbcd64f15f18 100644 --- a/src/cmd/go/testdata/script/mod_get_toolchain.txt +++ b/src/cmd/go/testdata/script/mod_get_toolchain.txt @@ -89,12 +89,14 @@ stderr '^go: added toolchain go1.24rc1$' grep 'go 1.22.9' go.mod # no longer implied grep 'toolchain go1.24rc1' go.mod -# go get toolchain@latest finds go1.999testmod. +# go get toolchain@latest finds go1.23.9. cp go.mod.orig go.mod go get toolchain@latest -stderr '^go: added toolchain go1.999testmod$' +stderr '^go: added toolchain go1.23.9$' grep 'go 1.21' go.mod -grep 'toolchain go1.999testmod' go.mod +grep 'toolchain go1.23.9' go.mod + + # Bug fixes. @@ -110,7 +112,7 @@ stderr '^go: upgraded go 1.19 => 1.21.0' # go get toolchain@1.24rc1 is OK too. go get toolchain@1.24rc1 -stderr '^go: downgraded toolchain go1.999testmod => go1.24rc1$' +stderr '^go: downgraded toolchain go1.99rc1 => go1.24rc1$' # go get go@1.21 should work if we are the Go 1.21 language version, # even though there's no toolchain for it.