go/packages: pass through packages with error in the fallback
This applies a part of golang.org/cl/137075 to the fallback. If go list doesn't find a package, it returns an almost empty package structure with an error set on it. That change passed through those packages from the 1.11+ go list, so users could determine there wasn't a match. This change does the same from the go 1.10 fallback go list code. Change-Id: I98acc186c0a9eeef0416e9fec0e1fe0e29ddc51c Reviewed-on: https://go-review.googlesource.com/c/139158 Reviewed-by: Alan Donovan <adonovan@google.com>
This commit is contained in:
parent
2f84ea8ef8
commit
cb0b336180
|
@ -49,7 +49,7 @@ func golistDriverFallback(cfg *Config, words ...string) (*driverResponse, error)
|
|||
addPackage := func(p *jsonPackage) {
|
||||
id := p.ImportPath
|
||||
|
||||
if p.Name == "" || allPkgs[id] {
|
||||
if allPkgs[id] {
|
||||
return
|
||||
}
|
||||
allPkgs[id] = true
|
||||
|
@ -133,6 +133,12 @@ func golistDriverFallback(cfg *Config, words ...string) (*driverResponse, error)
|
|||
Imports: importMap(p.Imports),
|
||||
// TODO(matloob): set errors on the Package to cgoErrors
|
||||
}
|
||||
if p.Error != nil {
|
||||
pkg.Errors = append(pkg.Errors, Error{
|
||||
Pos: p.Error.Pos,
|
||||
Msg: p.Error.Err,
|
||||
})
|
||||
}
|
||||
response.Packages = append(response.Packages, pkg)
|
||||
if cfg.Tests && isRoot {
|
||||
testID := fmt.Sprintf("%s [%s.test]", id, id)
|
||||
|
|
Loading…
Reference in New Issue