internal/lsp: create the undelivered map
(for real, this time)
Change-Id: I563b7b34a1849914e9b922b07a86916bac7be30d
Reviewed-on: https://go-review.googlesource.com/c/tools/+/170183
Reviewed-by: Ian Cottrell <iancottrell@google.com>
diff --git a/internal/lsp/diagnostics.go b/internal/lsp/diagnostics.go
index 7ec6b96..0602bbd 100644
--- a/internal/lsp/diagnostics.go
+++ b/internal/lsp/diagnostics.go
@@ -32,6 +32,9 @@
for uri, diagnostics := range reports {
if err := s.publishDiagnostics(ctx, uri, diagnostics); err != nil {
+ if s.undelivered == nil {
+ s.undelivered = make(map[span.URI][]source.Diagnostic)
+ }
s.undelivered[uri] = diagnostics
continue
}
diff --git a/internal/lsp/lsp_test.go b/internal/lsp/lsp_test.go
index a21b86c..26da588 100644
--- a/internal/lsp/lsp_test.go
+++ b/internal/lsp/lsp_test.go
@@ -74,7 +74,8 @@
log := xlog.New(xlog.StdSink{})
s := &Server{
- view: cache.NewView(ctx, log, "lsp_test", span.FileURI(cfg.Dir), &cfg),
+ view: cache.NewView(ctx, log, "lsp_test", span.FileURI(cfg.Dir), &cfg),
+ undelivered: make(map[span.URI][]source.Diagnostic),
}
// Do a first pass to collect special markers for completion.
if err := exported.Expect(map[string]interface{}{