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
}
}