internal/lsp: return error if there is no builtin package
When we stopped returning an error from awaitInitialized, we didn't
handle this case in LookupBuiltin.
Fixes golang/go#36975.
Change-Id: I9668a7148f60ca1f9cad953d46caf6ec5500541e
Reviewed-on: https://go-review.googlesource.com/c/tools/+/217399
Run-TryBot: Rebecca Stambler <rstambler@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Robert Findley <rfindley@google.com>
(cherry picked from commit 2de6fe5e3ec42efdf110c2da1a1d164023677380)
Reviewed-on: https://go-review.googlesource.com/c/tools/+/217638
Reviewed-by: Heschi Kreinick <heschi@google.com>
diff --git a/internal/lsp/cache/view.go b/internal/lsp/cache/view.go
index 8ab09cc..be9e59b 100644
--- a/internal/lsp/cache/view.go
+++ b/internal/lsp/cache/view.go
@@ -206,6 +206,9 @@
func (v *view) LookupBuiltin(ctx context.Context, name string) (*ast.Object, error) {
v.awaitInitialized(ctx)
+ if v.builtin == nil {
+ return nil, errors.Errorf("no builtin package for view %s", v.name)
+ }
data := v.builtin.handle.Get(ctx)
if ctx.Err() != nil {
return nil, ctx.Err()