Skip to content

Commit 780102b

Browse files
committed
use getNodePos
1 parent e38a0ce commit 780102b

File tree

1 file changed

+14
-17
lines changed

1 file changed

+14
-17
lines changed

src/compiler/parser.ts

Lines changed: 14 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1555,15 +1555,15 @@ namespace ts {
15551555
return false;
15561556
}
15571557

1558-
function parseExpectedMatchingBrackets(openKind: SyntaxKind, closeKind: SyntaxKind, openParsed: boolean, openPosition: number) {
1559-
if (!openParsed) {
1560-
return parseExpected(closeKind);
1561-
}
1558+
function parseExpectedMatchingBrackets(openKind: SyntaxKind, closeKind: SyntaxKind, openParsed: boolean, openPosition: number) {
15621559
if (token() === closeKind) {
15631560
nextToken();
15641561
return;
15651562
}
15661563
const lastError = parseErrorAtCurrentToken(Diagnostics._0_expected, tokenToString(closeKind));
1564+
if (!openParsed) {
1565+
return;
1566+
}
15671567
if (lastError) {
15681568
addRelatedInfo(
15691569
lastError,
@@ -5501,11 +5501,10 @@ namespace ts {
55015501

55025502
function parseArrayLiteralExpression(): ArrayLiteralExpression {
55035503
const pos = getNodePos();
5504-
const openBracketPosition = scanner.getTokenPos();
55055504
const openBracketParsed = parseExpected(SyntaxKind.OpenBracketToken);
55065505
const multiLine = scanner.hasPrecedingLineBreak();
55075506
const elements = parseDelimitedList(ParsingContext.ArrayLiteralMembers, parseArgumentOrArrayLiteralElement);
5508-
parseExpectedMatchingBrackets(SyntaxKind.OpenBracketToken, SyntaxKind.CloseBracketToken, openBracketParsed, openBracketPosition);
5507+
parseExpectedMatchingBrackets(SyntaxKind.OpenBracketToken, SyntaxKind.CloseBracketToken, openBracketParsed, pos);
55095508
return finishNode(factory.createArrayLiteralExpression(elements, multiLine), pos);
55105509
}
55115510

@@ -5570,11 +5569,10 @@ namespace ts {
55705569

55715570
function parseObjectLiteralExpression(): ObjectLiteralExpression {
55725571
const pos = getNodePos();
5573-
const openBracePosition = scanner.getTokenPos();
55745572
const openBraceParsed = parseExpected(SyntaxKind.OpenBraceToken);
55755573
const multiLine = scanner.hasPrecedingLineBreak();
55765574
const properties = parseDelimitedList(ParsingContext.ObjectLiteralMembers, parseObjectLiteralElement, /*considerSemicolonAsDelimiter*/ true);
5577-
parseExpectedMatchingBrackets(SyntaxKind.OpenBraceToken, SyntaxKind.CloseBraceToken, openBraceParsed, openBracePosition);
5575+
parseExpectedMatchingBrackets(SyntaxKind.OpenBraceToken, SyntaxKind.CloseBraceToken, openBraceParsed, pos);
55785576
return finishNode(factory.createObjectLiteralExpression(properties, multiLine), pos);
55795577
}
55805578

@@ -5656,12 +5654,11 @@ namespace ts {
56565654
function parseBlock(ignoreMissingOpenBrace: boolean, diagnosticMessage?: DiagnosticMessage): Block {
56575655
const pos = getNodePos();
56585656
const hasJSDoc = hasPrecedingJSDocComment();
5659-
const openBracePosition = scanner.getTokenPos();
5660-
const openBraceParsed = parseExpected(SyntaxKind.OpenBraceToken, diagnosticMessage)
5657+
const openBraceParsed = parseExpected(SyntaxKind.OpenBraceToken, diagnosticMessage);
56615658
if (openBraceParsed || ignoreMissingOpenBrace) {
56625659
const multiLine = scanner.hasPrecedingLineBreak();
56635660
const statements = parseList(ParsingContext.BlockStatements, parseStatement);
5664-
parseExpectedMatchingBrackets(SyntaxKind.OpenBraceToken, SyntaxKind.CloseBraceToken, openBraceParsed, openBracePosition);
5661+
parseExpectedMatchingBrackets(SyntaxKind.OpenBraceToken, SyntaxKind.CloseBraceToken, openBraceParsed, pos);
56655662
const result = withJSDoc(finishNode(factory.createBlock(statements, multiLine), pos), hasJSDoc);
56665663
if (token() === SyntaxKind.EqualsToken) {
56675664
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);
@@ -5717,10 +5714,10 @@ namespace ts {
57175714
const pos = getNodePos();
57185715
const hasJSDoc = hasPrecedingJSDocComment();
57195716
parseExpected(SyntaxKind.IfKeyword);
5720-
const openParenPosition = scanner.getTokenPos();
5717+
const openParenPosition = getNodePos();
57215718
const openParenParsed = parseExpected(SyntaxKind.OpenParenToken);
57225719
const expression = allowInAnd(parseExpression);
5723-
parseExpectedMatchingBrackets(SyntaxKind.OpenParenToken, SyntaxKind.CloseParenToken, openParenParsed, openParenPosition)
5720+
parseExpectedMatchingBrackets(SyntaxKind.OpenParenToken, SyntaxKind.CloseParenToken, openParenParsed, openParenPosition);
57245721
const thenStatement = parseStatement();
57255722
const elseStatement = parseOptional(SyntaxKind.ElseKeyword) ? parseStatement() : undefined;
57265723
return withJSDoc(finishNode(factory.createIfStatement(expression, thenStatement, elseStatement), pos), hasJSDoc);
@@ -5732,10 +5729,10 @@ namespace ts {
57325729
parseExpected(SyntaxKind.DoKeyword);
57335730
const statement = parseStatement();
57345731
parseExpected(SyntaxKind.WhileKeyword);
5735-
const openParenPosition = scanner.getTokenPos();
5732+
const openParenPosition = getNodePos();
57365733
const openParenParsed = parseExpected(SyntaxKind.OpenParenToken);
57375734
const expression = allowInAnd(parseExpression);
5738-
parseExpectedMatchingBrackets(SyntaxKind.OpenParenToken, SyntaxKind.CloseParenToken, openParenParsed, openParenPosition)
5735+
parseExpectedMatchingBrackets(SyntaxKind.OpenParenToken, SyntaxKind.CloseParenToken, openParenParsed, openParenPosition);
57395736

57405737
// From: https://mail.mozilla.org/pipermail/es-discuss/2011-August/016188.html
57415738
// 157 min --- All allen at wirfs-brock.com CONF --- "do{;}while(false)false" prohibited in
@@ -5749,7 +5746,7 @@ namespace ts {
57495746
const pos = getNodePos();
57505747
const hasJSDoc = hasPrecedingJSDocComment();
57515748
parseExpected(SyntaxKind.WhileKeyword);
5752-
const openParenPosition = scanner.getTokenPos();
5749+
const openParenPosition = getNodePos();
57535750
const openParenParsed = parseExpected(SyntaxKind.OpenParenToken);
57545751
const expression = allowInAnd(parseExpression);
57555752
parseExpectedMatchingBrackets(SyntaxKind.OpenParenToken, SyntaxKind.CloseParenToken, openParenParsed, openParenPosition);
@@ -5828,7 +5825,7 @@ namespace ts {
58285825
const pos = getNodePos();
58295826
const hasJSDoc = hasPrecedingJSDocComment();
58305827
parseExpected(SyntaxKind.WithKeyword);
5831-
const openParenPosition = scanner.getTokenPos();
5828+
const openParenPosition = getNodePos();
58325829
const openParenParsed = parseExpected(SyntaxKind.OpenParenToken);
58335830
const expression = allowInAnd(parseExpression);
58345831
parseExpectedMatchingBrackets(SyntaxKind.OpenParenToken, SyntaxKind.CloseParenToken, openParenParsed, openParenPosition);

0 commit comments

Comments
 (0)