• Russ Cox's avatar
    cmd/go: change list -compiled to populate new CompiledGoFiles list · 53859e57
    Russ Cox authored
    CL 108156 added -cgo during the Go 1.11 cycle.
    To avoid adding a new field to Package, it redefined the
    meaning of the CgoFiles list to be the cgo output instead
    of the cgo input.
    
    This was awkward in the go command itself, since the meaning
    of the list changed midway through the build.
    
    But, worse, it is awkward to users of go list.
    When gathering information about a tree of packages,
    we may want the names of both the cgo inputs and the cgo outputs
    (golang.org/x/tools/go/packages does, it turns out),
    or when combined with -deps (CL 107776),
    we may only care about one list or the other depending
    on whether the package was requested explicitly or is
    being returned as a dependency.
    
    Also, it's not general enough. SWIGFiles turn into cgo files
    and then end up in the list too. And maybe there will be others
    in the future. What clients really want is the list of files that
    are presented to the go compiler, so that they can parse
    and type-check them as if they were the compiler instead.
    
    Eliminate all this awkwardness by dropping -cgo and adding
    a new -compiled that populates a new CompiledGoFiles list.
    
    Change-Id: I5f152da17cfb2692eedde61721d01ec13067c57d
    Reviewed-on: https://go-review.googlesource.com/126695
    Run-TryBot: Russ Cox <rsc@golang.org>
    Reviewed-by: 's avatarMichael Matloob <matloob@golang.org>
    Reviewed-by: 's avatarBryan C. Mills <bcmills@google.com>
    53859e57
ast.go 13 KB