1
0
mirror of https://github.com/golang/go synced 2024-11-18 16:44:43 -07:00
go/internal/lsp/testdata
Muir Manders 3721262b3e internal/lsp: support taking address for completion candidates
We now support taking the address of objects to make better completion
candidates. For example:

i := 123
var p *int = <> // now you get a candidate for "&i"

This required that we track addressability better, particularly when
searching for deep candidates. Now each candidate knows if it is
addressable, and the deep search propagates addressability to child
candidates appropriately.

The basic propagation logic is:

- In-scope *types.Var candidates are addressable. This handles your
  basic "foo" variable whose address if "&foo".

- Surrounding selector is addressable based on type checker info. This
  knows "foo.bar.<>" is addressable but "foo.bar().<>" isn't

- When evaluating deep completions, fields after a function call lose
  addressability, but fields after a pointer regain addressability. For
  example, "foo.bar()" isn't addressable, but "foo.bar().baz" is
  addressable if "bar()" returns a pointer.

Fixes golang/go#36132.

Change-Id: I6a8659eb8c203262aedf86844ac39a2d1e81ecc4
Reviewed-on: https://go-review.googlesource.com/c/tools/+/212399
Run-TryBot: Muir Manders <muir@mnd.rs>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Rebecca Stambler <rstambler@golang.org>
2019-12-23 23:54:10 +00:00
..
address internal/lsp: support taking address for completion candidates 2019-12-23 23:54:10 +00:00
analyzer go/analysis: rename reportNodef to ReportRangef 2019-10-28 19:16:33 +00:00
anon
append internal/lsp: improve completion in append() calls 2019-11-09 21:27:01 +00:00
arraytype internal/lsp: improve completion for *ast.ArrayTypes 2019-10-23 16:34:50 +00:00
assign internal/lsp/source: improve completion in value spec 2019-12-23 21:16:02 +00:00
bad internal/lsp/source: fix all types in resolveInvalid 2019-12-11 23:00:51 +00:00
badstmt internal/lsp: refactor error handling code in type-checking 2019-10-21 18:57:46 +00:00
bar internal/lsp: improve completion for *ast.ArrayTypes 2019-10-23 16:34:50 +00:00
basiclit
baz internal/lsp: search candidate type's package for completions 2019-10-30 06:26:58 +00:00
builtins internal/lsp: downrank "nil" completion candidate 2019-12-12 05:12:00 +00:00
casesensitive internal/lsp: provide option for case sensitive completion 2019-09-26 16:59:42 +00:00
cast
cgo internal/lsp/tests: skip cgo tests when not supported 2019-11-25 21:54:41 +00:00
cgoimport internal/lsp: improve link in documentation on hover 2019-12-12 22:39:21 +00:00
channel internal/lsp: support taking address for completion candidates 2019-12-23 23:54:10 +00:00
circular internal/lsp: add diagnostic on import causing import cycle 2019-12-13 19:54:01 +00:00
comments
complit internal/lsp: add comment completions for exported vars 2019-12-10 22:11:41 +00:00
constant internal/lsp: remove constant value from label and add tests 2019-05-15 19:19:14 +00:00
deep internal/lsp: support taking address for completion candidates 2019-12-23 23:54:10 +00:00
errors internal/lsp: match completions case-insensitively 2019-06-28 03:43:36 +00:00
fieldlist internal/lsp: improve completions in *ast.FieldList 2019-09-25 22:58:16 +00:00
folding tools/gopls: add cmd support for folding_ranges 2019-11-12 00:55:09 +00:00
foo internal/lsp: fix bad *ast.ArrayTypes for completion 2019-10-17 20:53:01 +00:00
format internal/lsp: refactor error handling code in type-checking 2019-10-21 18:57:46 +00:00
func_rank internal/lsp: move function signature into detail instead of label 2019-07-03 21:07:46 +00:00
funcsig internal/lsp: fix scope of FuncType completion candidates 2019-09-25 19:53:33 +00:00
funcvalue internal/lsp: move function signature into detail instead of label 2019-07-03 21:07:46 +00:00
fuzzymatch internal/lsp: reorganize and refactor code 2019-11-21 02:33:28 +00:00
generated internal/lsp: refactor error handling code in type-checking 2019-10-21 18:57:46 +00:00
godef internal/lsp: show comments for grouped variable declarations 2019-12-18 20:39:36 +00:00
good internal/lsp: remove duplicated enums 2019-09-25 15:30:23 +00:00
highlights internal/lsp: fix highlighting of inexact matches when highlighting from the right 2019-12-19 19:05:06 +00:00
implementation internal/lsp: refactor find-implementation handling 2019-12-23 22:59:19 +00:00
importedcomplit internal/lsp: fix composite literal completion 2019-05-13 22:24:33 +00:00
imports internal/lsp/source: start import diffs at byte 0 2019-11-08 19:30:12 +00:00
index internal/lsp: handle more expected type cases 2019-05-16 16:26:11 +00:00
interfacerank internal/lsp: apply type modifiers to completion candidate 2019-06-19 20:27:14 +00:00
keywords internal/lsp: suggest "fallthrough" only inside switches 2019-12-10 22:10:49 +00:00
labels internal/lsp: fix label completion in range and type switch stmts 2019-10-22 21:33:09 +00:00
links internal/lsp: link to the new pkg.go.dev instead of godoc.org 2019-11-30 07:06:09 +00:00
maps internal/lsp: improve completions in *ast.MapType 2019-10-24 19:03:17 +00:00
nested_complit internal/lsp: improve completion for *ast.ArrayTypes 2019-10-23 16:34:50 +00:00
nodisk internal/lsp: fix race condition in metadata handling 2019-11-04 20:35:57 +00:00
noparse internal/lsp: refactor error handling code in type-checking 2019-10-21 18:57:46 +00:00
noparse_format internal/lsp: refactor error handling code in type-checking 2019-10-21 18:57:46 +00:00
rank internal/lsp: fix variadic interface completion ranking 2019-11-18 05:14:29 +00:00
references internal/lsp/source: add support for references in the same workspace 2019-11-14 20:04:27 +00:00
rename internal/lsp/testadata/rename: add a test case for renames across packages 2019-11-14 22:24:11 +00:00
selector internal/lsp: move function signature into detail instead of label 2019-07-03 21:07:46 +00:00
signature tools/gopls: add cmd support for signature 2019-10-31 22:07:37 +00:00
snippets internal/lsp: remove useless signature cast completion candidate 2019-12-16 05:27:35 +00:00
suggestedfix internal/lsp: enable suggested fixes by default 2019-09-09 19:40:07 +00:00
symbols tools/gopls: add cmd support for symbols 2019-11-01 17:43:07 +00:00
testy internal/lsp: refactor error handling code in type-checking 2019-10-21 18:57:46 +00:00
typeassert internal/lsp: improve completion support for type assertions 2019-06-26 23:33:08 +00:00
types
unimported internal/lsp/source: cap number of unimported completions 2019-12-06 20:21:18 +00:00
unresolved internal/lsp: fix function value completions 2019-06-20 15:43:39 +00:00
unsafe internal/lsp: fix type checking for unsafe package 2019-06-11 19:41:53 +00:00
variadic internal/lsp: fix variadic interface completion ranking 2019-11-18 05:14:29 +00:00
summary.txt.golden internal/lsp: support taking address for completion candidates 2019-12-23 23:54:10 +00:00