diff --git a/internal/fourslash/tests/quickInfoCatch_test.go b/internal/fourslash/tests/quickInfoCatch_test.go new file mode 100644 index 0000000000..b792bed473 --- /dev/null +++ b/internal/fourslash/tests/quickInfoCatch_test.go @@ -0,0 +1,18 @@ +package fourslash_test + +import ( + "testing" + + "github.com/microsoft/typescript-go/internal/fourslash" + "github.com/microsoft/typescript-go/internal/testutil" +) + +func TestQuickCatchInfo(t *testing.T) { + t.Parallel() + + defer testutil.RecoverAndFail(t, "Panic on fourslash test") + const content = `try {} catch(/*1*/error) {}` + + f := fourslash.NewFourslash(t, nil /*capabilities*/, content) + f.VerifyQuickInfoAt(t, "1", "var error: any", "") +} diff --git a/internal/ls/hover.go b/internal/ls/hover.go index 548228d0a9..a608fdf024 100644 --- a/internal/ls/hover.go +++ b/internal/ls/hover.go @@ -355,7 +355,7 @@ func getJSDocOrTag(node *ast.Node) *ast.Node { return getMatchingJSDocTag(node.Parent, node.Name().Text(), isMatchingParameterTag) case ast.IsTypeParameterDeclaration(node): return getMatchingJSDocTag(node.Parent, node.Name().Text(), isMatchingTemplateTag) - case ast.IsVariableDeclaration(node) && core.FirstOrNil(node.Parent.AsVariableDeclarationList().Declarations.Nodes) == node: + case ast.IsVariableDeclaration(node) && ast.IsVariableDeclarationList(node.Parent) && core.FirstOrNil(node.Parent.AsVariableDeclarationList().Declarations.Nodes) == node: return getJSDocOrTag(node.Parent.Parent) case (ast.IsFunctionExpressionOrArrowFunction(node) || ast.IsClassExpression(node)) && (ast.IsVariableDeclaration(node.Parent) || ast.IsPropertyDeclaration(node.Parent) || ast.IsPropertyAssignment(node.Parent)) && node.Parent.Initializer() == node: