]> Cypherpunks repositories - gostls13.git/commit
go/build: return partial information on Import error, for local import paths
authorDmitri Shuralyov <shurcooL@gmail.com>
Mon, 1 May 2017 21:28:33 +0000 (17:28 -0400)
committerDmitri Shuralyov <shurcool@gmail.com>
Mon, 15 May 2017 18:44:46 +0000 (18:44 +0000)
commit67e47124fc5a3ab80dd95dfdb980b6e24eb15467
tree9ffd5a40dfb989133ea9ad3bbed5bc612fd49da7
parent9e83c11fca44282e4b8b1e099f437f557b73b43e
go/build: return partial information on Import error, for local import paths

Documentation of build.Import says:

// If the path is a local import path naming a package that can be imported
// using a standard import path, the returned package will set p.ImportPath
// to that path.
// ...
// If an error occurs, Import returns a non-nil error and a non-nil
// *Package containing partial information.

That behavior was previously untested, and broken by change in CL 33158.

Fix that by avoiding returning early on error for local import paths.
First, gather partial information, and only then check that the p.Dir
directory exists.

Add tests for this behavior.

Fixes #19769.
Fixes #20175 (duplicate of #19769).
Updates #17863.

Change-Id: I169cb35291099d05e02aaa3cb23a7403d1cc3657
Reviewed-on: https://go-review.googlesource.com/42350
Reviewed-by: Russ Cox <rsc@golang.org>
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
src/go/build/build.go
src/go/build/build_test.go