1
0
mirror of https://github.com/golang/go synced 2024-11-19 04:14:45 -07:00
go/internal/lsp
Muir Manders 7dc6b39912 internal/lsp: use memoize store's context when type checking
The memoize store passes a detached context to the value getter
function. This is important since if the value getter experiences a
context cancellation it will end up caching context.Canceled, which
you never want. When type checking, we were ignoring the detached
context and using the "real" request context. This would cause the
context.Canceled error to get cached and continue popping up in
various situations.

Fix by swapping the importer's context to the detached context. It is
a little messy since the importer stores the context as a field. I
added a defer to restore the original context since it doesn't seem
correct to let the detached context escape the memoize function.

Updates golang/go#33678

Change-Id: I20dd466b0072ac2e856adbe993364f77e93ab054
Reviewed-on: https://go-review.googlesource.com/c/tools/+/192719
Reviewed-by: Rebecca Stambler <rstambler@golang.org>
Run-TryBot: Rebecca Stambler <rstambler@golang.org>
2019-09-04 20:12:04 +00:00
..
browser internal/lsp: add version and bug commands 2019-05-11 04:16:02 +00:00
cache internal/lsp: use memoize store's context when type checking 2019-09-04 20:12:04 +00:00
cmd all: skip more memory-intensive tests on linux-arm 2019-08-30 17:05:41 +00:00
debug internal/telemetry: add the ability to flush telemetry data 2019-08-21 16:29:56 +00:00
diff internal/lsp: add tests at the diff hook layer 2019-08-26 23:40:50 +00:00
fuzzy internal/lsp: add fuzzy completion matching 2019-08-14 16:13:50 +00:00
protocol x/tools/gopls: reimplement rpc logging at a lower level 2019-08-29 16:05:15 +00:00
snippet internal/lsp: introduce snippet builder object 2019-04-25 18:37:29 +00:00
source internal/lsp: return only multiline ranges when lineFoldingOnly 2019-09-03 16:36:17 +00:00
telemetry internal/telemetry: extract units to their own package 2019-08-15 21:28:32 +00:00
testdata internal/lsp: return only multiline ranges when lineFoldingOnly 2019-09-03 16:36:17 +00:00
tests internal/lsp/source: fixes completion for slice literals of pointers 2019-08-30 17:14:47 +00:00
code_action.go internal/lsp: initialize CodeActionProvider with supported actions 2019-08-28 21:14:09 +00:00
completion.go internal/lsp: enable deep completion and fuzzy matching by default 2019-08-30 16:47:54 +00:00
definition.go internal/lsp: use protocol.Ranges for source.Identifier 2019-08-29 05:14:58 +00:00
diagnostics.go internal/lsp: separate out getMapper function 2019-08-16 20:05:58 +00:00
folding_range.go internal/lsp: return only multiline ranges when lineFoldingOnly 2019-09-03 16:36:17 +00:00
format.go internal/lsp: use protocol.Range in completion items 2019-08-20 20:57:17 +00:00
general.go internal/lsp: return only multiline ranges when lineFoldingOnly 2019-09-03 16:36:17 +00:00
highlight.go internal/lsp: separate out getMapper function 2019-08-16 20:05:58 +00:00
hover.go internal/lsp: use protocol.Ranges for source.Identifier 2019-08-29 05:14:58 +00:00
link.go internal/lsp: separate out getMapper function 2019-08-16 20:05:58 +00:00
lsp_test.go internal/lsp: return only multiline ranges when lineFoldingOnly 2019-09-03 16:36:17 +00:00
references.go internal/lsp: use protocol.Ranges for source.Identifier 2019-08-29 05:14:58 +00:00
rename.go internal/lsp: add prepare rename support 2019-08-29 20:19:46 +00:00
reset_golden.sh internal/lsp: fix definition tests to use golden files 2019-05-10 21:06:55 +00:00
server.go internal/lsp: return only multiline ranges when lineFoldingOnly 2019-09-03 16:36:17 +00:00
signature_help.go internal/lsp: use protocol.Ranges for source.Identifier 2019-08-29 05:14:58 +00:00
symbols.go internal/lsp: separate out getMapper function 2019-08-16 20:05:58 +00:00
text_synchronization.go internal/lsp: separate out getMapper function 2019-08-16 20:05:58 +00:00
util.go internal/lsp: separate out getMapper function 2019-08-16 20:05:58 +00:00
watched_files.go internal/lsp: start handling watched file change events 2019-08-26 19:00:32 +00:00
workspace.go internal/lsp: use x/xerrors to create new errors 2019-08-06 19:46:56 +00:00