Skip to content

Commit cf95b1e

Browse files
committed
Fixes the cast expression matching
Fixes #496
1 parent f0fc7a0 commit cf95b1e

File tree

4 files changed

+96
-2
lines changed

4 files changed

+96
-2
lines changed

TypeScript.YAML-tmLanguage

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1554,7 +1554,7 @@ repository:
15541554
# If '<' is preceeded by 'return', 'throw', 'yield', or 'await', it's most likely a type assertion
15551555
# If '=', '(', ',', ':', or '>' are followed by a '<', it is also likely a type assertion as otherwise it would be a syntax error
15561556
# '<=' and '<<=' are cannot be type assertions, as they are assignment operators.
1557-
begin: (?:(?<=return|throw|yield|await|default|[=(,:>*?]))\s*(<)(?!<?\=)
1557+
begin: (?:(?<=return|throw|yield|await|default|[=(,:>+*?]))\s*(<)(?!<?\=)
15581558
beginCaptures:
15591559
'1': { name: meta.brace.angle.ts }
15601560
end: (\>)\s*

TypeScript.tmLanguage

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4255,7 +4255,7 @@
42554255
<key>name</key>
42564256
<string>cast.expr.ts</string>
42574257
<key>begin</key>
4258-
<string>(?:(?&lt;=return|throw|yield|await|default|[=(,:&gt;*?]))\s*(&lt;)(?!&lt;?\=)</string>
4258+
<string>(?:(?&lt;=return|throw|yield|await|default|[=(,:&gt;+*?]))\s*(&lt;)(?!&lt;?\=)</string>
42594259
<key>beginCaptures</key>
42604260
<dict>
42614261
<key>1</key>

tests/baselines/Issue496.baseline.txt

Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
original file
2+
-----------------------------------
3+
// @onlyOwnGrammar - As this has cast expression
4+
var x = 0;
5+
var y = 1;
6+
var z = <number>x + <number>y;
7+
-----------------------------------
8+
9+
Grammar: TypeScript.tmLanguage
10+
-----------------------------------
11+
>// @onlyOwnGrammar - As this has cast expression
12+
^^
13+
source.ts comment.line.double-slash.ts punctuation.definition.comment.ts
14+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
15+
source.ts comment.line.double-slash.ts
16+
>var x = 0;
17+
^^^
18+
source.ts meta.var.expr.ts storage.type.ts
19+
^
20+
source.ts meta.var.expr.ts
21+
^
22+
source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts
23+
^
24+
source.ts meta.var.expr.ts meta.var-single-variable.expr.ts
25+
^
26+
source.ts meta.var.expr.ts keyword.operator.assignment.ts
27+
^
28+
source.ts meta.var.expr.ts
29+
^
30+
source.ts meta.var.expr.ts constant.numeric.decimal.ts
31+
^
32+
source.ts punctuation.terminator.statement.ts
33+
^^
34+
source.ts
35+
>var y = 1;
36+
^^^
37+
source.ts meta.var.expr.ts storage.type.ts
38+
^
39+
source.ts meta.var.expr.ts
40+
^
41+
source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts
42+
^
43+
source.ts meta.var.expr.ts meta.var-single-variable.expr.ts
44+
^
45+
source.ts meta.var.expr.ts keyword.operator.assignment.ts
46+
^
47+
source.ts meta.var.expr.ts
48+
^
49+
source.ts meta.var.expr.ts constant.numeric.decimal.ts
50+
^
51+
source.ts punctuation.terminator.statement.ts
52+
^^
53+
source.ts
54+
>var z = <number>x + <number>y;
55+
^^^
56+
source.ts meta.var.expr.ts storage.type.ts
57+
^
58+
source.ts meta.var.expr.ts
59+
^
60+
source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts
61+
^
62+
source.ts meta.var.expr.ts meta.var-single-variable.expr.ts
63+
^
64+
source.ts meta.var.expr.ts keyword.operator.assignment.ts
65+
^
66+
source.ts meta.var.expr.ts cast.expr.ts
67+
^
68+
source.ts meta.var.expr.ts cast.expr.ts meta.brace.angle.ts
69+
^^^^^^
70+
source.ts meta.var.expr.ts cast.expr.ts support.type.primitive.ts
71+
^
72+
source.ts meta.var.expr.ts cast.expr.ts meta.brace.angle.ts
73+
^
74+
source.ts meta.var.expr.ts variable.other.readwrite.ts
75+
^
76+
source.ts meta.var.expr.ts
77+
^
78+
source.ts meta.var.expr.ts keyword.operator.arithmetic.ts
79+
^
80+
source.ts meta.var.expr.ts cast.expr.ts
81+
^
82+
source.ts meta.var.expr.ts cast.expr.ts meta.brace.angle.ts
83+
^^^^^^
84+
source.ts meta.var.expr.ts cast.expr.ts support.type.primitive.ts
85+
^
86+
source.ts meta.var.expr.ts cast.expr.ts meta.brace.angle.ts
87+
^
88+
source.ts meta.var.expr.ts variable.other.readwrite.ts
89+
^
90+
source.ts punctuation.terminator.statement.ts

tests/cases/Issue496.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
// @onlyOwnGrammar - As this has cast expression
2+
var x = 0;
3+
var y = 1;
4+
var z = <number>x + <number>y;

0 commit comments

Comments
 (0)