go/gopls/internal/regtest/misc
Robert Findley ccb10502d1 internal/lsp/cache: invalidate metadata when parsing issues resolve
Package loading (at least via go list) fails when the import header
doesn't parse, so we need to invalidate metadata upon a state change
from non parsing->parsing. Refactor metadata invalidation to implement
this feature, add additional documentation, and avoid unnecessary work.

This change revealed a latent bug (via TestDeleteDirectory): when
statting a deleted directory failed, we could fail to invalidate any
package IDs, even those we already knew about. This bug was masked by
the somewhat complicated semantics of pkgNameChanged. The semantics of
pkgNameChanged are simplified to encapsulate any change to a
package->file association.

Also refactor the parsing API somewhat, and add a bug report if we don't
get a ParseGoFile while inspecting for metadata changes.

Update most regtests to panic upon receiving bug reports.

Fixes golang/go#52981

Change-Id: I1838963ecc9c01e316f887aa9d8f1260662281ab
Reviewed-on: https://go-review.googlesource.com/c/tools/+/407501
Reviewed-by: Alan Donovan <adonovan@google.com>
gopls-CI: kokoro <noreply+kokoro@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Run-TryBot: Robert Findley <rfindley@google.com>
2022-05-23 18:14:40 +00:00
..
call_hierarchy_test.go internal/lsp/source: check for nil objects in call hierarchy 2021-10-27 16:11:50 +00:00
configuration_test.go gopls: upgrade staticcheck to v0.3.0 2022-04-07 14:59:24 +00:00
debugserver_test.go internal/lsp/debug: add a facility to track known bugs 2021-05-10 23:21:19 +00:00
definition_test.go internal/lsp: check for invalid URIs in definition 2021-10-29 19:33:54 +00:00
embed_test.go internal/lsp/cache: parse files with ParseFull mode to check if metadata reload is required 2021-08-06 19:38:52 +00:00
failures_test.go internal/lsp: move gopls/internal/regtest -> internal/lsp/regtest 2021-04-23 16:19:37 +00:00
fix_test.go internal/lsp/analysis/fillreturns: update fillreturns for new type errs 2021-12-03 18:55:02 +00:00
formatting_test.go gopls: wire in LangVersion and ModulePath for gofumpt formatting 2022-02-24 18:08:50 +00:00
generate_test.go gopls/internal/regtest/misc: temporarily skip TestGenerateProgress 2021-12-01 18:47:44 +00:00
highlight_test.go internal/lsp: move gopls/internal/regtest -> internal/lsp/regtest 2021-04-23 16:19:37 +00:00
hover_test.go internal/lsp: render package documentation when hovering over a package import 2022-04-25 17:29:41 +00:00
import_test.go internal/lsp: add ListImports 2022-02-04 22:09:29 +00:00
imports_test.go internal/lsp: move gopls/internal/regtest -> internal/lsp/regtest 2021-04-23 16:19:37 +00:00
link_test.go internal/lsp: only linkify urls with http, https, and ftp schemes 2022-05-02 22:00:12 +00:00
misc_test.go internal/lsp/cache: invalidate metadata when parsing issues resolve 2022-05-23 18:14:40 +00:00
multiple_adhoc_test.go internal/lsp: allow for multiple ad-hoc packages in the workspace 2021-08-12 18:45:58 +00:00
references_test.go internal/lsp: fix panic in find references on Error 2021-09-15 17:19:52 +00:00
rename_test.go internal/lsp/source: recursively search for qualified objects 2021-08-17 02:54:26 +00:00
semantictokens_test.go internal/lsp: get file URI from beginFileRequest in SemanticTokens 2021-05-12 22:01:29 +00:00
settings_test.go internal/lsp/source: handle empty strings in directoryFilters 2022-03-24 21:16:24 +00:00
shared_test.go internal/lsp/regtest: fix a panic TestResolveImportCycle 2021-07-09 17:21:04 +00:00
staticcheck_test.go gopls/internal/regtest: add a test for using staticcheck with generics 2022-05-11 20:19:40 +00:00
vendor_test.go internal/lsp: run go mod vendor exclusively to avoid file contention 2022-04-11 22:06:59 +00:00
vuln_test.go internal/lsp: handle invalid URL args in command params 2022-03-25 15:45:26 +00:00
workspace_symbol_test.go internal/lsp/source: parse symbol queries when using fastfuzzy 2022-01-19 15:06:07 +00:00