Skip to content

Commit 0ecdc87

Browse files
Kingwlmhegazy
authored andcommitted
imporve conditional operator if missing colon token (microsoft#20498)
f2
1 parent a82d1f8 commit 0ecdc87

3 files changed

Lines changed: 11 additions & 9 deletions

File tree

src/compiler/parser.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3504,7 +3504,9 @@ namespace ts {
35043504
node.whenTrue = doOutsideOfContext(disallowInAndDecoratorContext, parseAssignmentExpressionOrHigher);
35053505
node.colonToken = parseExpectedToken(SyntaxKind.ColonToken, /*reportAtCurrentPosition*/ false,
35063506
Diagnostics._0_expected, tokenToString(SyntaxKind.ColonToken));
3507-
node.whenFalse = parseAssignmentExpressionOrHigher();
3507+
node.whenFalse = nodeIsPresent(node.colonToken)
3508+
? parseAssignmentExpressionOrHigher()
3509+
: createMissingNode(SyntaxKind.Identifier, /*reportAtCurrentPosition*/ false, Diagnostics._0_expected, tokenToString(SyntaxKind.ColonToken));
35083510
return finishNode(node);
35093511
}
35103512

tests/baselines/reference/jsxAndTypeAssertion.errors.txt

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,11 @@ tests/cases/conformance/jsx/jsxAndTypeAssertion.tsx(14,45): error TS1005: '}' ex
1010
tests/cases/conformance/jsx/jsxAndTypeAssertion.tsx(18,2): error TS17008: JSX element 'foo' has no corresponding closing tag.
1111
tests/cases/conformance/jsx/jsxAndTypeAssertion.tsx(18,8): error TS17008: JSX element 'foo' has no corresponding closing tag.
1212
tests/cases/conformance/jsx/jsxAndTypeAssertion.tsx(18,13): error TS17008: JSX element 'foo' has no corresponding closing tag.
13-
tests/cases/conformance/jsx/jsxAndTypeAssertion.tsx(18,83): error TS1109: Expression expected.
1413
tests/cases/conformance/jsx/jsxAndTypeAssertion.tsx(21,1): error TS1005: ':' expected.
1514
tests/cases/conformance/jsx/jsxAndTypeAssertion.tsx(21,1): error TS1005: '</' expected.
16-
tests/cases/conformance/jsx/jsxAndTypeAssertion.tsx(21,1): error TS1005: '}' expected.
1715

1816

19-
==== tests/cases/conformance/jsx/jsxAndTypeAssertion.tsx (16 errors) ====
17+
==== tests/cases/conformance/jsx/jsxAndTypeAssertion.tsx (14 errors) ====
2018
declare var createElement: any;
2119

2220
class foo {}
@@ -59,14 +57,10 @@ tests/cases/conformance/jsx/jsxAndTypeAssertion.tsx(21,1): error TS1005: '}' exp
5957
!!! error TS17008: JSX element 'foo' has no corresponding closing tag.
6058
~~~
6159
!!! error TS17008: JSX element 'foo' has no corresponding closing tag.
62-
63-
!!! error TS1109: Expression expected.
6460

6561

6662

6763

6864
!!! error TS1005: ':' expected.
6965

70-
!!! error TS1005: '</' expected.
71-
72-
!!! error TS1005: '}' expected.
66+
!!! error TS1005: '</' expected.
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
/// <reference path="fourslash.ts" />
2+
////1 ? fun/*1*/
3+
////function func () {}
4+
5+
goTo.marker("1");
6+
verify.completionListContains("func");

0 commit comments

Comments
 (0)