@@ -1543,20 +1543,6 @@ namespace ts {
1543
1543
return false ;
1544
1544
}
1545
1545
1546
- function parseExpectedMatchingBrackets ( openKind : SyntaxKind , closeKind : SyntaxKind , openPosition : number ) {
1547
- if ( ! parseExpected ( closeKind ) ) {
1548
- const lastError = lastOrUndefined ( parseDiagnostics ) ;
1549
- if ( lastError && lastError . code === Diagnostics . _0_expected . code ) {
1550
- addRelatedInfo (
1551
- lastError ,
1552
- createDetachedDiagnostic ( fileName , openPosition , 1 , Diagnostics . The_parser_expected_to_find_a_1_to_match_the_0_token_here , tokenToString ( openKind ) , tokenToString ( closeKind ) )
1553
- ) ;
1554
- }
1555
- return false ;
1556
- }
1557
- return true ;
1558
- }
1559
-
1560
1546
function parseOptional ( t : SyntaxKind ) : boolean {
1561
1547
if ( token ( ) === t ) {
1562
1548
nextToken ( ) ;
@@ -5447,11 +5433,10 @@ namespace ts {
5447
5433
5448
5434
function parseArrayLiteralExpression ( ) : ArrayLiteralExpression {
5449
5435
const pos = getNodePos ( ) ;
5450
- const openBracketPosition = scanner . getTokenPos ( ) ;
5451
5436
parseExpected ( SyntaxKind . OpenBracketToken ) ;
5452
5437
const multiLine = scanner . hasPrecedingLineBreak ( ) ;
5453
5438
const elements = parseDelimitedList ( ParsingContext . ArrayLiteralMembers , parseArgumentOrArrayLiteralElement ) ;
5454
- parseExpectedMatchingBrackets ( SyntaxKind . OpenBracketToken , SyntaxKind . CloseBracketToken , openBracketPosition ) ;
5439
+ parseExpected ( SyntaxKind . CloseBracketToken ) ;
5455
5440
return finishNode ( factory . createArrayLiteralExpression ( elements , multiLine ) , pos ) ;
5456
5441
}
5457
5442
@@ -5525,7 +5510,7 @@ namespace ts {
5525
5510
if ( lastError && lastError . code === Diagnostics . _0_expected . code ) {
5526
5511
addRelatedInfo (
5527
5512
lastError ,
5528
- createDetachedDiagnostic ( fileName , openBracePosition , 1 , Diagnostics . The_parser_expected_to_find_a_1_to_match_the_0_token_here , tokenToString ( SyntaxKind . OpenBraceToken ) , tokenToString ( SyntaxKind . CloseBraceToken ) )
5513
+ createDetachedDiagnostic ( fileName , openBracePosition , 1 , Diagnostics . The_parser_expected_to_find_a_to_match_the_token_here )
5529
5514
) ;
5530
5515
}
5531
5516
}
@@ -5614,14 +5599,16 @@ namespace ts {
5614
5599
if ( parseExpected ( SyntaxKind . OpenBraceToken , diagnosticMessage ) || ignoreMissingOpenBrace ) {
5615
5600
const multiLine = scanner . hasPrecedingLineBreak ( ) ;
5616
5601
const statements = parseList ( ParsingContext . BlockStatements , parseStatement ) ;
5617
- parseExpectedMatchingBrackets ( SyntaxKind . OpenBraceToken , SyntaxKind . CloseBraceToken , openBracePosition ) ;
5618
- const result = withJSDoc ( finishNode ( factory . createBlock ( statements , multiLine ) , pos ) , hasJSDoc ) ;
5619
- if ( token ( ) === SyntaxKind . EqualsToken ) {
5620
- parseErrorAtCurrentToken ( Diagnostics . Declaration_or_statement_expected_This_follows_a_block_of_statements_so_if_you_intended_to_write_a_destructuring_assignment_you_might_need_to_wrap_the_the_whole_assignment_in_parentheses ) ;
5621
- nextToken ( ) ;
5602
+ if ( ! parseExpected ( SyntaxKind . CloseBraceToken ) ) {
5603
+ const lastError = lastOrUndefined ( parseDiagnostics ) ;
5604
+ if ( lastError && lastError . code === Diagnostics . _0_expected . code ) {
5605
+ addRelatedInfo (
5606
+ lastError ,
5607
+ createDetachedDiagnostic ( fileName , openBracePosition , 1 , Diagnostics . The_parser_expected_to_find_a_to_match_the_token_here )
5608
+ ) ;
5609
+ }
5622
5610
}
5623
-
5624
- return result ;
5611
+ return finishNode ( factory . createBlock ( statements , multiLine ) , pos ) ;
5625
5612
}
5626
5613
else {
5627
5614
const statements = createMissingList < Statement > ( ) ;
@@ -5670,10 +5657,9 @@ namespace ts {
5670
5657
const pos = getNodePos ( ) ;
5671
5658
const hasJSDoc = hasPrecedingJSDocComment ( ) ;
5672
5659
parseExpected ( SyntaxKind . IfKeyword ) ;
5673
- const openParenPosition = scanner . getTokenPos ( ) ;
5674
5660
parseExpected ( SyntaxKind . OpenParenToken ) ;
5675
5661
const expression = allowInAnd ( parseExpression ) ;
5676
- parseExpectedMatchingBrackets ( SyntaxKind . OpenParenToken , SyntaxKind . CloseParenToken , openParenPosition ) ;
5662
+ parseExpected ( SyntaxKind . CloseParenToken ) ;
5677
5663
const thenStatement = parseStatement ( ) ;
5678
5664
const elseStatement = parseOptional ( SyntaxKind . ElseKeyword ) ? parseStatement ( ) : undefined ;
5679
5665
return withJSDoc ( finishNode ( factory . createIfStatement ( expression , thenStatement , elseStatement ) , pos ) , hasJSDoc ) ;
@@ -5685,10 +5671,9 @@ namespace ts {
5685
5671
parseExpected ( SyntaxKind . DoKeyword ) ;
5686
5672
const statement = parseStatement ( ) ;
5687
5673
parseExpected ( SyntaxKind . WhileKeyword ) ;
5688
- const openParenPosition = scanner . getTokenPos ( ) ;
5689
5674
parseExpected ( SyntaxKind . OpenParenToken ) ;
5690
5675
const expression = allowInAnd ( parseExpression ) ;
5691
- parseExpectedMatchingBrackets ( SyntaxKind . OpenParenToken , SyntaxKind . CloseParenToken , openParenPosition ) ;
5676
+ parseExpected ( SyntaxKind . CloseParenToken ) ;
5692
5677
5693
5678
// From: https://mail.mozilla.org/pipermail/es-discuss/2011-August/016188.html
5694
5679
// 157 min --- All allen at wirfs-brock.com CONF --- "do{;}while(false)false" prohibited in
@@ -5702,10 +5687,9 @@ namespace ts {
5702
5687
const pos = getNodePos ( ) ;
5703
5688
const hasJSDoc = hasPrecedingJSDocComment ( ) ;
5704
5689
parseExpected ( SyntaxKind . WhileKeyword ) ;
5705
- const openParenPosition = scanner . getTokenPos ( ) ;
5706
5690
parseExpected ( SyntaxKind . OpenParenToken ) ;
5707
5691
const expression = allowInAnd ( parseExpression ) ;
5708
- parseExpectedMatchingBrackets ( SyntaxKind . OpenParenToken , SyntaxKind . CloseParenToken , openParenPosition ) ;
5692
+ parseExpected ( SyntaxKind . CloseParenToken ) ;
5709
5693
const statement = parseStatement ( ) ;
5710
5694
return withJSDoc ( finishNode ( factory . createWhileStatement ( expression , statement ) , pos ) , hasJSDoc ) ;
5711
5695
}
@@ -5781,10 +5765,9 @@ namespace ts {
5781
5765
const pos = getNodePos ( ) ;
5782
5766
const hasJSDoc = hasPrecedingJSDocComment ( ) ;
5783
5767
parseExpected ( SyntaxKind . WithKeyword ) ;
5784
- const openParenPosition = scanner . getTokenPos ( ) ;
5785
5768
parseExpected ( SyntaxKind . OpenParenToken ) ;
5786
5769
const expression = allowInAnd ( parseExpression ) ;
5787
- parseExpectedMatchingBrackets ( SyntaxKind . OpenParenToken , SyntaxKind . CloseParenToken , openParenPosition ) ;
5770
+ parseExpected ( SyntaxKind . CloseParenToken ) ;
5788
5771
const statement = doInsideOfContext ( NodeFlags . InWithStatement , parseStatement ) ;
5789
5772
return withJSDoc ( finishNode ( factory . createWithStatement ( expression , statement ) , pos ) , hasJSDoc ) ;
5790
5773
}
0 commit comments