From c8cfbd0f21e6146422c1927945569c9c855a56bc Mon Sep 17 00:00:00 2001 From: Rebecca Stambler Date: Fri, 23 Oct 2020 12:54:53 -0400 Subject: [PATCH] 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 Run-TryBot: Rebecca Stambler gopls-CI: kokoro TryBot-Result: Go Bot Reviewed-by: Robert Findley --- internal/lsp/source/rename_check.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/internal/lsp/source/rename_check.go b/internal/lsp/source/rename_check.go index 9cc3e5ba54..042331cc7c 100644 --- a/internal/lsp/source/rename_check.go +++ b/internal/lsp/source/rename_check.go @@ -390,7 +390,11 @@ func (r *renamer) checkStructField(from *types.Var) { // 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 }