diff options
author | Bryan C. Mills <bcmills@google.com> | 2021-05-14 16:53:06 -0400 |
---|---|---|
committer | Bryan C. Mills <bcmills@google.com> | 2021-05-25 13:18:26 +0000 |
commit | 8b462d75670dcd8b6a08cf9af225eb8e7628d412 (patch) | |
tree | 8c27c58384d324a7c19d6a041a364693ac5cf4b1 /src/cmd/go/internal/modload/init.go | |
parent | c89f1224a544cde464fcb86e78ebb0cc97eedba2 (diff) | |
download | go-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.go | 24 |
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", |