mirror of
https://github.com/golang/go
synced 2024-11-18 19:24:39 -07:00
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> |
||
---|---|---|
.. | ||
foo.go |