From 521d6ed310dd2348b2d3c64b91c55df233c52860 Mon Sep 17 00:00:00 2001 From: Rebecca Stambler Date: Tue, 21 May 2019 14:14:29 -0400 Subject: [PATCH] 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 Reviewed-by: Ian Cottrell --- internal/lsp/cache/check.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/internal/lsp/cache/check.go b/internal/lsp/cache/check.go index a81f6902..67b92566 100644 --- a/internal/lsp/cache/check.go +++ b/internal/lsp/cache/check.go @@ -103,12 +103,17 @@ func (v *view) reparseImports(ctx context.Context, f *goFile, filename string) b 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 }