diff options
author | Jay Conrod <jayconrod@google.com> | 2021-02-25 18:38:43 -0500 |
---|---|---|
committer | Jay Conrod <jayconrod@google.com> | 2021-03-01 14:46:14 +0000 |
commit | 5fafc0bbd4819578e58e5b9163981b0074ab0b01 (patch) | |
tree | 83dbf29eea13907907ffa2836168342487aa2858 /src/cmd/go/internal/modload/init.go | |
parent | 2a8df4488ee893353b1200794bde758e9726e7c7 (diff) | |
download | go-5fafc0bbd4819578e58e5b9163981b0074ab0b01.tar.gz go-5fafc0bbd4819578e58e5b9163981b0074ab0b01.zip |
cmd/go/internal/modload: don't query when fixing canonical versions
If a canonical version is passed to fixVersion when loading the main
go.mod and that version don't match the module path's major version
suffix, don't call Query.
Query doesn't return a useful error in this case when the path is
malformed, for example, when it doens't have a dot in the first path
element. It's better to report the major version mismatch error.
Fixes #44494
Change-Id: I97b1f64aee894fa0db6fb637aa03a51357ee782c
Reviewed-on: https://go-review.googlesource.com/c/go/+/296590
Trust: Jay Conrod <jayconrod@google.com>
Run-TryBot: Jay Conrod <jayconrod@google.com>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Bryan C. Mills <bcmills@google.com>
Diffstat (limited to 'src/cmd/go/internal/modload/init.go')
-rw-r--r-- | src/cmd/go/internal/modload/init.go | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/cmd/go/internal/modload/init.go b/src/cmd/go/internal/modload/init.go index bc8d17e0a5..4de5ac9303 100644 --- a/src/cmd/go/internal/modload/init.go +++ b/src/cmd/go/internal/modload/init.go @@ -539,9 +539,10 @@ func fixVersion(ctx context.Context, fixed *bool) modfile.VersionFixer { } } if vers != "" && module.CanonicalVersion(vers) == vers { - if err := module.CheckPathMajor(vers, pathMajor); err == nil { - return vers, nil + if err := module.CheckPathMajor(vers, pathMajor); err != nil { + return "", module.VersionError(module.Version{Path: path, Version: vers}, err) } + return vers, nil } info, err := Query(ctx, path, vers, "", nil) |