gopls/internal/lsp/cache: compute xrefs and methodsets asynchronously
No need to wait on xrefs or methodsets while performing
latency-sensitive operations on packages.
For golang/go#53992
Change-Id: I9ea65269a8c1e604fb99ed8b25e14db79f179576
Reviewed-on: https://go-review.googlesource.com/c/tools/+/503015
gopls-CI: kokoro <noreply+kokoro@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Run-TryBot: Robert Findley <rfindley@google.com>
Reviewed-by: Alan Donovan <adonovan@google.com>
diff --git a/gopls/internal/lsp/cache/snapshot.go b/gopls/internal/lsp/cache/snapshot.go
index bff3dc1..6ff14fb 100644
--- a/gopls/internal/lsp/cache/snapshot.go
+++ b/gopls/internal/lsp/cache/snapshot.go
@@ -688,7 +688,7 @@
return true
}
post := func(i int, pkg *Package) {
- indexes[i] = XrefIndex{m: pkg.ph.m, data: pkg.pkg.xrefs}
+ indexes[i] = XrefIndex{m: pkg.ph.m, data: pkg.pkg.xrefs()}
}
return indexes, s.forEachPackage(ctx, ids, pre, post)
}
@@ -719,7 +719,7 @@
return true
}
post := func(i int, pkg *Package) {
- indexes[i] = pkg.pkg.methodsets
+ indexes[i] = pkg.pkg.methodsets()
}
return indexes, s.forEachPackage(ctx, ids, pre, post)
}