aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBryan C. Mills <bcmills@google.com>2021-05-14 16:51:57 -0400
committerBryan C. Mills <bcmills@google.com>2021-05-24 15:03:18 +0000
commit52d7033ff6d56094b7fa852bbdf51b4525bd6bb2 (patch)
tree7e2312515d8120c7288a2f59f6683956cd83dbac /src
parent05819bc104c3021d20ad21aa685fb6b4db35ceb0 (diff)
downloadgo-52d7033ff6d56094b7fa852bbdf51b4525bd6bb2.tar.xz
cmd/go/internal/modload: set the default GoVersion in a single location
For #46141 Updates #36460 Change-Id: Ie4c13c73a451650d1e8abb8e5cebfc30d0a71a70 Reviewed-on: https://go-review.googlesource.com/c/go/+/321070 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')
-rw-r--r--src/cmd/go/internal/modload/load.go41
1 files changed, 17 insertions, 24 deletions
diff --git a/src/cmd/go/internal/modload/load.go b/src/cmd/go/internal/modload/load.go
index 23ee3824f3..37b0032d43 100644
--- a/src/cmd/go/internal/modload/load.go
+++ b/src/cmd/go/internal/modload/load.go
@@ -314,10 +314,6 @@ func LoadPackages(ctx context.Context, opts PackageOpts, patterns ...string) (ma
initialRS, _ := loadModFile(ctx) // Ignore needCommit — we're going to commit at the end regardless.
- if opts.GoVersion == "" {
- opts.GoVersion = modFileGoVersion()
- }
-
ld := loadFromRoots(ctx, loaderParams{
PackageOpts: opts,
requirements: initialRS,
@@ -380,7 +376,7 @@ func LoadPackages(ctx context.Context, opts PackageOpts, patterns ...string) (ma
// Success! Update go.mod and go.sum (if needed) and return the results.
loaded = ld
- commitRequirements(ctx, opts.GoVersion, loaded.requirements)
+ commitRequirements(ctx, loaded.GoVersion, loaded.requirements)
for _, pkg := range ld.pkgs {
if !pkg.isTest() {
@@ -605,10 +601,8 @@ func ImportFromFiles(ctx context.Context, gofiles []string) {
base.Fatalf("go: %v", err)
}
- goVersion := modFileGoVersion()
loaded = loadFromRoots(ctx, loaderParams{
PackageOpts: PackageOpts{
- GoVersion: goVersion,
Tags: tags,
ResolveMissingImports: true,
SilencePackageErrors: true,
@@ -620,7 +614,7 @@ func ImportFromFiles(ctx context.Context, gofiles []string) {
return roots
},
})
- commitRequirements(ctx, goVersion, loaded.requirements)
+ commitRequirements(ctx, loaded.GoVersion, loaded.requirements)
}
// DirImportPath returns the effective import path for dir,
@@ -921,26 +915,25 @@ func loadFromRoots(ctx context.Context, params loaderParams) *loader {
work: par.NewQueue(runtime.GOMAXPROCS(0)),
}
- if params.GoVersion != "" {
- goVersionV := "v" + params.GoVersion
- if semver.Compare(goVersionV, narrowAllVersionV) < 0 && !ld.UseVendorAll {
- // The module's go version explicitly predates the change in "all" for lazy
- // loading, so continue to use the older interpretation.
- // (If params.GoVersion is empty, we are probably not in any module at all
- // and should use the latest semantics.)
- ld.allClosesOverTests = true
- }
+ if ld.GoVersion == "" {
+ ld.GoVersion = modFileGoVersion()
- if ld.Tidy && semver.Compare(goVersionV, "v"+LatestGoVersion()) > 0 {
- ld.errorf("go mod tidy: go.mod file indicates go %s, but maximum supported version is %s\n", params.GoVersion, LatestGoVersion())
+ if ld.Tidy && semver.Compare("v"+ld.GoVersion, "v"+LatestGoVersion()) > 0 {
+ ld.errorf("go mod tidy: go.mod file indicates go %s, but maximum supported version is %s\n", ld.GoVersion, LatestGoVersion())
base.ExitIfErrors()
}
+ }
- var err error
- ld.requirements, err = convertDepth(ctx, ld.requirements, modDepthFromGoVersion(params.GoVersion))
- if err != nil {
- ld.errorf("go: %v\n", err)
- }
+ if semver.Compare("v"+ld.GoVersion, narrowAllVersionV) < 0 && !ld.UseVendorAll {
+ // The module's go version explicitly predates the change in "all" for lazy
+ // loading, so continue to use the older interpretation.
+ ld.allClosesOverTests = true
+ }
+
+ var err error
+ ld.requirements, err = convertDepth(ctx, ld.requirements, modDepthFromGoVersion(ld.GoVersion))
+ if err != nil {
+ ld.errorf("go: %v\n", err)
}
if ld.requirements.depth == eager {