From: lotusirous Date: Mon, 13 Nov 2023 15:03:09 +0000 (+0700) Subject: gover: support Semantic Versioning major versions beyond 1 X-Git-Tag: go1.22rc1~81 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=71fc9d4da5c9f626802630cd2b220518e71c4ad5;p=gostls13.git gover: support Semantic Versioning major versions beyond 1 For #64033 Change-Id: Iab132f86c66aa6115a349d8032e9766a14dad02e Reviewed-on: https://go-review.googlesource.com/c/go/+/541915 LUCI-TryBot-Result: Go LUCI Reviewed-by: Bryan Mills Reviewed-by: Carlos Amedee Auto-Submit: Bryan Mills --- diff --git a/src/go/version/version.go b/src/go/version/version.go index 20c9cbc477..466c8091ea 100644 --- a/src/go/version/version.go +++ b/src/go/version/version.go @@ -7,7 +7,10 @@ // [Go versions]: https://go.dev/doc/toolchain#version package version // import "go/version" -import "internal/gover" +import ( + "internal/gover" + "strings" +) // stripGo converts from a "go1.21" version to a "1.21" version. // If v does not start with "go", stripGo returns the empty string (a known invalid version). @@ -33,7 +36,11 @@ func Lang(x string) string { if v == "" { return "" } - return x[:2+len(v)] // "go"+v without allocation + if strings.HasPrefix(x[2:], v) { + return x[:2+len(v)] // "go"+v without allocation + } else { + return "go" + v + } } // Compare returns -1, 0, or +1 depending on whether diff --git a/src/go/version/version_test.go b/src/go/version/version_test.go index 62aabad3a1..7c12e7ffd9 100644 --- a/src/go/version/version_test.go +++ b/src/go/version/version_test.go @@ -48,6 +48,7 @@ var langTests = []testCase1[string, string]{ {"go1.2.3", "go1.2"}, {"go1.2", "go1.2"}, {"go1", "go1"}, + {"go222", "go222.0"}, {"go1.999testmod", "go1.999"}, }