From 5bd8423ece4014b03bc6b67b06a85dc41edebdcf Mon Sep 17 00:00:00 2001 From: Heschi Kreinick Date: Wed, 6 Jan 2021 17:07:39 -0500 Subject: [PATCH] internal/lsp/cache: fix panic in GOPATH mode We can't assume that we're in module mode when we rebuild the imports cache. (This is a long standing bug, but I suspect it was made more common by my recent CL that refactored this code.) Fixes golang/go#43544. Change-Id: Ie35c43e6b6e496bd2fbf49cf9bf06c28cf1dab80 Reviewed-on: https://go-review.googlesource.com/c/tools/+/282113 Trust: Heschi Kreinick Run-TryBot: Heschi Kreinick Reviewed-by: Rebecca Stambler gopls-CI: kokoro TryBot-Result: Go Bot --- internal/lsp/cache/imports.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/internal/lsp/cache/imports.go b/internal/lsp/cache/imports.go index 7896d1114c..ed9919f9af 100644 --- a/internal/lsp/cache/imports.go +++ b/internal/lsp/cache/imports.go @@ -78,7 +78,9 @@ func (s *importsState) runProcessEnvFunc(ctx context.Context, snapshot *snapshot // unnecessary work and potentially mess up the go.mod file. if s.cleanupProcessEnv != nil { if resolver, err := s.processEnv.GetResolver(); err == nil { - resolver.(*imports.ModuleResolver).ClearForNewMod() + if modResolver, ok := resolver.(*imports.ModuleResolver); ok { + modResolver.ClearForNewMod() + } } s.cleanupProcessEnv() }