Skip to content

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

Closed
@jayconrod

Description

@jayconrod

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    FrozenDueToAgeNeedsInvestigationSomeone must examine and confirm this is a valid issue and not a duplicate of an existing one.ToolsThis label describes issues relating to any tools in the x/tools repository.

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions