Skip to content

Commit 3f27a79

Browse files
committed
Fix instanceof used in ternary expresison.
Fixes #602
1 parent 929ee61 commit 3f27a79

File tree

5 files changed

+60
-3
lines changed

5 files changed

+60
-3
lines changed

TypeScript.YAML-tmLanguage

+1-1
Original file line numberDiff line numberDiff line change
@@ -1190,7 +1190,7 @@ repository:
11901190
begin: '{{startOfIdentifier}}(instanceof){{endOfIdentifier}}'
11911191
beginCaptures:
11921192
'1': { name: keyword.operator.expression.instanceof.ts }
1193-
end: (?<=\))|(?=[;),}\]:]|\|\||\&\&|$|({{startOfIdentifier}}function((\s+{{identifier}})|(\s*[\(]))))
1193+
end: (?<=\))|(?=[;),}\]:?]|\|\||\&\&|$|({{startOfIdentifier}}function((\s+{{identifier}})|(\s*[\(]))))
11941194
patterns:
11951195
- include: '#type'
11961196

TypeScript.tmLanguage

+1-1
Original file line numberDiff line numberDiff line change
@@ -3738,7 +3738,7 @@
37383738
</dict>
37393739
</dict>
37403740
<key>end</key>
3741-
<string>(?&lt;=\))|(?=[;),}\]:]|\|\||\&amp;\&amp;|$|((?&lt;![_$[:alnum:]])(?:(?&lt;=\.\.\.)|(?&lt;!\.))function((\s+[_$[:alpha:]][_$[:alnum:]]*)|(\s*[\(]))))</string>
3741+
<string>(?&lt;=\))|(?=[;),}\]:?]|\|\||\&amp;\&amp;|$|((?&lt;![_$[:alnum:]])(?:(?&lt;=\.\.\.)|(?&lt;!\.))function((\s+[_$[:alpha:]][_$[:alnum:]]*)|(\s*[\(]))))</string>
37423742
<key>patterns</key>
37433743
<array>
37443744
<dict>

TypeScriptReact.tmLanguage

+1-1
Original file line numberDiff line numberDiff line change
@@ -3742,7 +3742,7 @@
37423742
</dict>
37433743
</dict>
37443744
<key>end</key>
3745-
<string>(?&lt;=\))|(?=[;),}\]:]|\|\||\&amp;\&amp;|$|((?&lt;![_$[:alnum:]])(?:(?&lt;=\.\.\.)|(?&lt;!\.))function((\s+[_$[:alpha:]][_$[:alnum:]]*)|(\s*[\(]))))</string>
3745+
<string>(?&lt;=\))|(?=[;),}\]:?]|\|\||\&amp;\&amp;|$|((?&lt;![_$[:alnum:]])(?:(?&lt;=\.\.\.)|(?&lt;!\.))function((\s+[_$[:alpha:]][_$[:alnum:]]*)|(\s*[\(]))))</string>
37463746
<key>patterns</key>
37473747
<array>
37483748
<dict>

tests/baselines/Issue602.baseline.txt

+56
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
original file
2+
-----------------------------------
3+
let result = foo instanceof Foo ? foo.bar() : null;
4+
-----------------------------------
5+
6+
Grammar: TypeScript.tmLanguage
7+
-----------------------------------
8+
>let result = foo instanceof Foo ? foo.bar() : null;
9+
^^^
10+
source.ts meta.var.expr.ts storage.type.ts
11+
^
12+
source.ts meta.var.expr.ts
13+
^^^^^^
14+
source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts
15+
^
16+
source.ts meta.var.expr.ts meta.var-single-variable.expr.ts
17+
^
18+
source.ts meta.var.expr.ts keyword.operator.assignment.ts
19+
^
20+
source.ts meta.var.expr.ts
21+
^^^
22+
source.ts meta.var.expr.ts variable.other.readwrite.ts
23+
^
24+
source.ts meta.var.expr.ts
25+
^^^^^^^^^^
26+
source.ts meta.var.expr.ts keyword.operator.expression.instanceof.ts
27+
^
28+
source.ts meta.var.expr.ts
29+
^^^
30+
source.ts meta.var.expr.ts entity.name.type.ts
31+
^
32+
source.ts meta.var.expr.ts
33+
^
34+
source.ts meta.var.expr.ts keyword.operator.ternary.ts
35+
^
36+
source.ts meta.var.expr.ts
37+
^^^
38+
source.ts meta.var.expr.ts meta.function-call.ts variable.other.object.ts
39+
^
40+
source.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts
41+
^^^
42+
source.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts
43+
^
44+
source.ts meta.var.expr.ts meta.brace.round.ts
45+
^
46+
source.ts meta.var.expr.ts meta.brace.round.ts
47+
^
48+
source.ts meta.var.expr.ts
49+
^
50+
source.ts meta.var.expr.ts keyword.operator.ternary.ts
51+
^
52+
source.ts meta.var.expr.ts
53+
^^^^
54+
source.ts meta.var.expr.ts constant.language.null.ts
55+
^
56+
source.ts punctuation.terminator.statement.ts

tests/cases/Issue602.ts

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
let result = foo instanceof Foo ? foo.bar() : null;

0 commit comments

Comments
 (0)