1
0
mirror of https://github.com/golang/go synced 2024-11-18 20:04:52 -07:00
go/internal/lsp/cache
Muir Manders 920acffc3e internal/lsp: fix bad *ast.ArrayTypes for completion
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>
2019-10-17 20:53:01 +00:00
..
analysis.go internal/lsp: add a test to make sure we handle bad imports 2019-10-17 20:52:05 +00:00
builtin.go internal/lsp: address staticcheck warnings 2019-10-04 02:16:23 +00:00
cache.go internal/lsp: use options hooks to install diff driver 2019-10-11 16:38:31 +00:00
check.go internal/lsp: add a test to make sure we handle bad imports 2019-10-17 20:52:05 +00:00
external.go internal/lsp: address staticcheck warnings 2019-10-04 02:16:23 +00:00
file.go internal/lsp: rework snapshots and cache FileHandles per-snapshot 2019-10-01 16:26:22 +00:00
gofile.go internal/lsp: return an error from {Narrowest,Widest}CheckPackageHandle 2019-10-11 16:51:06 +00:00
load.go internal/lsp: check if the go/packages context has been canceled 2019-10-16 22:21:47 +00:00
parse.go internal/lsp: fix bad *ast.ArrayTypes for completion 2019-10-17 20:53:01 +00:00
pkg.go internal/lsp: remove misleading check span 2019-10-16 19:48:01 +00:00
session.go internal/lsp: add analyses to the snapshot 2019-10-15 15:04:14 +00:00
snapshot.go internal/lsp: use the analyzer's pointer instead of name 2019-10-15 21:12:01 +00:00
view.go internal/lsp: include context in go/packages config 2019-10-11 19:56:53 +00:00
watcher.go internal/lsp: fix deadlocks loading lots of files at once 2019-07-03 17:22:52 +00:00