go/internal/lsp
Robert Findley 707beb0c63 internal/lsp/source: descend into fields and field lists in qualifyExpr
We do a lot of gymnastics to format var types, working around the lack
of alias tracking in go/types. As part of this, we clone and qualify
expressions. In this case, we were not qualifying identifiers that were
contained within fields or field lists.

Fix this by updating our expression traversal to include *ast.Field and
*ast.FieldList.

Fixes golang/go#50539

Change-Id: I6531c6a51aa402bd784778b8bedaa3dccee75af0
Reviewed-on: https://go-review.googlesource.com/c/tools/+/395678
Trust: Robert Findley <rfindley@google.com>
Run-TryBot: Robert Findley <rfindley@google.com>
Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
gopls-CI: kokoro <noreply+kokoro@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
2022-03-25 15:26:50 +00:00
..
analysis internal/lsp/source: support stubbing concrete type params 2022-03-03 22:52:16 +00:00
browser all: replace all usages of os/exec with golang.org/x/sys/execabs 2021-01-19 22:25:03 +00:00
cache internal/lsp/cache: check for nil WorkFile.Go 2022-03-21 13:26:21 +00:00
cmd internal/lsp/cmd: add vulncheck command 2022-03-24 22:38:00 +00:00
command internal/lsp/command: remove unnecessary json struct tag 2022-03-24 22:38:08 +00:00
debug internal/lsp/debug: add go version to gopls version output 2022-02-07 15:39:03 +00:00
diff all: add copyright notices to files that are missing them 2021-01-06 17:23:47 +00:00
fake internal/lsp: remove unused code 2022-03-17 13:53:41 +00:00
fuzzy internal/lsp/source: parse symbol queries when using fastfuzzy 2022-01-19 15:06:07 +00:00
helper internal/lsp/protocol: update LSP definitions and stubs 2021-10-05 16:44:45 +00:00
lsppos internal/lsp/source: compute imports text edits from scratch 2021-07-22 17:13:07 +00:00
lsprpc internal/lsp: update LSP stubs, including provisional InlayHints 2022-03-16 22:16:36 +00:00
mod internal/lsp: add hover for go.work use statements 2022-03-04 19:55:36 +00:00
progress internal/lsp: move the progress tracker to the session 2021-06-16 01:01:29 +00:00
protocol internal/lsp: update LSP stubs, including provisional InlayHints 2022-03-16 22:16:36 +00:00
regtest internal/lsp/cache: fixes for workspace invalidation 2022-02-04 14:02:15 +00:00
snippet internal/lsp/source/completion: add postfix snippet completions 2021-03-29 17:27:46 +00:00
source internal/lsp/source: descend into fields and field lists in qualifyExpr 2022-03-25 15:26:50 +00:00
template tools: fix some typos 2022-03-24 22:24:35 +00:00
testdata internal/lsp/source: descend into fields and field lists in qualifyExpr 2022-03-25 15:26:50 +00:00
tests internal/lsp: add support for formatting go.work files 2022-02-15 17:15:32 +00:00
work internal/lsp: remove unused code 2022-03-17 13:53:41 +00:00
README.md internal/lsp: add READMEs that describe tests, how to run tests 2020-12-03 17:03:53 +00:00
call_hierarchy.go
code_action.go internal/lsp: honor the file kind provided by clients for overlays 2022-01-13 20:54:45 +00:00
code_lens.go internal/lsp: honor the file kind provided by clients for overlays 2022-01-13 20:54:45 +00:00
command.go internal/lsp/command: add RunVulncheckExp 2022-03-24 19:25:58 +00:00
completion.go internal/lsp: add completion for use directives 2022-03-10 23:20:43 +00:00
completion_test.go internal/lsp/completion: move postfix completions behind option 2021-03-29 18:55:49 +00:00
debounce.go internal/lsp: adopt bcmills' suggestion for an improved debouncer API 2021-07-13 16:40:23 +00:00
debounce_test.go internal/lsp: adopt bcmills' suggestion for an improved debouncer API 2021-07-13 16:40:23 +00:00
definition.go internal/lsp: honor the file kind provided by clients for overlays 2022-01-13 20:54:45 +00:00
diagnostics.go internal/lsp: report diagnostics on go.work files 2022-03-04 18:29:58 +00:00
folding_range.go all: add copyright notices to files that are missing them 2021-01-06 17:23:47 +00:00
format.go internal/lsp: add support for formatting go.work files 2022-02-15 17:15:32 +00:00
general.go internal/lsp: use placeholders with prepare rename 2022-02-15 00:29:01 +00:00
highlight.go internal/lsp: honor the file kind provided by clients for overlays 2022-01-13 20:54:45 +00:00
hover.go internal/lsp: add hover for go.work use statements 2022-03-04 19:55:36 +00:00
implementation.go
link.go internal/lsp: honor the file kind provided by clients for overlays 2022-01-13 20:54:45 +00:00
lsp_test.go internal/lsp: use placeholders with prepare rename 2022-02-15 00:29:01 +00:00
references.go internal/lsp: honor the file kind provided by clients for overlays 2022-01-13 20:54:45 +00:00
rename.go internal/lsp: use placeholders with prepare rename 2022-02-15 00:29:01 +00:00
reset_golden.sh
semantic.go tools: fix some typos 2022-03-24 22:24:35 +00:00
server.go internal/lsp: add a setting to batch didChangeWatchedFile notifications 2021-07-08 19:55:54 +00:00
server_gen.go internal/lsp: update LSP stubs, including provisional InlayHints 2022-03-16 22:16:36 +00:00
signature_help.go internal/lsp: update to latest version of LSP protocol 2021-02-02 11:32:59 +00:00
symbols.go internal/lsp: honor the file kind provided by clients for overlays 2022-01-13 20:54:45 +00:00
text_synchronization.go internal/lsp: signal diagnostic completion if modification failed 2021-07-13 20:49:08 +00:00
workspace.go internal/lsp: remove unused code 2022-03-17 13:53:41 +00:00
workspace_symbol.go

README.md

lsp

internal/lsp provides much of the Language Server Protocol (lsp) implementation for gopls.

Documentation for users and contributors can be found in the gopls/doc directory.