Description
What version of Go are you using (go version
)?
$ go version go version devel +d2de9bd59c Thu Jan 16 04:02:37 2020 +0000 linux/amd64 $ go list -m golang.org/x/tools golang.org/x/tools v0.0.0-20200116062425-473961ec044c $ go list -m golang.org/x/tools/gopls golang.org/x/tools/gopls v0.1.8-0.20200116062425-473961ec044c
Does this issue reproduce with the latest release?
Yes
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="" 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" 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-build511293922=/tmp/go-build -gno-record-gcc-switches"
What did you do?
This may or may not be a problem; raising for completeness given previous CLs have sought to prevent old diagnostics being sent to the client.
Per conversations with @stamblerre we have a defence against this in place in govim
so we are not seeing any problems in our tests. i.e. if these old diagnostics are ignored, the non-old diagnostics are as expected.
In a few tests we randomly see gopls
sending govim
old diagnostics. That is for a given file, we receive diagnostics for a version less than the latest version we received from gopls
.
This doesn't appear to be specific to a given test/scenario.
Attached is a gopls
log file from a test that looks to verify case insensitive completion:
The sequence of diagnostic notifications here is:
main.go v3
main.go v4
main.go v5
main.go v6
main.go v3
main.go v6
main.go v3
main.go v8
main.go v9
What did you expect to see?
Monotonically increasing version numbers for a file's diagnostics.
What did you see instead?
As above.
cc @stamblerre
FYI @leitzler