1
0
mirror of https://github.com/golang/go synced 2024-11-18 21:05:02 -07:00
go/internal
Muir Manders d31a08c2ed internal/lsp/source: improve completion support for args to builtins
We now understand what "kind" of type is expected when using various
builtins. For example, when completing "close(<>)" we prefer channels,
and when completing "delete(<>)" we prefer maps.

I also added some code to infer the expected type for the second
argument to "delete()" and for the args to "copy()":

delete(map[someType]int{}, <>) // expect "someType"

copy([]int{}, <>) // expect "[]int"
copy(<>, []int{}) // expect "[]int"

And I marked "new()" as expected a type name, and it infers the type
name properly:

var _ *int = new(<>) // expected type at "<>" is "int"

Fixes golang/go#36326.

Change-Id: I4295c8753f8341d47010a0553fd2d0c2586f2efa
Reviewed-on: https://go-review.googlesource.com/c/tools/+/212957
Run-TryBot: Muir Manders <muir@mnd.rs>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Rebecca Stambler <rstambler@golang.org>
2020-01-14 05:24:53 +00:00
..
apidiff all: fix more typos 2019-09-11 15:13:14 +00:00
fastwalk
gopathwalk internal/gopathwalk/walk: add missing function descriptions and renaming 2019-12-16 21:45:07 +00:00
imports internal/imports: create listener map after clearing for new scan 2020-01-10 04:28:03 +00:00
jsonrpc2 internal/lsp: cancel early 2019-10-22 07:49:31 +00:00
lsp internal/lsp/source: improve completion support for args to builtins 2020-01-14 05:24:53 +00:00
memoize internal/memoize: fix race on read of handle.function 2019-12-05 18:38:34 +00:00
module
semver
span internal/span: support line directives 2019-11-25 19:20:43 +00:00
telemetry internal/telemetry: clean up test data 2019-12-20 23:47:30 +00:00
testenv internal/testenv: reject the resolved 'go' command if it does not match runtime.GOROOT 2019-11-11 19:22:22 +00:00
tool internal/lsp, internal/tool: clean up command line of gopls 2019-12-16 17:36:52 +00:00
xcontext