de023d59a5
With #34111, we are forwarding the LSP from one gopls instance to another. This exposed an asymmetry in our LSP dispatching: for both ClientDispatcher and ServerDispatcher, we unmarshal to non-nil response structs. This means that when forwarding the LSP, we translate empty JSON responses (corresponding to nil values) into the non-nil zero value. This causes problems for some editors, as reported in #37570. Fix it by instead unmarshaling to a pointer. This is, of course, a somewhat dangerous change. I fixed the one NPE that occurred in tests, and have done some mild manual testing. I wouldn't be surprised if we discover more NPEs later on, but I still think this is the right change to make. Updates golang/go#34111 Fixes golang/go#37570 Change-Id: Ie69e92d2821c829cdfc4f4ab303679a725f1f859 Reviewed-on: https://go-review.googlesource.com/c/tools/+/222058 Reviewed-by: Peter Weinberger <pjw@google.com> Reviewed-by: Rebecca Stambler <rstambler@golang.org> Run-TryBot: Robert Findley <rfindley@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> |
||
---|---|---|
benchmark/parse | ||
blog | ||
cmd | ||
container/intsets | ||
cover | ||
go | ||
godoc | ||
gopls | ||
imports | ||
internal | ||
playground | ||
present | ||
refactor | ||
txtar | ||
.gitattributes | ||
.gitignore | ||
AUTHORS | ||
codereview.cfg | ||
CONTRIBUTING.md | ||
CONTRIBUTORS | ||
go.mod | ||
go.sum | ||
LICENSE | ||
PATENTS | ||
README.md |
Go Tools
This subrepository holds the source for various packages and tools that support the Go programming language.
Some of the tools, godoc
and vet
for example, are included in binary Go
distributions.
Others, including the Go guru
and the test coverage tool, can be fetched with
go get
.
Packages include a type-checker for Go and an implementation of the Static Single Assignment form (SSA) representation for Go programs.
Download/Install
The easiest way to install is to run go get -u golang.org/x/tools/...
. You can
also manually git clone the repository to $GOPATH/src/golang.org/x/tools
.
Report Issues / Send Patches
This repository uses Gerrit for code changes. To learn how to submit changes to this repository, see https://golang.org/doc/contribute.html.
The main issue tracker for the tools repository is located at https://github.com/golang/go/issues. Prefix your issue with "x/tools/(your subdir):" in the subject line, so it is easy to find.