1
0
mirror of https://github.com/golang/go synced 2024-09-30 03:34:51 -06:00

cmd/api: fix no go files package panic

Fixes #29837

Change-Id: I7d57c24d2133932c076df6f41dd6589f777b65dd
Reviewed-on: https://go-review.googlesource.com/c/158877
Run-TryBot: Baokun Lee <nototon@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
This commit is contained in:
Baokun Lee 2019-01-23 00:22:53 +08:00 committed by Brad Fitzpatrick
parent d1887676d9
commit 68eb3ccdec
3 changed files with 22 additions and 2 deletions

View File

@ -169,7 +169,13 @@ func main() {
// w.Import(name) will return nil
continue
}
pkg, _ := w.Import(name)
pkg, err := w.Import(name)
if _, nogo := err.(*build.NoGoError); nogo {
continue
}
if err != nil {
log.Fatalf("Import(%q): %v", name, err)
}
w.export(pkg)
}
}
@ -470,7 +476,7 @@ func (w *Walker) Import(name string) (*types.Package, error) {
info, err := context.ImportDir(dir, 0)
if err != nil {
if _, nogo := err.(*build.NoGoError); nogo {
return nil, nil
return nil, err
}
log.Fatalf("pkg %q, dir %q: ScanDir: %v", name, dir, err)
}

View File

@ -203,3 +203,16 @@ func TestIssue21181(t *testing.T) {
w.export(pkg)
}
}
func TestIssue29837(t *testing.T) {
for _, c := range contexts {
c.Compiler = build.Default.Compiler
}
for _, context := range contexts {
w := NewWalker(context, "testdata/src/issue29837")
_, err := w.Import("p")
if _, nogo := err.(*build.NoGoError); !nogo {
t.Errorf("expected *build.NoGoError, got %T", err)
}
}
}

View File

@ -0,0 +1 @@
Empty directory for test, see https://golang.org/issues/29837.