internal/lsp/source: fix nil pointer in rename_check

Updates golang/vscode-go#534

Change-Id: I0a30ac7f52862a096b07c35665539cfed99d4828
Reviewed-on: https://go-review.googlesource.com/c/tools/+/248797
Run-TryBot: Rebecca Stambler <rstambler@golang.org>
TryBot-Result: Gobot Gobot <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 8823951..2b2088b 100644
--- a/internal/lsp/source/rename_check.go
+++ b/internal/lsp/source/rename_check.go
@@ -120,10 +120,12 @@
 		fileScope := pkg.GetTypesInfo().Scopes[f]
 		b, prev := fileScope.LookupParent(r.to, token.NoPos)
 		if b == fileScope {
-			r.errorf(from.Pos(), "renaming this %s %q to %q would conflict",
-				objectKind(from), from.Name(), r.to)
-			r.errorf(prev.Pos(), "\twith this %s",
-				objectKind(prev))
+			r.errorf(from.Pos(), "renaming this %s %q to %q would conflict", objectKind(from), from.Name(), r.to)
+			var prevPos token.Pos
+			if prev != nil {
+				prevPos = prev.Pos()
+			}
+			r.errorf(prevPos, "\twith this %s", objectKind(prev))
 			return // since checkInPackageBlock would report redundant errors
 		}
 	}