1
0
mirror of https://github.com/golang/go synced 2024-10-01 01:28:32 -06:00
The Go programming language
Go to file
Alan Donovan 50ff896a1c cmd/guru: definition: opt: avoid type checker for qualified identifiers
For a 'definition' query on X in p.X, use special logic to load and
parse package p and find the declaration of package member X, without
using the type checker.  Such queries now typically take under
10ms (faster than godef).

The logic assumes that import "something/p" defines the name p.  If this
assumption is false, p.X could be a selection of a field or method X on
a member p of the same package, defined in another file.
So don't write code like that.

Added missing test of 'definitions'.
JSON tests now sanitize absolute $GOPATH filenames in the output.

Fixes issue #15458

Change-Id: I21e75fcc9372aaedd56851cace444aef205c7a97
Reviewed-on: https://go-review.googlesource.com/22526
Reviewed-by: Dominik Honnef <dominik@honnef.co>
Reviewed-by: Michael Matloob <matloob@golang.org>
2016-04-28 17:00:30 +00:00
benchmark/parse benchmark/parse: fix cosmetic defect in error str. 2015-02-02 17:07:43 +00:00
blog tools: add import comments. 2014-12-09 22:42:16 +00:00
cmd cmd/guru: definition: opt: avoid type checker for qualified identifiers 2016-04-28 17:00:30 +00:00
container/intsets container/intsets: use fast popcount with gccgo 2015-11-11 02:17:02 +00:00
cover cover: fixed broken error message 2016-03-08 18:20:19 +00:00
go go/gcimporter: cut off any gc-specific parameter numbering 2016-04-25 22:17:50 +00:00
godoc godoc: recognize examples with unordered output 2016-04-22 02:03:42 +00:00
imports imports: update static stdlib index to go1.6 2016-04-28 14:59:03 +00:00
oracle x/tools: remove remaining files tagged for Go 1.4 2016-04-12 18:58:24 +00:00
playground playground: hit golang.org/compile endpoint instead of play.golang.org 2016-04-27 05:26:01 +00:00
present x/tools/present: add command line flag to enable presenter notes 2016-04-07 00:38:29 +00:00
refactor x/tools: remove remaining files tagged for Go 1.4 2016-04-12 18:58:24 +00:00
.gitattributes tools: copying .gitattributes to all subrepositories (fixes windows build) 2014-12-23 06:32:51 +00:00
.gitignore dashboard: rearrange tree, in prep for packagification 2015-01-15 02:58:11 +00:00
AUTHORS go.empty: prototype for new subrepository 2012-01-25 14:45:13 -05:00
codereview.cfg tools: add codereview.cfg 2015-03-18 17:04:00 +00:00
CONTRIBUTING.md doc: add CONTRIBUTING.md 2015-02-18 23:43:38 +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 go.tools/README: minor correction. 2013-10-29 13:20:58 -04:00

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 oracle 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.

To submit changes to this repository, see http://golang.org/doc/contribute.html.