From b81d75fb42f3add3fefe7cf8fa220f88895920e5 Mon Sep 17 00:00:00 2001 From: Roland Shoemaker Date: Fri, 12 Mar 2021 09:51:50 -0800 Subject: [release-branch.go1.15] cmd/go/internal/load: always set IsImportCycle when in a cycle When hitting an import cycle in reusePackage, and there is already an error set, make sure IsImportCycle is set so that we don't end up stuck in a loop. Updates #25830 Fixes #47347 Change-Id: Iba966aea4a637dfc34ee22782a477209ac48c9bd Reviewed-on: https://go-review.googlesource.com/c/go/+/301289 Trust: Roland Shoemaker Run-TryBot: Roland Shoemaker Reviewed-by: Bryan C. Mills Reviewed-by: Jay Conrod TryBot-Result: Go Bot (cherry picked from commit cdd08e615a9b92742b21a94443720b6d70452510) Reviewed-on: https://go-review.googlesource.com/c/go/+/336669 Trust: Bryan C. Mills Run-TryBot: Bryan C. Mills --- src/cmd/go/testdata/script/list_err_cycle.txt | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 src/cmd/go/testdata/script/list_err_cycle.txt (limited to 'src/cmd/go/testdata/script/list_err_cycle.txt') diff --git a/src/cmd/go/testdata/script/list_err_cycle.txt b/src/cmd/go/testdata/script/list_err_cycle.txt new file mode 100644 index 0000000000..44b82a62b0 --- /dev/null +++ b/src/cmd/go/testdata/script/list_err_cycle.txt @@ -0,0 +1,15 @@ +# Check that we don't get infinite recursion when loading a package with +# an import cycle and another error. Verifies #25830. +! go list +stderr 'found packages a \(a.go\) and b \(b.go\)' + +-- go.mod -- +module errcycle + +go 1.16 +-- a.go -- +package a + +import _ "errcycle" +-- b.go -- +package b \ No newline at end of file -- cgit v1.2.3-54-g00ecf