internal/lsp: fix nil pointer in renaming to "error"

Fixes golang/go#37963

Change-Id: I0a46cbcbd250729761b9a8323b942202bb1dbd75
Reviewed-on: https://go-review.googlesource.com/c/tools/+/224477
Run-TryBot: Rebecca Stambler <rstambler@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Rohan Challa <rohan@golang.org>
diff --git a/internal/lsp/source/rename_check.go b/internal/lsp/source/rename_check.go
index d08b29f..44cc555 100644
--- a/internal/lsp/source/rename_check.go
+++ b/internal/lsp/source/rename_check.go
@@ -258,7 +258,10 @@
 		// so ignore pos in that case.
 		// No analogous clause is needed for file-level objects
 		// since no reference can appear before an import decl.
-		if obj != nil && (b == obj.Pkg().Scope() || obj.Pos() < pos) {
+		if obj == nil || obj.Pkg() == nil {
+			continue
+		}
+		if b == obj.Pkg().Scope() || obj.Pos() < pos {
 			return b, obj
 		}
 	}
diff --git a/internal/lsp/testdata/lsp/primarymod/rename/b/b.go b/internal/lsp/testdata/lsp/primarymod/rename/b/b.go
index c6f7f31..2fd4c7d 100644
--- a/internal/lsp/testdata/lsp/primarymod/rename/b/b.go
+++ b/internal/lsp/testdata/lsp/primarymod/rename/b/b.go
@@ -1,3 +1,9 @@
 package b
 
 var c int //@rename("int", "uint")
+
+func _() {
+	a := 1 //@rename("a", "error")
+	a = 2
+	_ = a
+}
diff --git a/internal/lsp/testdata/lsp/primarymod/rename/b/b.go.golden b/internal/lsp/testdata/lsp/primarymod/rename/b/b.go.golden
index 5fd037a..a402a58 100644
--- a/internal/lsp/testdata/lsp/primarymod/rename/b/b.go.golden
+++ b/internal/lsp/testdata/lsp/primarymod/rename/b/b.go.golden
@@ -1,2 +1,13 @@
+-- error-rename --
+package b
+
+var c int //@rename("int", "uint")
+
+func _() {
+	error := 1 //@rename("a", "error")
+	error = 2
+	_ = error
+}
+
 -- uint-rename --
 cannot rename builtin "int"
diff --git a/internal/lsp/testdata/lsp/summary.txt.golden b/internal/lsp/testdata/lsp/summary.txt.golden
index b7bdc3b..09247fa 100644
--- a/internal/lsp/testdata/lsp/summary.txt.golden
+++ b/internal/lsp/testdata/lsp/summary.txt.golden
@@ -16,7 +16,7 @@
 TypeDefinitionsCount = 2
 HighlightsCount = 52
 ReferencesCount = 9
-RenamesCount = 23
+RenamesCount = 24
 PrepareRenamesCount = 7
 SymbolsCount = 3
 WorkspaceSymbolsCount = 2