Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

x/tools/go/packages: "internal error: nil Pkg importing" #33554

Open
jayconrod opened this issue Aug 8, 2019 · 0 comments

Comments

@jayconrod
Copy link
Contributor

commented Aug 8, 2019

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

@jayconrod jayconrod added this to the Unreleased milestone Aug 8, 2019

@gopherbot gopherbot added the Tools label Sep 12, 2019

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
2 participants
You can’t perform that action at this time.