internal/lsp/source: handle nil pointer in rename_check.go

Fixes golang/go#42170

Change-Id: Id5b9f5767e952b63482372e5275aa162bc9ab14a
Reviewed-on: https://go-review.googlesource.com/c/tools/+/264619
Trust: Rebecca Stambler <rstambler@golang.org>
Run-TryBot: Rebecca Stambler <rstambler@golang.org>
gopls-CI: kokoro <noreply+kokoro@google.com>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Robert Findley <rfindley@google.com>
diff --git a/internal/lsp/source/rename_check.go b/internal/lsp/source/rename_check.go
index 9cc3e5b..042331c 100644
--- a/internal/lsp/source/rename_check.go
+++ b/internal/lsp/source/rename_check.go
@@ -390,7 +390,11 @@
 	// go/types offers no easy way to get from a field (or interface
 	// method) to its declaring struct (or interface), so we must
 	// ascend the AST.
-	pkg, path, _ := pathEnclosingInterval(r.fset, r.packages[from.Pkg()], from.Pos(), from.Pos())
+	fromPkg, ok := r.packages[from.Pkg()]
+	if !ok {
+		return
+	}
+	pkg, path, _ := pathEnclosingInterval(r.fset, fromPkg, from.Pos(), from.Pos())
 	if pkg == nil || path == nil {
 		return
 	}