Skip to content

go/build: should not arbitrarily resolve conflicting package names #45999

Open
@bcmills

Description

@bcmills

https://play.golang.org/p/ZnGePWG7Fqs illustrates (at least) two problems with the go/build API:

  1. 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.

  2. 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

Metadata

Metadata

Assignees

No one assigned

    Labels

    NeedsInvestigationSomeone must examine and confirm this is a valid issue and not a duplicate of an existing one.

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions