Skip to content

Commit 0a2ea49

Browse files
authored
Fix nil panic on heritage clause in grammar checks (#1173)
1 parent 429d093 commit 0a2ea49

File tree

5 files changed

+52
-0
lines changed

5 files changed

+52
-0
lines changed

internal/checker/grammarchecks.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -931,6 +931,9 @@ func (c *Checker) checkGrammarClassDeclarationHeritageClauses(node *ast.ClassLik
931931
}
932932

933933
for _, j := range node.JSDoc(file) {
934+
if j.AsJSDoc().Tags == nil {
935+
continue
936+
}
934937
for _, tag := range j.AsJSDoc().Tags.Nodes {
935938
if tag.Kind == ast.KindJSDocAugmentsTag {
936939
target := typeNodes[0].AsExpressionWithTypeArguments()
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
//// [tests/cases/conformance/jsdoc/jsdocClassNoTags.ts] ////
2+
3+
//// [jsdocClassNoTags.ts]
4+
class B {
5+
}
6+
/** this is a test */
7+
class C extends B {
8+
}
9+
10+
11+
12+
//// [jsdocClassNoTags.js]
13+
class B {
14+
}
15+
/** this is a test */
16+
class C extends B {
17+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
//// [tests/cases/conformance/jsdoc/jsdocClassNoTags.ts] ////
2+
3+
=== jsdocClassNoTags.ts ===
4+
class B {
5+
>B : Symbol(B, Decl(jsdocClassNoTags.ts, 0, 0))
6+
}
7+
/** this is a test */
8+
class C extends B {
9+
>C : Symbol(C, Decl(jsdocClassNoTags.ts, 1, 1))
10+
>B : Symbol(B, Decl(jsdocClassNoTags.ts, 0, 0))
11+
}
12+
13+
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
//// [tests/cases/conformance/jsdoc/jsdocClassNoTags.ts] ////
2+
3+
=== jsdocClassNoTags.ts ===
4+
class B {
5+
>B : B
6+
}
7+
/** this is a test */
8+
class C extends B {
9+
>C : C
10+
>B : B
11+
}
12+
13+
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
class B {
2+
}
3+
/** this is a test */
4+
class C extends B {
5+
}
6+

0 commit comments

Comments
 (0)