Skip to content

Commit ce4c4b6

Browse files
a-tarasyukDanielRosenwasser
authored andcommitted
fix(36023): fix crash in document highlight service (#36233)
1 parent 96e8fbc commit ce4c4b6

File tree

3 files changed

+27
-2
lines changed

3 files changed

+27
-2
lines changed

src/services/documentHighlights.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,8 +66,12 @@ namespace ts {
6666
case SyntaxKind.SwitchKeyword:
6767
return useParent(node.parent, isSwitchStatement, getSwitchCaseDefaultOccurrences);
6868
case SyntaxKind.CaseKeyword:
69-
case SyntaxKind.DefaultKeyword:
70-
return useParent(node.parent.parent.parent, isSwitchStatement, getSwitchCaseDefaultOccurrences);
69+
case SyntaxKind.DefaultKeyword: {
70+
if (isDefaultClause(node.parent) || isCaseClause(node.parent)) {
71+
return useParent(node.parent.parent.parent, isSwitchStatement, getSwitchCaseDefaultOccurrences);
72+
}
73+
return undefined;
74+
}
7175
case SyntaxKind.BreakKeyword:
7276
case SyntaxKind.ContinueKeyword:
7377
return useParent(node.parent, isBreakOrContinueStatement, getBreakOrContinueStatementOccurrences);
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
/// <reference path='fourslash.ts'/>
2+
3+
////[|case|]
4+
////[|default|]
5+
6+
const [defaultKeywordRange, caseKeywordRange] = test.ranges();
7+
verify.noDocumentHighlights(defaultKeywordRange);
8+
verify.noDocumentHighlights(caseKeywordRange);
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
/// <reference path='fourslash.ts'/>
2+
3+
////const foo = 'foo';
4+
////[|switch|] (foo) {
5+
//// [|case|] 'foo':
6+
//// [|break|];
7+
//// [|default|]:
8+
//// [|break|];
9+
////}
10+
11+
const [r0, r1, r2, r3, r4] = test.ranges();
12+
verify.documentHighlightsOf(r1, [r0, r1, r2, r3, r4]);
13+
verify.documentHighlightsOf(r4, [r0, r1, r2, r3, r4]);

0 commit comments

Comments
 (0)