Closed
Description
What version of Go are you using (go version
)?
$ go version go version devel +0ca4f6be35 Wed Aug 7 14:40:17 2019 +0000 darwin/amd64
Does this issue reproduce with the latest release?
n/a
What operating system and processor architecture are you using (go env
)?
go env
Output
$ go env GO111MODULE="" GOARCH="amd64" GOBIN="" GOCACHE="/Users/jayconrod/Library/Caches/go-build" GOENV="/Users/jayconrod/Library/Application Support/go/env" GOEXE="" GOFLAGS="" GOHOSTARCH="amd64" GOHOSTOS="darwin" GONOPROXY="" GONOSUMDB="" GOOS="darwin" GOPATH="/Users/jayconrod/go" GOPRIVATE="" GOPROXY="https://proxy.golang.org,direct" GOROOT="/Users/jayconrod/Code/go" GOSUMDB="sum.golang.org" GOTMPDIR="" GOTOOLDIR="/Users/jayconrod/Code/go/pkg/tool/darwin_amd64" GCCGO="gccgo" AR="ar" CC="clang" CXX="clang++" CGO_ENABLED="1" GOMOD="/Users/jayconrod/Code/test/go.mod" CGO_CFLAGS="-g -O2" CGO_CPPFLAGS="" CGO_CXXFLAGS="-g -O2" CGO_FFLAGS="-g -O2" CGO_LDFLAGS="-g -O2" PKG_CONFIG="pkg-config" GOGCCFLAGS="-fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=/var/folders/rq/x0692kqj6ml8cvrhcqh5bswc008xj1/T/go-build252241896=/tmp/go-build -gno-record-gcc-switches -fno-common"
What did you do?
go run load.go
in the workspace described by:
-- a/a.go --
package a
import _ "m/b"
-- b/b.go --
package b
-- go.mod --
module m
go 1.13
require golang.org/x/tools v0.0.0-20190808195139-e713427fea3f // indirect
-- load.go --
// +build ignore
package main
import (
"fmt"
"log"
"golang.org/x/tools/go/packages"
)
func main() {
cfg := &packages.Config{
Mode: packages.NeedName | packages.NeedTypes | packages.NeedImports,
}
pkgs, err := packages.Load(cfg, "m/a", "m/b")
if err != nil {
log.Fatal(err)
}
for _, pkg := range pkgs {
fmt.Println(pkg.PkgPath)
}
}
What did you expect to see?
Test program should print:
m/a
m/b
What did you see instead?
2019/08/08 17:14:09 internal error: nil Pkg importing "m/b" from "m/a"
exit status 1
The error message is coming from golang.org/x/tools/go/packages.loader.loadPackage
. I think the problem is that I asked for NeedTypes
and NeedImports
but not NeedDeps
, which may or may not make sense. We shouldn't be exiting with an internal error in any case though.
cc @matloob