diff --git a/internal/lsp/cache/parse.go b/internal/lsp/cache/parse.go index fe7c4dd6..3f7f8688 100644 --- a/internal/lsp/cache/parse.go +++ b/internal/lsp/cache/parse.go @@ -232,7 +232,8 @@ func fix(ctx context.Context, file *ast.File, tok *token.File, src []byte) error } switch n := n.(type) { case *ast.BadStmt: - if err := parseDeferOrGoStmt(n, parent, tok, src); err != nil { + err = parseDeferOrGoStmt(n, parent, tok, src) // don't shadow err + if err != nil { err = fmt.Errorf("unable to parse defer or go from *ast.BadStmt: %v", err) } return false