From 4c028edffafbaa6a2ad46fcd5423febb207f8a98 Mon Sep 17 00:00:00 2001 From: Russ Cox Date: Thu, 25 May 2023 00:32:39 -0400 Subject: [PATCH] cmd/go: avoid duplicate errors in module load Just a missing base.ExitIfErrors. Fixes #46160. Change-Id: I41949b0b7b036da94ba269220951677585d3f8e9 Reviewed-on: https://go-review.googlesource.com/c/go/+/498122 TryBot-Result: Gopher Robot Run-TryBot: Russ Cox Reviewed-by: Bryan Mills Auto-Submit: Russ Cox --- src/cmd/go/internal/modload/load.go | 1 + src/cmd/go/testdata/script/mod_go_version.txt | 5 ++--- src/cmd/go/testdata/script/mod_tidy_compat_implicit.txt | 3 +-- src/cmd/go/testdata/script/mod_tidy_compat_incompatible.txt | 3 +-- src/cmd/go/testdata/script/mod_tidy_compat_irrelevant.txt | 3 +-- 5 files changed, 6 insertions(+), 9 deletions(-) diff --git a/src/cmd/go/internal/modload/load.go b/src/cmd/go/internal/modload/load.go index 9eb9e6ddf8ea58..6c888116fec73b 100644 --- a/src/cmd/go/internal/modload/load.go +++ b/src/cmd/go/internal/modload/load.go @@ -1056,6 +1056,7 @@ func loadFromRoots(ctx context.Context, params loaderParams) *loader { ld.errorf("go: %v\n", err) } } + base.ExitIfErrors() // or we will report them again for { ld.reset() diff --git a/src/cmd/go/testdata/script/mod_go_version.txt b/src/cmd/go/testdata/script/mod_go_version.txt index e78ef3c13996ba..f0af3ae307e2e3 100644 --- a/src/cmd/go/testdata/script/mod_go_version.txt +++ b/src/cmd/go/testdata/script/mod_go_version.txt @@ -3,11 +3,10 @@ env GO111MODULE=on env TESTGO_VERSION=go1.21 -# TODO(rsc): go list prints the error twice. Why? ! go list -stderr '^go: sub@v1.0.0: sub requires go 1.999 \(running go 1.21; go.mod sets go 1.1\)$' +stderr -count=1 '^go: sub@v1.0.0: sub requires go 1.999 \(running go 1.21; go.mod sets go 1.1\)$' ! go build sub -stderr '^go: sub@v1.0.0: sub requires go 1.999 \(running go 1.21; go.mod sets go 1.1\)$' +stderr -count=1 '^go: sub@v1.0.0: sub requires go 1.999 \(running go 1.21; go.mod sets go 1.1\)$' -- go.mod -- module m diff --git a/src/cmd/go/testdata/script/mod_tidy_compat_implicit.txt b/src/cmd/go/testdata/script/mod_tidy_compat_implicit.txt index 8b5869780c2e77..0eded0f4588aad 100644 --- a/src/cmd/go/testdata/script/mod_tidy_compat_implicit.txt +++ b/src/cmd/go/testdata/script/mod_tidy_compat_implicit.txt @@ -51,8 +51,7 @@ stdout '^example.net/lazy v0.1.0$' go mod edit -go=1.16 ! go list -deps -test -f $MODFMT ./... - # TODO(#46160): -count=1 instead of -count=2. -stderr -count=2 '^go: example\.net/lazy@v0\.1\.0 requires\n\texample\.com/retract/incompatible@v1\.0\.0: missing go\.sum entry for go\.mod file; to add it:\n\tgo mod download example\.com/retract/incompatible$' +stderr -count=1 '^go: example\.net/lazy@v0\.1\.0 requires\n\texample\.com/retract/incompatible@v1\.0\.0: missing go\.sum entry for go\.mod file; to add it:\n\tgo mod download example\.com/retract/incompatible$' # If we combine a Go 1.16 go.sum file... diff --git a/src/cmd/go/testdata/script/mod_tidy_compat_incompatible.txt b/src/cmd/go/testdata/script/mod_tidy_compat_incompatible.txt index 1fef4b629c6602..e3362100037481 100644 --- a/src/cmd/go/testdata/script/mod_tidy_compat_incompatible.txt +++ b/src/cmd/go/testdata/script/mod_tidy_compat_incompatible.txt @@ -48,8 +48,7 @@ cmp go.mod go.mod.orig go mod edit -go=1.16 ! go list -f $MODFMT -deps ./... - # TODO(#46160): -count=1 instead of -count=2. -stderr -count=2 '^go: example\.net/lazy@v0\.1\.0 requires\n\texample\.net/requireincompatible@v0\.1\.0 requires\n\texample\.com/retract/incompatible@v2\.0\.0\+incompatible: missing go.sum entry for go.mod file; to add it:\n\tgo mod download example.com/retract/incompatible$' +stderr -count=1 '^go: example\.net/lazy@v0\.1\.0 requires\n\texample\.net/requireincompatible@v0\.1\.0 requires\n\texample\.com/retract/incompatible@v2\.0\.0\+incompatible: missing go.sum entry for go.mod file; to add it:\n\tgo mod download example.com/retract/incompatible$' # There are two ways for the module author to bring the two into alignment. diff --git a/src/cmd/go/testdata/script/mod_tidy_compat_irrelevant.txt b/src/cmd/go/testdata/script/mod_tidy_compat_irrelevant.txt index 59926d06d69afc..e4eaea0dd6242a 100644 --- a/src/cmd/go/testdata/script/mod_tidy_compat_irrelevant.txt +++ b/src/cmd/go/testdata/script/mod_tidy_compat_irrelevant.txt @@ -47,8 +47,7 @@ cmp stdout out-117.txt go mod edit -go=1.16 ! go list -deps -test -f $MODFMT all - # TODO(#46160): -count=1 instead of -count=2. -stderr -count=2 '^go: example.net/lazy@v0.1.0 requires\n\texample.com/retract/incompatible@v1.0.0: missing go.sum entry for go.mod file; to add it:\n\tgo mod download example.com/retract/incompatible$' +stderr -count=1 '^go: example.net/lazy@v0.1.0 requires\n\texample.com/retract/incompatible@v1.0.0: missing go.sum entry for go.mod file; to add it:\n\tgo mod download example.com/retract/incompatible$' -- go.mod --