aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/go/internal/modload/init.go
diff options
context:
space:
mode:
authorBryan C. Mills <bcmills@google.com>2021-05-14 16:53:06 -0400
committerBryan C. Mills <bcmills@google.com>2021-05-25 13:18:26 +0000
commit8b462d75670dcd8b6a08cf9af225eb8e7628d412 (patch)
tree8c27c58384d324a7c19d6a041a364693ac5cf4b1 /src/cmd/go/internal/modload/init.go
parentc89f1224a544cde464fcb86e78ebb0cc97eedba2 (diff)
downloadgo-8b462d75670dcd8b6a08cf9af225eb8e7628d412.tar.gz
go-8b462d75670dcd8b6a08cf9af225eb8e7628d412.zip
cmd/go: add a -compat flag to 'go mod tidy'
Fixes #46141 Change-Id: I9d4032e75252ade9eaa937389ea97ef3fb287499 Reviewed-on: https://go-review.googlesource.com/c/go/+/321071 Trust: Bryan C. Mills <bcmills@google.com> Run-TryBot: Bryan C. Mills <bcmills@google.com> TryBot-Result: Go Bot <gobot@golang.org> Reviewed-by: Jay Conrod <jayconrod@google.com>
Diffstat (limited to 'src/cmd/go/internal/modload/init.go')
-rw-r--r--src/cmd/go/internal/modload/init.go24
1 files changed, 23 insertions, 1 deletions
diff --git a/src/cmd/go/internal/modload/init.go b/src/cmd/go/internal/modload/init.go
index df9f48e8ea..86c0db3fe4 100644
--- a/src/cmd/go/internal/modload/init.go
+++ b/src/cmd/go/internal/modload/init.go
@@ -767,11 +767,33 @@ func LatestGoVersion() string {
tags := build.Default.ReleaseTags
version := tags[len(tags)-1]
if !strings.HasPrefix(version, "go") || !modfile.GoVersionRE.MatchString(version[2:]) {
- base.Fatalf("go: unrecognized default version %q", version)
+ base.Fatalf("go: internal error: unrecognized default version %q", version)
}
return version[2:]
}
+// priorGoVersion returns the Go major release immediately preceding v,
+// or v itself if v is the first Go major release (1.0) or not a supported
+// Go version.
+func priorGoVersion(v string) string {
+ vTag := "go" + v
+ tags := build.Default.ReleaseTags
+ for i, tag := range tags {
+ if tag == vTag {
+ if i == 0 {
+ return v
+ }
+
+ version := tags[i-1]
+ if !strings.HasPrefix(version, "go") || !modfile.GoVersionRE.MatchString(version[2:]) {
+ base.Fatalf("go: internal error: unrecognized version %q", version)
+ }
+ return version[2:]
+ }
+ }
+ return v
+}
+
var altConfigs = []string{
"Gopkg.lock",