mirror of
https://github.com/golang/go
synced 2024-11-23 18:10:04 -07:00
cmd/go: print each import error only once
This change prevents import errors from being printed multiple times. Creating a bare-bones package 'p' with only one file importing itself and running 'go build p', the current implementation gives this error message: can't load package: import cycle not allowed package p imports p import cycle not allowed package p imports p With this change we will show the message only once. Updates #23295 Change-Id: I653b34c1c06c279f3df514f12ec0b89745a7e64a Reviewed-on: https://go-review.googlesource.com/86535 Reviewed-by: Harald Nordgren <haraldnordgren@gmail.com> Reviewed-by: Ian Lance Taylor <iant@golang.org> Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
This commit is contained in:
parent
ea59ebd338
commit
a42ea51ae9
@ -1359,6 +1359,22 @@ func TestImportCommentConflict(t *testing.T) {
|
||||
tg.grepStderr("found import comments", "go build did not mention comment conflict")
|
||||
}
|
||||
|
||||
func TestImportCycle(t *testing.T) {
|
||||
tg := testgo(t)
|
||||
defer tg.cleanup()
|
||||
tg.parallel()
|
||||
tg.setenv("GOPATH", filepath.Join(tg.pwd(), "testdata/importcycle"))
|
||||
tg.runFail("build", "selfimport")
|
||||
|
||||
count := tg.grepCountBoth("import cycle not allowed")
|
||||
if count == 0 {
|
||||
t.Fatal("go build did not mention cyclical import")
|
||||
}
|
||||
if count > 1 {
|
||||
t.Fatal("go build mentioned import cycle more than once")
|
||||
}
|
||||
}
|
||||
|
||||
// cmd/go: custom import path checking should not apply to Go packages without import comment.
|
||||
func TestIssue10952(t *testing.T) {
|
||||
testenv.MustHaveExternalNetwork(t)
|
||||
|
@ -1473,6 +1473,7 @@ func PackagesForBuild(args []string) []*Package {
|
||||
for _, pkg := range pkgs {
|
||||
if pkg.Error != nil {
|
||||
base.Errorf("can't load package: %s", pkg.Error)
|
||||
printed[pkg.Error] = true
|
||||
}
|
||||
for _, err := range pkg.DepsErrors {
|
||||
// Since these are errors in dependencies,
|
||||
|
3
src/cmd/go/testdata/importcycle/src/selfimport/selfimport.go
vendored
Normal file
3
src/cmd/go/testdata/importcycle/src/selfimport/selfimport.go
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
package selfimport
|
||||
|
||||
import "selfimport"
|
Loading…
Reference in New Issue
Block a user