commit | 4da4485a1cd91d12f7ac9639b46f51587bda69fd | [log] [tgz] |
---|---|---|
author | Muir Manders <muir@mnd.rs> | Sun Dec 08 19:03:52 2019 -0800 |
committer | Rebecca Stambler <rstambler@golang.org> | Wed Dec 11 23:14:03 2019 +0000 |
tree | 260ddeeb2a51f07bc4d5bfd30e0fb8407a6c8e77 | |
parent | ec14b2965194f60e706c3b6fe884dfdae094ddcf [diff] |
internal/lsp: invalidate metadata and type info more selectively Say you have foo.go and foo_test.go yielding packages "foo" and "foo.test". Previously when you changed foo_test.go we would invalidate the foo.test and foo packages. Invalidating foo is not necessary since it does not depend on any test files. Furthermore, it caused problems because nothing would refetch foo's metadata until foo.go changed, so various things (such as finding implementations in packages that depend on "foo") would be broken. Now we only invalidate metadata from packages that contain the modified file. We only invalidate type info from packages that contain the modified file, or from such packages' transitive reverse dependencies. Change-Id: I23d1af91bcdf22fad4faa1b048afe17ef4e403a1 Reviewed-on: https://go-review.googlesource.com/c/tools/+/210460 Run-TryBot: Rebecca Stambler <rstambler@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Rebecca Stambler <rstambler@golang.org>
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.
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
.
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.