1
0
mirror of https://github.com/golang/go synced 2024-11-19 00:44:40 -07:00
go/internal
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
..
apidiff all: skip tests if required tools are not found 2019-08-30 15:40:57 +00:00
fastwalk internal/fastwalk: avoid slice bounds out of range for long file names 2018-11-12 23:16:31 +00:00
gopathwalk internal/imports: skip scanned module cache dirs 2019-08-29 21:03:13 +00:00
imports all: skip more memory-intensive tests on linux-arm 2019-08-30 17:05:41 +00:00
jsonrpc2 internal/lsp: use a background context for the background worker 2019-07-18 19:01:55 +00:00
lsp internal/lsp: use memoize store's context when type checking 2019-09-04 20:12:04 +00:00
memoize internal/lsp: stop making background contexts everywhere 2019-07-11 16:38:52 +00:00
module imports: stop using go/packages for modules 2019-01-22 20:29:12 +00:00
semver go/packages: add name= query 2018-10-16 20:20:09 +00:00
span internal/span: handle character values beyond end of line in FromUTF16Column 2019-07-06 07:08:13 +00:00
telemetry internal/lsp: add additional information when logging errors 2019-08-26 18:41:59 +00:00
testenv all: skip more memory-intensive tests on linux-arm 2019-08-30 17:05:41 +00:00
tool internal/tool: add a small package to unify the flag handling across all our tools 2018-12-17 23:08:00 +00:00
txtar imports: stop using go/packages for modules 2019-01-22 20:29:12 +00:00
xcontext internal/lsp: stop making background contexts everywhere 2019-07-11 16:38:52 +00:00