Open bcmills opened 3 years ago
(I found this while investigating #45827.)
Change https://golang.org/cl/317299 mentions this issue: go/build: avoid duplicates in InvalidGoFiles
Change https://golang.org/cl/317300 mentions this issue: cmd/go: include packages with InvalidGoFiles when filtering main packages
Reopening. (Gopherbot erroneously closed this due to misparsing the commit message in CL 317300; filed as #46081.)
https://play.golang.org/p/ZnGePWG7Fqs illustrates (at least) two problems with the
go/build
API:When
ImportDir
is called on a directory containing files with conflictingpackage
declarations, the returnedbuild.Package
has itsName
field set (arbitrarily!) to the first package-name seen in any of the files, and theInvalidGoFiles
listed for the package include only the files with package names other than the arbitrary one. That seems wrong to me: if the package has conflicting names, it isn't up togo/build
to decide which of those is “correct” — it should report all of the files as erroneous.The same file is listed twice in
InvalidGoFiles
.This issue is about problem (1). (I will fix problem (2) separately, because it seems trivial.)
CC @jayconrod @matloob @rsc