From: Quan Tong Date: Mon, 6 Nov 2023 01:00:31 +0000 (+0700) Subject: cmd/go/internal/modload: ignore $GOPATH/go.mod X-Git-Tag: go1.22rc1~379 X-Git-Url: http://www.git.cypherpunks.ru/?a=commitdiff_plain;h=0891b17ce53de8350689a89e55583794a12d302e;hp=07c388f17c039c0bb9a3fd0fd70bf5494aa7ee2c;p=gostls13.git cmd/go/internal/modload: ignore $GOPATH/go.mod The existing implementation returns a fatal error if $GOPATH/go.mod exists. We couldn't figure out what directory the go tool was treating as $GOPATH in the error message. Fixes #46807 Change-Id: If9db4c0377f7c36af9c367398d3da494be04cd41 Reviewed-on: https://go-review.googlesource.com/c/go/+/539596 LUCI-TryBot-Result: Go LUCI Auto-Submit: Bryan Mills Reviewed-by: Bryan Mills Reviewed-by: Heschi Kreinick --- diff --git a/src/cmd/go/internal/modload/init.go b/src/cmd/go/internal/modload/init.go index b9d9d2e552..f4f4a68254 100644 --- a/src/cmd/go/internal/modload/init.go +++ b/src/cmd/go/internal/modload/init.go @@ -485,7 +485,13 @@ func Init() { if len(list) > 0 && list[0] != "" { gopath = list[0] if _, err := fsys.Stat(filepath.Join(gopath, "go.mod")); err == nil { - base.Fatalf("$GOPATH/go.mod exists but should not") + fmt.Fprintf(os.Stderr, "go: warning: ignoring go.mod in $GOPATH %v\n", gopath) + if RootMode == NeedRoot { + base.Fatal(ErrNoModRoot) + } + if !mustUseModules { + return + } } } } diff --git a/src/cmd/go/testdata/script/env_issue46807.txt b/src/cmd/go/testdata/script/env_issue46807.txt new file mode 100644 index 0000000000..e37bc63e6c --- /dev/null +++ b/src/cmd/go/testdata/script/env_issue46807.txt @@ -0,0 +1,12 @@ +! go mod tidy +stderr '^go: warning: ignoring go.mod in \$GOPATH' +stderr '^go: go.mod file not found in current directory or any parent directory; see ''go help modules''' + +go env +stdout 'GOPATH=' +stderr '^go: warning: ignoring go.mod in \$GOPATH' + +-- $GOPATH/go.mod -- +module bug + +go 1.21 \ No newline at end of file