[mirror] Go Tools
Перейти к файлу
Heschi Kreinick d2fffb4b84 internal/imports: cache things outside the mod cache
Since a user's module cache is generally going to be much bigger than
their main module, one would expect that caching just information about
the module cache would be sufficient. It turns out that's not correct.
When we discover something in the module cache, we have to make sure
that a different version of it isn't already in scope. Doing that can
require information about the main module or replace targets, so that
needs to be cached too.

Concretely, when I'm working in x/tools, if a scan discovers a version
of x/tools in the module cache, it should usually ignore that version.
But that might not be true in more complicated cases, especially those
involving nested modules whose boundaries change.

So, cache everything except GOROOT. Since the new data is mutable,
we store it separately from the module cache data so that it can be
discarded easily between runs.

Change-Id: I47364f6c0270fee03af8898fec6c85d1b9c8d780
Reviewed-on: https://go-review.googlesource.com/c/tools/+/202045
Reviewed-by: Rebecca Stambler <rstambler@golang.org>
2019-10-21 20:45:41 +00:00
benchmark/parse benchmark/parse: fix cosmetic defect in error str. 2015-02-02 17:07:43 +00:00
blog blog: add support for optional analytics HTML 2019-10-02 16:18:51 +00:00
cmd cmd/present: fix origin mismatch for websocket when using HTTPS 2019-10-14 20:52:21 +00:00
container/intsets x/tools/container/intsets: add LowerBound 2017-08-21 16:11:21 +00:00
cover cover: handle multiple samples from the same location 2017-12-10 23:11:56 +00:00
go go/packages: create Imports map when creating package 2019-10-21 20:10:49 +00:00
godoc godoc/vfs/zipfs: fix godoc formatting 2019-10-07 15:17:16 +00:00
gopls gopls: update go.mod file 2019-10-21 18:45:54 +00:00
imports imports: allow nil Options in Process 2019-05-20 22:08:59 +00:00
internal internal/imports: cache things outside the mod cache 2019-10-21 20:45:41 +00:00
playground playground: use stdlib instead of appengine packages 2019-03-07 16:39:23 +00:00
present all: replace reference to plan9.bell-labs.com with 9p.io 2019-08-26 06:06:29 +00:00
refactor all: fix more typos 2019-09-11 15:13:14 +00:00
.gitattributes tools: copying .gitattributes to all subrepositories (fixes windows build) 2014-12-23 06:32:51 +00:00
.gitignore .gitignore: roll back ".gitignore: ignore emacs backup files" 2018-02-13 00:43:28 +00:00
AUTHORS go.empty: prototype for new subrepository 2012-01-25 14:45:13 -05:00
CONTRIBUTING.md CONTRIBUTING.md: remove note about not accepting Pull Requests 2018-03-14 18:02:17 +00:00
CONTRIBUTORS go.empty: prototype for new subrepository 2012-01-25 14:45:13 -05:00
LICENSE LICENSE: add 2012-03-17 15:20:58 +11:00
PATENTS go.empty: add PATENTS file to the subrepo. 2012-04-16 11:24:04 +10:00
README.md README: switch to Markdown and add links 2017-09-27 05:40:07 +00:00
codereview.cfg tools: add codereview.cfg 2015-03-18 17:04:00 +00:00
go.mod internal/lsp: use x/xerrors to create new errors 2019-08-06 19:46:56 +00:00
go.sum internal/lsp: use protocol.Ranges for source.Identifier 2019-08-29 05:14:58 +00:00

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.