gopls/internal/lsp/cache: use distinct types for mod and work parse keys
Change-Id: Ic75b5dddb266e601c3f5e496a48a7389da4a1330
Reviewed-on: https://go-review.googlesource.com/c/tools/+/460857
Run-TryBot: Robert Findley <rfindley@google.com>
Reviewed-by: Alan Donovan <adonovan@google.com>
gopls-CI: kokoro <noreply+kokoro@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
diff --git a/gopls/internal/lsp/cache/mod.go b/gopls/internal/lsp/cache/mod.go
index a3d207d..5566539 100644
--- a/gopls/internal/lsp/cache/mod.go
+++ b/gopls/internal/lsp/cache/mod.go
@@ -32,6 +32,7 @@
entry, hit := s.parseModHandles.Get(uri)
s.mu.Unlock()
+ type parseModKey source.FileIdentity
type parseModResult struct {
parsed *source.ParsedModule
err error
@@ -39,7 +40,7 @@
// cache miss?
if !hit {
- promise, release := s.store.Promise(fh.FileIdentity(), func(ctx context.Context, _ interface{}) interface{} {
+ promise, release := s.store.Promise(parseModKey(fh.FileIdentity()), func(ctx context.Context, _ interface{}) interface{} {
parsed, err := parseModImpl(ctx, fh)
return parseModResult{parsed, err}
})
@@ -109,6 +110,7 @@
entry, hit := s.parseWorkHandles.Get(uri)
s.mu.Unlock()
+ type parseWorkKey source.FileIdentity
type parseWorkResult struct {
parsed *source.ParsedWorkFile
err error
@@ -116,7 +118,7 @@
// cache miss?
if !hit {
- handle, release := s.store.Promise(fh.FileIdentity(), func(ctx context.Context, _ interface{}) interface{} {
+ handle, release := s.store.Promise(parseWorkKey(fh.FileIdentity()), func(ctx context.Context, _ interface{}) interface{} {
parsed, err := parseWorkImpl(ctx, fh)
return parseWorkResult{parsed, err}
})