Skip to content

Commit

Permalink
Fix instanceof used in ternary expresison.
Browse files Browse the repository at this point in the history
Fixes #602
  • Loading branch information
sheetalkamat committed Apr 18, 2018
1 parent 929ee61 commit 3f27a79
Show file tree
Hide file tree
Showing 5 changed files with 60 additions and 3 deletions.
2 changes: 1 addition & 1 deletion TypeScript.YAML-tmLanguage
Original file line number Diff line number Diff line change
Expand Up @@ -1190,7 +1190,7 @@ repository:
begin: '{{startOfIdentifier}}(instanceof){{endOfIdentifier}}'
beginCaptures:
'1': { name: keyword.operator.expression.instanceof.ts }
end: (?<=\))|(?=[;),}\]:]|\|\||\&\&|$|({{startOfIdentifier}}function((\s+{{identifier}})|(\s*[\(]))))
end: (?<=\))|(?=[;),}\]:?]|\|\||\&\&|$|({{startOfIdentifier}}function((\s+{{identifier}})|(\s*[\(]))))
patterns:
- include: '#type'

Expand Down
2 changes: 1 addition & 1 deletion TypeScript.tmLanguage
Original file line number Diff line number Diff line change
Expand Up @@ -3738,7 +3738,7 @@
</dict>
</dict>
<key>end</key>
<string>(?&lt;=\))|(?=[;),}\]:]|\|\||\&amp;\&amp;|$|((?&lt;![_$[:alnum:]])(?:(?&lt;=\.\.\.)|(?&lt;!\.))function((\s+[_$[:alpha:]][_$[:alnum:]]*)|(\s*[\(]))))</string>
<string>(?&lt;=\))|(?=[;),}\]:?]|\|\||\&amp;\&amp;|$|((?&lt;![_$[:alnum:]])(?:(?&lt;=\.\.\.)|(?&lt;!\.))function((\s+[_$[:alpha:]][_$[:alnum:]]*)|(\s*[\(]))))</string>
<key>patterns</key>
<array>
<dict>
Expand Down
2 changes: 1 addition & 1 deletion TypeScriptReact.tmLanguage
Original file line number Diff line number Diff line change
Expand Up @@ -3742,7 +3742,7 @@
</dict>
</dict>
<key>end</key>
<string>(?&lt;=\))|(?=[;),}\]:]|\|\||\&amp;\&amp;|$|((?&lt;![_$[:alnum:]])(?:(?&lt;=\.\.\.)|(?&lt;!\.))function((\s+[_$[:alpha:]][_$[:alnum:]]*)|(\s*[\(]))))</string>
<string>(?&lt;=\))|(?=[;),}\]:?]|\|\||\&amp;\&amp;|$|((?&lt;![_$[:alnum:]])(?:(?&lt;=\.\.\.)|(?&lt;!\.))function((\s+[_$[:alpha:]][_$[:alnum:]]*)|(\s*[\(]))))</string>
<key>patterns</key>
<array>
<dict>
Expand Down
56 changes: 56 additions & 0 deletions tests/baselines/Issue602.baseline.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
original file
-----------------------------------
let result = foo instanceof Foo ? foo.bar() : null;
-----------------------------------

Grammar: TypeScript.tmLanguage
-----------------------------------
>let result = foo instanceof Foo ? foo.bar() : null;
^^^
source.ts meta.var.expr.ts storage.type.ts
^
source.ts meta.var.expr.ts
^^^^^^
source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts
^
source.ts meta.var.expr.ts meta.var-single-variable.expr.ts
^
source.ts meta.var.expr.ts keyword.operator.assignment.ts
^
source.ts meta.var.expr.ts
^^^
source.ts meta.var.expr.ts variable.other.readwrite.ts
^
source.ts meta.var.expr.ts
^^^^^^^^^^
source.ts meta.var.expr.ts keyword.operator.expression.instanceof.ts
^
source.ts meta.var.expr.ts
^^^
source.ts meta.var.expr.ts entity.name.type.ts
^
source.ts meta.var.expr.ts
^
source.ts meta.var.expr.ts keyword.operator.ternary.ts
^
source.ts meta.var.expr.ts
^^^
source.ts meta.var.expr.ts meta.function-call.ts variable.other.object.ts
^
source.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts
^^^
source.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts
^
source.ts meta.var.expr.ts meta.brace.round.ts
^
source.ts meta.var.expr.ts meta.brace.round.ts
^
source.ts meta.var.expr.ts
^
source.ts meta.var.expr.ts keyword.operator.ternary.ts
^
source.ts meta.var.expr.ts
^^^^
source.ts meta.var.expr.ts constant.language.null.ts
^
source.ts punctuation.terminator.statement.ts
1 change: 1 addition & 0 deletions tests/cases/Issue602.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
let result = foo instanceof Foo ? foo.bar() : null;

0 comments on commit 3f27a79

Please sign in to comment.