1
0
mirror of https://github.com/golang/go synced 2024-11-18 16:14:46 -07:00
go/internal/lsp/testdata
Muir Manders 5a76f03bc7 internal/lsp: fix variadic interface completion ranking
In cases like:

var foo []io.Writer
var buf *bytes.Buffer
foo = append(foo, <>)

we weren't giving "buf" a good score. When comparing the candidate
type *bytes.Buffer to the (variadic) expected type []io.Writer we were
turning the candidate type into []*bytes.Buffer. However, of course,
[]*bytes.Buffer is not assignable to []io.Writer, so the types didn't
match. Now we instead turn the expected type []io.Writer into
io.Writer and compare to *bytes.Buffer.

I fixed the @rank test note to check that the candidates' scores are
strictly decreasing. Previously it would allow candidates with the
same score if they happened to be in the right order. This made it
easier to right a test for this issue, but also uncovered an issue
with untyped completion logic. I fixed it to do the untyped constant
check if _either_ the expected or candidate type is
untyped (previously it required the candidate type to be untyped).

Fixes golang/go#35625.

Change-Id: I9a837d6a781669cb7a2f1d6d3d7f360c85be49eb
Reviewed-on: https://go-review.googlesource.com/c/tools/+/207518
Reviewed-by: Rebecca Stambler <rstambler@golang.org>
Run-TryBot: Rebecca Stambler <rstambler@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
2019-11-18 05:14:29 +00:00
..
analyzer go/analysis: rename reportNodef to ReportRangef 2019-10-28 19:16:33 +00:00
anon internal/lsp: add additional tests for completion 2018-12-19 22:27:14 +00:00
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
bad internal/lsp: do not close over the handle in the memoize function 2019-10-30 00:30:36 +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 internal/lsp: suppress more completions in comments and literals 2019-04-24 20:52:08 +00:00
baz internal/lsp: search candidate type's package for completions 2019-10-30 06:26:58 +00:00
builtins internal/lsp: omit "iota" completion outside const decls 2019-09-15 20:16:06 +00:00
casesensitive internal/lsp: provide option for case sensitive completion 2019-09-26 16:59:42 +00:00
cast internal/lsp: add more testdata for completion and diagnostics 2018-11-20 06:06:34 +00:00
channel internal/lsp: apply type modifiers to completion candidate 2019-06-19 20:27:14 +00:00
comments internal/lsp: suppress more completions in comments and literals 2019-04-24 20:52:08 +00:00
complit internal/lsp/source: fixes completion for slice literals of pointers 2019-08-30 17:14:47 +00:00
constant internal/lsp: remove constant value from label and add tests 2019-05-15 19:19:14 +00:00
deep internal/lsp: fix variadic interface completion ranking 2019-11-18 05:14:29 +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
fuzzy internal/lsp: reorganize completion tests 2019-09-24 17:09:08 +00:00
generated internal/lsp: refactor error handling code in type-checking 2019-10-21 18:57:46 +00:00
godef internal/lsp/cmd: re-enable the definition cmd tests 2019-11-04 17:18:34 +00:00
good internal/lsp: remove duplicated enums 2019-09-25 15:30:23 +00:00
highlights internal/lsp: add support for document highlight 2019-03-26 19:08:20 +00:00
implementation internal/lsp: support implementations requests for implementations in other packages 2019-11-12 18:49:59 +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: add some keyword completions 2019-10-22 20:49:18 +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: use import path literal for documentLink range 2019-11-14 20:03:54 +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: improve literal func completion candidates 2019-11-07 21:18:00 +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 internal/lsp: add more testdata for completion and diagnostics 2018-11-20 06:06:34 +00:00
unimported internal/lsp: use available type info for unimported completions 2019-11-04 21:31:10 +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: fix variadic interface completion ranking 2019-11-18 05:14:29 +00:00