go/internal/lsp
Rebecca Stambler 593de60622 go/packages: handle an overlay edge case with test variants
As usual, in debugging the creation of a new file with gopls, I've
encountered a go/packages overlay bug. The issue is:

A file b/b.go with package name "b" exists on disk. A package
b/b_test.go with no content exists on disk. There is an overlay for
b/b_test.go that contains the package name "b". Running packages.Load
for file=b/b_test.go will result in a failure to load package b
[b.test]. This change adds this test to the go/packages tests.

This case is fixed by restricting the fallback logic in
runContainsQueries. We only attempt to construct an ad-hoc package if
the original package was returned with no GoFiles.

Also, a minor change to the gopls error parsing code that fixes a case
in which diagnostics were being sent without corresponding files.

Updates golang/go#36635.

Change-Id: I38680a2cc65ae9c3252294db6b942d031189faf5
Reviewed-on: https://go-review.googlesource.com/c/tools/+/215743
Run-TryBot: Rebecca Stambler <rstambler@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Heschi Kreinick <heschi@google.com>
Reviewed-by: Michael Matloob <matloob@golang.org>
2020-01-23 02:22:18 +00:00
..
browser
cache go/packages: handle an overlay edge case with test variants 2020-01-23 02:22:18 +00:00
cmd internal/lsp: add tests for references includeDeclaration setting 2020-01-23 01:39:50 +00:00
debug internal/lsp: add server instance to debug info 2020-01-15 14:58:21 +00:00
diff internal/lsp: fix unified diffs of edits at the end of a file 2019-10-11 16:38:14 +00:00
fuzzy internal/lsp: make golint happy 2019-12-23 18:17:04 +00:00
mod internal/lsp: remove the Context argument from NewSession 2020-01-21 23:07:03 +00:00
protocol internal/lsp/protocol: handle cancellation delivery 2020-01-21 21:04:57 +00:00
snippet all: fix broken links to LSP specification 2019-10-02 18:32:53 +00:00
source internal/lsp: add tests for references includeDeclaration setting 2020-01-23 01:39:50 +00:00
telemetry internal/lsp: load metadata for a single package ID, when needed 2019-12-30 21:09:35 +00:00
testdata internal/lsp/source: support dereferencing for completion 2020-01-22 21:43:17 +00:00
tests internal/lsp: show dependency quick fixes for go.mod diagnostics 2020-01-15 16:51:05 +00:00
code_action.go internal/lsp: show dependency quick fixes for go.mod diagnostics 2020-01-15 16:51:05 +00:00
command.go internal/lsp: remove view.FindPosInPackage and view.FindMapperInPackage 2020-01-13 18:51:11 +00:00
completion.go internal/lsp: consolidate completion sorting 2020-01-17 20:30:43 +00:00
completion_test.go internal/lsp/source: enable unimported completions by default 2020-01-17 22:05:05 +00:00
definition.go internal/lsp: finish renaming CheckPackageHandle to PackageHandle 2020-01-14 23:56:10 +00:00
diagnostics.go internal/lsp: add recency check to avoid sending old diagnostics 2020-01-17 20:46:10 +00:00
folding_range.go internal/lsp: remove view.FindPosInPackage and view.FindMapperInPackage 2020-01-13 18:51:11 +00:00
format.go internal/lsp: remove view.FindPosInPackage and view.FindMapperInPackage 2020-01-13 18:51:11 +00:00
general.go internal/lsp: diagnose the snapshot on every text synchronization event 2020-01-15 23:07:48 +00:00
highlight.go internal/lsp: remove view.FindPosInPackage and view.FindMapperInPackage 2020-01-13 18:51:11 +00:00
hover.go internal/lsp: finish renaming CheckPackageHandle to PackageHandle 2020-01-14 23:56:10 +00:00
implementation.go internal/lsp: remove view.FindPosInPackage and view.FindMapperInPackage 2020-01-13 18:51:11 +00:00
link.go internal/lsp: remove view.FindPosInPackage and view.FindMapperInPackage 2020-01-13 18:51:11 +00:00
lsp_test.go internal/lsp: add tests for references includeDeclaration setting 2020-01-23 01:39:50 +00:00
references.go internal/lsp: refactor find-references and rename 2020-01-16 06:24:15 +00:00
rename.go internal/lsp: refactor find-references and rename 2020-01-16 06:24:15 +00:00
reset_golden.sh
server.go internal/lsp: remove the Context argument from NewSession 2020-01-21 23:07:03 +00:00
signature_help.go internal/lsp: remove view.FindPosInPackage and view.FindMapperInPackage 2020-01-13 18:51:11 +00:00
symbols.go internal/lsp: remove view.FindPosInPackage and view.FindMapperInPackage 2020-01-13 18:51:11 +00:00
text_synchronization.go internal/lsp: diagnose the snapshot on every text synchronization event 2020-01-15 23:07:48 +00:00
workspace.go internal/lsp: diagnose the snapshot on every text synchronization event 2020-01-15 23:07:48 +00:00