920acffc3e
Currently array and slice literals don't work very well for completion. When go/parser is not expecting a type, it often turns array types (e.g. "[]int") into *ast.BadExpr, which messes up completion because we can't figure out the prefix from *ast.BadExpr, and *ast.BadExprs don't get type checked. This change addresses the first problem of not being able to figure out the prefix. If we see an *ast.BadExpr, we now blindly try to reparse it as a composite literal by adding on "{}". If we end up with an *ast.CompositeLit with an *ast.ArrayType "Type", we swap the *ast.BadExpr for the *ast.ArrayType. This approach is dumb but simple, and fixes lexical completions in array types. Change-Id: Ifa42e646bcbf2a30170d73e6dd11982384d40b43 Reviewed-on: https://go-review.googlesource.com/c/tools/+/197437 Run-TryBot: Rebecca Stambler <rstambler@golang.org> Reviewed-by: Rebecca Stambler <rstambler@golang.org> |
||
---|---|---|
benchmark/parse | ||
blog | ||
cmd | ||
container/intsets | ||
cover | ||
go | ||
godoc | ||
gopls | ||
imports | ||
internal | ||
playground | ||
present | ||
refactor | ||
.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.