internal/lsp: re-run go/packages.Load when the package name changes
Fixes golang/go#32149
Change-Id: Ic02af6fd4fb19aae0d38a4d51ec4462abdc4f446
Reviewed-on: https://go-review.googlesource.com/c/tools/+/178162
Run-TryBot: Rebecca Stambler <rstambler@golang.org>
Reviewed-by: Ian Cottrell <iancottrell@google.com>
diff --git a/internal/lsp/cache/check.go b/internal/lsp/cache/check.go
index a81f690..67b9256 100644
--- a/internal/lsp/cache/check.go
+++ b/internal/lsp/cache/check.go
@@ -103,12 +103,17 @@
if f.meta == nil {
return true
}
- // Get file content in case we don't already have it?
+ // Get file content in case we don't already have it.
f.read(ctx)
parsed, _ := parser.ParseFile(f.FileSet(), filename, f.content, parser.ImportsOnly)
if parsed == nil {
return true
}
+ // If the package name has changed, re-run `go list`.
+ if f.meta.name != parsed.Name.Name {
+ return true
+ }
+ // If the package's imports have changed, re-run `go list`.
if len(f.imports) != len(parsed.Imports) {
return true
}