1
0
mirror of https://github.com/golang/go synced 2024-10-01 07:38:32 -06:00
go/internal/lsp/cache
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
..
analysis.go internal/lsp: finish renaming CheckPackageHandle to PackageHandle 2020-01-14 23:56:10 +00:00
cache.go internal/lsp: remove the Context argument from NewSession 2020-01-21 23:07:03 +00:00
check.go internal/lsp: finish renaming CheckPackageHandle to PackageHandle 2020-01-14 23:56:10 +00:00
debug.go internal/lsp: don't clear file contents on save 2019-12-19 23:08:27 +00:00
error_test.go internal/lsp: refactor error handling code in type-checking 2019-10-21 18:57:46 +00:00
errors.go go/packages: handle an overlay edge case with test variants 2020-01-23 02:22:18 +00:00
external.go internal/lsp: stop requiring file kind when fetching a file 2020-01-09 21:19:36 +00:00
load.go internal/lsp: invalidate directories if we have no direct IDs 2020-01-17 20:35:50 +00:00
modfiles.go internal/lsp/cache: create infra for caching go.mod diagnostics 2020-01-21 19:43:28 +00:00
overlay.go internal/lsp: fix support for watching changed files 2020-01-13 19:19:55 +00:00
parse_mod.go internal/lsp/cache: create infra for caching go.mod diagnostics 2020-01-21 19:43:28 +00:00
parse.go internal/lsp: don't invalidate workspace when a mod file is opened 2020-01-10 21:20:43 +00:00
pkg.go internal/lsp: load metadata for a single package ID, when needed 2019-12-30 21:09:35 +00:00
session.go internal/lsp: eliminate getFileLocked function 2020-01-21 20:56:39 +00:00
snapshot.go internal/lsp: refactor (*snapshot).clone to handle multiple URIs 2020-01-23 01:31:03 +00:00
view.go internal/lsp: refactor (*snapshot).clone to handle multiple URIs 2020-01-23 01:31:03 +00:00