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 conflicting package declarations, the returned build.Package has its Name field set (arbitrarily!) to the first package-name seen in any of the files, and the InvalidGoFiles 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 to go/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
https://play.golang.org/p/ZnGePWG7Fqs illustrates (at least) two problems with the
go/buildAPI:When
ImportDiris called on a directory containing files with conflictingpackagedeclarations, the returnedbuild.Packagehas itsNamefield set (arbitrarily!) to the first package-name seen in any of the files, and theInvalidGoFileslisted 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/buildto 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