go/internal/lsp/source/completion
Muir Manders 1428e83b47 lsp/completion: fix bogus generic func conversion
For example:

    func foo[A int | float64](a A) A { return a }

    var _ int = fo<>

Previously at <> we would complete to "int(foo[A int|float64](a A))".
We added the int() type conversion because the returned type param A
was convertible to the expected "int" (i.e. both "int" and "float64"
can be converted). This is a premature suggestion, though, so fix by
suppressing such type conversions for type parameters.

Fixes golang/go#51780.

Change-Id: I63e3bd401a4d9927b9261659812c521c02e33d94
Reviewed-on: https://go-review.googlesource.com/c/tools/+/394016
Run-TryBot: Muir Manders <muir@mnd.rs>
gopls-CI: kokoro <noreply+kokoro@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Robert Findley <rfindley@google.com>
Trust: Hyang-Ah Hana Kim <hyangah@gmail.com>
2022-03-22 17:37:31 +00:00
..
builtin.go lsp/completion: support completing to Elem() types 2021-06-09 15:58:30 +00:00
completion.go lsp/completion: fix bogus generic func conversion 2022-03-22 17:37:31 +00:00
deep_completion.go lsp/completion: reduce garbage searching for candidates 2021-08-12 17:14:32 +00:00
deep_completion_test.go internal/lsp/source: move completion to its own package 2020-09-08 19:19:08 +00:00
definition.go internal/lsp: Provide completions for test function definitions 2022-02-25 19:27:31 +00:00
format.go internal/lsp: add snippet completion for function type parameters 2022-03-09 15:55:38 +00:00
fuzz.go internal/completion: default to regular completion for f.Fuzz without f.Add 2022-03-16 01:41:57 +00:00
keywords.go internal/lsp/source/completion: remove "completion_" prefix from files 2020-10-30 17:45:15 +00:00
labels.go internal/lsp/source/completion: remove "completion_" prefix from files 2020-10-30 17:45:15 +00:00
literal.go internal/lsp/source/completion: add conventional acronyms for type names 2022-02-03 15:53:42 +00:00
package.go internal/lsp: use source.Offset instead of tok.Offset 2021-10-12 22:12:04 +00:00
package_test.go internal/lsp/source/completion: suggest only valid package names 2021-04-27 19:53:45 +00:00
postfix_snippets.go gopls: add string join/split postfix completions 2022-01-11 13:55:59 +00:00
printf.go internal/lsp: fix some incorrect spelling 2020-11-24 11:59:21 +00:00
printf_test.go internal/lsp/source/completion: remove "completion_" prefix from files 2020-10-30 17:45:15 +00:00
snippet.go internal/lsp: add snippet completion for function type parameters 2022-03-09 15:55:38 +00:00
statements.go internal/lsp: add snippet completion for t.Fatal errs 2021-03-15 21:39:02 +00:00
util.go internal/lsp/source/completion: add postfix snippet completions 2021-03-29 17:27:46 +00:00
util_test.go internal/lsp/source: move completion to its own package 2020-09-08 19:19:08 +00:00