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
}