Closed
Description
What version of Go are you using (go version
)?
$ go version go version devel go1.17-e1fa26026d Sat Jun 5 19:52:26 2021 +0000 linux/amd64 $ go list -m golang.org/x/tools golang.org/x/tools v0.1.3-0.20210525215409-a3eb095d6aee $ go list -m golang.org/x/tools/gopls golang.org/x/tools/gopls v0.0.0-20210525215409-a3eb095d6aee
Does this issue reproduce with the latest release?
Yes.
Note this only happens using go tip
(version above).
What operating system and processor architecture are you using (go env
)?
go env
Output
$ go env GO111MODULE="on" GOARCH="amd64" GOBIN="" GOCACHE="/home/myitcv/.cache/go-build" GOENV="/home/myitcv/.config/go/env" GOEXE="" GOFLAGS="" GOHOSTARCH="amd64" GOHOSTOS="linux" GOINSECURE="" GOMODCACHE="/home/myitcv/gostuff/pkg/mod" GONOPROXY="" GONOSUMDB="" GOOS="linux" GOPATH="/home/myitcv/gostuff" GOPRIVATE="" GOPROXY="https://proxy.golang.org,direct" GOROOT="/home/myitcv/gos" GOSUMDB="sum.golang.org" GOTMPDIR="" GOTOOLDIR="/home/myitcv/gos/pkg/tool/linux_amd64" GOVCS="" GOVERSION="devel go1.17-e1fa26026d Sat Jun 5 19:52:26 2021 +0000" GCCGO="gccgo" AR="ar" CC="gcc" CXX="g++" CGO_ENABLED="1" GOMOD="/home/myitcv/gostuff/src/github.com/myitcv/govim/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 -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build3521445939=/tmp/go-build -gno-record-gcc-switches"
What did you do?
-- go.mod --
module mod.com
go 1.12
require (
example.com/blah v1.0.0
rubbish.com/useless v1.0.0
)
-- main.go --
package main
import (
"fmt"
"example.com/blah"
)
func main() {
fmt.Println(blah.Name, useless.Name)
}
-- main.go.golden --
package main
import (
"fmt"
"example.com/blah"
"rubbish.com/useless"
)
func main() {
fmt.Println(blah.Name, useless.Name)
}
Ran source.organizeImports
to resolve useless.Name
in the presence of a module cache which contains the following:
-- .mod --
module rubbish.com/useless
-- .info --
{"Version":"v1.0.0","Time":"2018-10-22T18:45:39Z"}
-- go.mod --
module rubbish.com/useless
-- main.go --
package useless
const Name = "rubbish.com/useless"
What did you expect to see?
The saved file reflect the contents of main.go.golden
What did you see instead?
The following diff:
# Test that GoImportsLocalPrefix works for new imports
# Verify that new imports get correctly placed (0.638s)
> go mod download
> vim ex 'e main.go'
> vim ex 'GOVIMGoImports'
> vim ex 'noautocmd w'
> cmp main.go main.go.golden
[diff -main.go +main.go.golden]
package main
import (
"fmt"
"example.com/blah"
- "mod.com/.home/gopath/pkg/mod/rubbish.com/[email protected]"
+
+ "rubbish.com/useless"
)
func main() {
fmt.Println(blah.Name, useless.Name)
}
FAIL: testdata/scenario_goimports_local/new_import.txt:8: main.go and main.go.golden differ
FYI @leitzler