internal/lsp: add additional check for analysis value Updates golang/go#35339 Change-Id: Ie990672b619d1844f66abf62010fe9a69daf00d9 Reviewed-on: https://go-review.googlesource.com/c/tools/+/205161 Run-TryBot: Rebecca Stambler <rstambler@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Cottrell <iancottrell@google.com>
diff --git a/internal/lsp/cache/analysis.go b/internal/lsp/cache/analysis.go index 84f1815..2adc23f 100644 --- a/internal/lsp/cache/analysis.go +++ b/internal/lsp/cache/analysis.go
@@ -131,8 +131,7 @@ err: err, } } - data := runAnalysis(ctx, fset, a, pkg, results) - return data + return runAnalysis(ctx, fset, a, pkg, results) }) ah.handle = h @@ -145,7 +144,10 @@ if v == nil { return nil, nil, errors.Errorf("no analyses for %s", act.pkg.ID()) } - data := v.(*actionData) + data, ok := v.(*actionData) + if !ok { + return nil, nil, errors.Errorf("unexpected type for %s:%s", act.pkg.ID(), act.analyzer.Name) + } return data.diagnostics, data.result, data.err } @@ -154,7 +156,10 @@ if v == nil { return nil, nil, errors.Errorf("no analyses for %s", act.pkg.ID()) } - data := v.(*actionData) + data, ok := v.(*actionData) + if !ok { + return nil, nil, errors.Errorf("unexpected type for %s:%s", act.pkg.ID(), act.analyzer.Name) + } return data.diagnostics, data.result, data.err }