From 5e40c1c23643177c876c1dd087b8a700bac4cf57 Mon Sep 17 00:00:00 2001 From: Steven L Date: Sat, 29 Dec 2018 20:24:44 +0000 Subject: [PATCH] go/analysis/internal/checker: don't clobber error when packages.Load fails Previously, if `packages.Load` failed, it would (sometimes? always?) return an error + no initial packages. The moved `len(initial)` check was overriding the actual err with a much less useful one. Example output before: ``` 13:03:17.856866 load [./...] 13:03:28.403532 ./... matched no packages ``` And after: ``` 13:03:30.942191 load [./...] 13:03:36.999506 go list repeated package [an internal package] with different values ``` Change-Id: I1a821e3855cbbbee904bcec9c29877e091c3e3a0 GitHub-Last-Rev: d1235fc2eceb0d4e947f47be99edc5ac96da5f84 GitHub-Pull-Request: golang/tools#65 Reviewed-on: https://go-review.googlesource.com/c/155745 Reviewed-by: Michael Matloob --- go/analysis/internal/checker/checker.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/go/analysis/internal/checker/checker.go b/go/analysis/internal/checker/checker.go index 1681570e..e70a5133 100644 --- a/go/analysis/internal/checker/checker.go +++ b/go/analysis/internal/checker/checker.go @@ -141,11 +141,11 @@ func load(patterns []string, allSyntax bool) ([]*packages.Package, error) { err = fmt.Errorf("%d errors during loading", n) } else if n == 1 { err = fmt.Errorf("error during loading") + } else if len(initial) == 0 { + err = fmt.Errorf("%s matched no packages", strings.Join(patterns, " ")) } } - if len(initial) == 0 { - err = fmt.Errorf("%s matched no packages", strings.Join(patterns, " ")) - } + return initial, err }