From: Rob Pike Date: Wed, 26 Jun 2013 17:48:04 +0000 (-0700) Subject: cmd/go: log compilation errors when scanning directories and packages X-Git-Tag: go1.2rc2~1169 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=53a00e2812891b2a3c91aaa6a12ac89c74ad42ea;p=gostls13.git cmd/go: log compilation errors when scanning directories and packages Before, some packages disappear silently if the package cannot be imported, such as if the import statement is unparseable. Before: % ls src foo issue % go list ./... _/home/r/bug/src/foo % After: % go list ./... src/issue/issue.go:3:5: expected 'STRING', found newline _/home/r/bug/src/foo % R=rsc CC=golang-dev https://golang.org/cl/10568043 --- diff --git a/src/cmd/go/main.go b/src/cmd/go/main.go index a09a75cd3e..3cee15651a 100644 --- a/src/cmd/go/main.go +++ b/src/cmd/go/main.go @@ -486,6 +486,9 @@ func matchPackages(pattern string) []string { } _, err = buildContext.ImportDir(path, 0) if err != nil { + if _, noGo := err.(*build.NoGoError); !noGo { + log.Print(err) + } return nil } pkgs = append(pkgs, name) @@ -520,8 +523,10 @@ func matchPackages(pattern string) []string { return nil } _, err = buildContext.ImportDir(path, 0) - if err != nil && strings.Contains(err.Error(), "no Go source files") { - return nil + if err != nil { + if _, noGo := err.(*build.NoGoError); noGo { + return nil + } } pkgs = append(pkgs, name) return nil @@ -588,6 +593,9 @@ func matchPackagesInFS(pattern string) []string { return nil } if _, err = build.ImportDir(path, 0); err != nil { + if _, noGo := err.(*build.NoGoError); !noGo { + log.Print(err) + } return nil } pkgs = append(pkgs, name)