mirror of
https://github.com/golang/go
synced 2024-09-29 13:34:30 -06:00
cmd/go: report original module path in error parsing replaced go.mod
MVS reports an error when a go.mod file declares a module path that doesn't match the path it was required with. If the module is a replacement, its declared path may be the original path (preferred) or the replacement path. This CL makes the reported error a little more clear: the "required as" path should be the original required path, not the replacement path. Fixes #38220 Change-Id: I08b50a100679a447c8803cca1d1b32bc115ec1b1 Reviewed-on: https://go-review.googlesource.com/c/go/+/227097 Run-TryBot: Jay Conrod <jayconrod@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Bryan C. Mills <bcmills@google.com>
This commit is contained in:
parent
d78639519d
commit
c4f875e84e
@ -148,7 +148,7 @@ func (r *mvsReqs) required(mod module.Version) ([]module.Version, error) {
|
||||
if mpath := f.Module.Mod.Path; mpath != origPath && mpath != mod.Path {
|
||||
return nil, module.VersionError(mod, fmt.Errorf(`parsing go.mod:
|
||||
module declares its path as: %s
|
||||
but was required as: %s`, mpath, mod.Path))
|
||||
but was required as: %s`, mpath, origPath))
|
||||
}
|
||||
if f.Go != nil {
|
||||
r.versions.LoadOrStore(mod, f.Go.Version)
|
||||
|
9
src/cmd/go/testdata/mod/example.com_quote_v1.5.2.txt
vendored
Normal file
9
src/cmd/go/testdata/mod/example.com_quote_v1.5.2.txt
vendored
Normal file
@ -0,0 +1,9 @@
|
||||
This module is a replacement for rsc.io/quote, but its go.mod file declares
|
||||
a module path different from its location and the original module.
|
||||
|
||||
-- .mod --
|
||||
module rsc.io/Quote
|
||||
|
||||
go 1.14
|
||||
-- .info --
|
||||
{"Version":"v1.5.2"}
|
23
src/cmd/go/testdata/script/mod_load_replace_mismatch.txt
vendored
Normal file
23
src/cmd/go/testdata/script/mod_load_replace_mismatch.txt
vendored
Normal file
@ -0,0 +1,23 @@
|
||||
# If a replacement module declares a module path different from both
|
||||
# the original module and its location, report an error with all three paths.
|
||||
# In particular, the "required as" path should be the original.
|
||||
# Verifies golang.org/issue/38220.
|
||||
! go list .
|
||||
cmp stderr want
|
||||
|
||||
-- go.mod --
|
||||
module m
|
||||
|
||||
require rsc.io/quote v1.5.2
|
||||
|
||||
replace rsc.io/quote v1.5.2 => example.com/quote v1.5.2
|
||||
|
||||
-- use.go --
|
||||
package use
|
||||
|
||||
import _ "rsc.io/quote"
|
||||
|
||||
-- want --
|
||||
go: example.com/quote@v1.5.2: parsing go.mod:
|
||||
module declares its path as: rsc.io/Quote
|
||||
but was required as: rsc.io/quote
|
Loading…
Reference in New Issue
Block a user