go/internal/lsp/cache
Heschi Kreinick 9ab2d800b2 internal/lsp/cache: handle go.mod conflicts in go list
The go command gets mad if go.mod has changed since it started, e.g.
because a new dependency was added by a concurrent go list call. Retry
loads if they hit a concurrency problem. See the comment for more
details.

Testing this is awkward. I ran a background script that constantly
modified the go.mod file and observed that gopls waited until it was
killed and then recovered.

Updates golang/go#36772.

Change-Id: I5636c99a5a94b415c4a6fbb71869b07e31d3fed0
Reviewed-on: https://go-review.googlesource.com/c/tools/+/216543
Run-TryBot: Heschi Kreinick <heschi@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Rebecca Stambler <rstambler@golang.org>
2020-01-27 22:30:56 +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/cache: fix GOPATH vendoring 2020-01-24 00:03:48 +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 internal/lsp: don't show list errors unless necessary 2020-01-27 19:59:09 +00:00
external.go internal/lsp: check that a file handle is unmodified before read 2020-01-23 20:52:07 +00:00
load.go internal/lsp/cache: handle go.mod conflicts in go list 2020-01-27 22:30:56 +00:00
mod_tidy.go internal/lsp: surface missing dependencies for imports not in go.mod 2020-01-27 22:30:17 +00:00
overlay.go internal/lsp: support multiple URIs in (*view).invalidateContent 2020-01-23 20:19:14 +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: push more build-specific logic into the view 2020-01-24 21:10:25 +00:00
session.go internal/lsp: push more build-specific logic into the view 2020-01-24 21:10:25 +00:00
snapshot.go internal/lsp: only reload orphaned files that belong to the workspace 2020-01-27 21:51:55 +00:00
view.go internal/lsp/cache: handle go.mod conflicts in go list 2020-01-27 22:30:56 +00:00