1
0
mirror of https://github.com/golang/go synced 2024-09-30 22:48:32 -06:00
go/internal/lsp
Rebecca Stambler 3bd20875a2 internal/lsp/cache: hide type errors if we fix up the AST
I was curious about why were logging errors during type-checking in
tests, and the answer turned out to be a bit more sinister than I
expected. We were getting type error messages without filepaths, so I
tried to reproduce it in the playground and wasn't able to. I realized
that these errors were coming from were coming from the "fixed" version
of the AST that we pass to the type checker.

Adding fake positions to our fake Cond statements trivially fixes the
logging issue, but it does nothing to handle the fact that the error
makes no sense to the user - because it applies to something that's not
in the source code. I figured we have two options: (1) skip type errors
for all packages with "fixed" ASTs, or (2) add something to the error
messages to indicate that the source code may not match. Starting with
(1) here, and if it becomes a problem, we can move to 2. All ASTs that
we fix have *ast.BadExpr in them, meaning that, by definition they have
parse errors which we will preferentially show those errors to users in
diagnostics (so I'm not sure how to test this).

Change-Id: I17733968aa15f989cdd3e4e7261c4f4fe9b97495
Reviewed-on: https://go-review.googlesource.com/c/tools/+/227557
Run-TryBot: Rebecca Stambler <rstambler@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Heschi Kreinick <heschi@google.com>
2020-04-10 04:07:51 +00:00
..
analysis internal/lsp: add type error fixes to existing diagnostics 2020-04-08 01:45:16 +00:00
browser internal/lsp: add version and bug commands 2019-05-11 04:16:02 +00:00
cache internal/lsp/cache: hide type errors if we fix up the AST 2020-04-10 04:07:51 +00:00
cmd internal/lsp: add type error fixes to existing diagnostics 2020-04-08 01:45:16 +00:00
debug internal/lsp: make tag iteration allocation-free 2020-04-08 13:20:38 +00:00
diff internal/lsp: fix errors found by staticcheck 2020-03-19 19:20:54 +00:00
fake internal/lsp/cache: add concurrency error check for go cmds 2020-04-08 03:22:09 +00:00
fuzzy internal/lsp: fix errors found by staticcheck 2020-03-19 19:20:54 +00:00
helper internal/lsp: change to helper.go to output a formatted file 2020-01-31 20:35:38 +00:00
lsprpc internal/jsonrpc2: dont add any handlers by default 2020-04-06 14:44:07 +00:00
mod internal/lsp: add type error fixes to existing diagnostics 2020-04-08 01:45:16 +00:00
protocol internal/lsp/protocol: make loggingStream log writes concurrency-safe 2020-04-09 19:31:31 +00:00
regtest internal/lsp/regtest: add test for issue 32149 (wrong package) 2020-04-09 21:04:53 +00:00
snippet all: fix broken links to LSP specification 2019-10-02 18:32:53 +00:00
source internal/lsp: add type error fixes to existing diagnostics 2020-04-08 01:45:16 +00:00
testdata internal/lsp: add type error fixes to existing diagnostics 2020-04-08 01:45:16 +00:00
tests internal/lsp: add type error fixes to existing diagnostics 2020-04-08 01:45:16 +00:00
code_action.go internal/lsp: add type error fixes to existing diagnostics 2020-04-08 01:45:16 +00:00
command.go internal/lsp/cache: add concurrency error check for go cmds 2020-04-08 03:22:09 +00:00
completion_test.go internal/span,lsp: disambiguate URIs, DocumentURIs, and paths 2020-02-14 22:51:03 +00:00
completion.go internal/lsp: avoid logging context cancellation 2020-03-31 01:46:33 +00:00
definition.go internal/lsp/source: return location(s) for imported packages 2020-03-09 16:25:02 +00:00
diagnostics.go internal/lsp: add type error fixes to existing diagnostics 2020-04-08 01:45:16 +00:00
folding_range.go internal/lsp: check for file URIs on LSP requests 2020-02-14 22:51:26 +00:00
format.go internal/lsp: support textDocument/formatting for .mod extension 2020-03-06 13:51:27 +00:00
general.go internal/lsp: handle non-file:// URIs gracefully 2020-04-02 20:53:07 +00:00
generate.go internal/lsp, go/packages: don't log context cancellation errors 2020-04-03 19:08:13 +00:00
highlight.go internal/lsp: move the telemetry package 2020-03-18 13:22:49 +00:00
hover.go internal/lsp: support textDocument/hover for .mod extension 2020-02-26 15:59:49 +00:00
implementation.go internal/lsp: check for file URIs on LSP requests 2020-02-14 22:51:26 +00:00
link.go internal/lsp: linkify IP addresses in textDocument/documentLink 2020-04-10 03:56:59 +00:00
lsp_test.go internal/lsp: add type error fixes to existing diagnostics 2020-04-08 01:45:16 +00:00
references.go internal/lsp: refactor references/rename/implementations 2020-03-27 17:09:18 +00:00
rename.go internal/lsp: check for file URIs on LSP requests 2020-02-14 22:51:26 +00:00
reset_golden.sh internal/lsp: fix regeneration of golden files 2019-09-25 13:16:59 +00:00
server_gen.go x/tools/gopls: add support for $/progress functionality 2020-03-16 21:25:24 +00:00
server.go internal/lsp: add type error fixes to existing diagnostics 2020-04-08 01:45:16 +00:00
signature_help.go internal/telemetry: delete the event.TagOf method 2020-03-18 13:23:15 +00:00
symbols.go internal/lsp: move the telemetry package 2020-03-18 13:22:49 +00:00
text_synchronization.go internal/lsp: fix view rebuilding when go mod init runs 2020-03-30 17:42:33 +00:00
workspace_symbol.go internal/lsp: migrate telemetry to using the event package 2020-03-12 03:59:16 +00:00
workspace.go internal/lsp: generate boilerplate stubs for type Server 2020-01-24 14:41:51 +00:00