From 092475166c0c396c926de585c5ae2b2c2ba55fb3 Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Sun, 30 Nov 2014 15:54:39 -0800 Subject: [PATCH] Remove unnecessary tokens from the AST. --- src/compiler/parser.ts | 17 ++++++++--------- src/compiler/types.ts | 2 -- 2 files changed, 8 insertions(+), 11 deletions(-) diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index 01854d9e1dd..9c6f866cbcc 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -2903,10 +2903,9 @@ module ts { continue; } - if (token === SyntaxKind.OpenBracketToken) { + if (parseOptional(SyntaxKind.OpenBracketToken)) { var indexedAccess = createNode(SyntaxKind.ElementAccessExpression, expression.pos); indexedAccess.expression = expression; - indexedAccess.openBracketToken = parseTokenNode(SyntaxKind.OpenBracketToken); // It's not uncommon for a user to write: "new Type[]". // Check for that common pattern and report a better error message. @@ -2921,7 +2920,7 @@ module ts { indexedAccess.argumentExpression = createMissingNode(); } - indexedAccess.closeBracketToken = parseTokenNode(SyntaxKind.CloseBracketToken); + parseExpected(SyntaxKind.CloseBracketToken); expression = finishNode(indexedAccess); continue; } @@ -4742,15 +4741,15 @@ module ts { function checkElementAccessExpression(node: ElementAccessExpression) { if (node.argumentExpression.kind === SyntaxKind.Missing) { - if (node.parent.kind === SyntaxKind.NewExpression && - (node.parent).expression === node) { - - var start = skipTrivia(sourceText, node.openBracketToken.pos); - var end = node.closeBracketToken.end; + if (node.parent.kind === SyntaxKind.NewExpression && (node.parent).expression === node) { + var start = skipTrivia(sourceText, node.expression.end); + var end = node.end; return grammarErrorAtPos(start, end - start, Diagnostics.new_T_cannot_be_used_to_create_an_array_Use_new_Array_T_instead); } else { - return grammarErrorOnNode(node.closeBracketToken, Diagnostics.Expression_expected); + var start = node.end - "]".length; + var end = node.end; + return grammarErrorAtPos(start, end - start, Diagnostics.Expression_expected); } } } diff --git a/src/compiler/types.ts b/src/compiler/types.ts index 94c4c1b412a..94a3f9c48ee 100644 --- a/src/compiler/types.ts +++ b/src/compiler/types.ts @@ -553,9 +553,7 @@ module ts { export interface ElementAccessExpression extends MemberExpression { expression: LeftHandSideExpression; - openBracketToken: Node; argumentExpression: Expression; - closeBracketToken: Node; } export interface CallExpression extends LeftHandSideExpression {