Remove unnecessary tokens from the AST.
This commit is contained in:
parent
16e28156e5
commit
092475166c
|
@ -2903,10 +2903,9 @@ module ts {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (token === SyntaxKind.OpenBracketToken) {
|
if (parseOptional(SyntaxKind.OpenBracketToken)) {
|
||||||
var indexedAccess = <ElementAccessExpression>createNode(SyntaxKind.ElementAccessExpression, expression.pos);
|
var indexedAccess = <ElementAccessExpression>createNode(SyntaxKind.ElementAccessExpression, expression.pos);
|
||||||
indexedAccess.expression = expression;
|
indexedAccess.expression = expression;
|
||||||
indexedAccess.openBracketToken = parseTokenNode(SyntaxKind.OpenBracketToken);
|
|
||||||
|
|
||||||
// It's not uncommon for a user to write: "new Type[]".
|
// It's not uncommon for a user to write: "new Type[]".
|
||||||
// Check for that common pattern and report a better error message.
|
// Check for that common pattern and report a better error message.
|
||||||
|
@ -2921,7 +2920,7 @@ module ts {
|
||||||
indexedAccess.argumentExpression = <Expression>createMissingNode();
|
indexedAccess.argumentExpression = <Expression>createMissingNode();
|
||||||
}
|
}
|
||||||
|
|
||||||
indexedAccess.closeBracketToken = parseTokenNode(SyntaxKind.CloseBracketToken);
|
parseExpected(SyntaxKind.CloseBracketToken);
|
||||||
expression = finishNode(indexedAccess);
|
expression = finishNode(indexedAccess);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
@ -4742,15 +4741,15 @@ module ts {
|
||||||
|
|
||||||
function checkElementAccessExpression(node: ElementAccessExpression) {
|
function checkElementAccessExpression(node: ElementAccessExpression) {
|
||||||
if (node.argumentExpression.kind === SyntaxKind.Missing) {
|
if (node.argumentExpression.kind === SyntaxKind.Missing) {
|
||||||
if (node.parent.kind === SyntaxKind.NewExpression &&
|
if (node.parent.kind === SyntaxKind.NewExpression && (<NewExpression>node.parent).expression === node) {
|
||||||
(<NewExpression>node.parent).expression === node) {
|
var start = skipTrivia(sourceText, node.expression.end);
|
||||||
|
var end = node.end;
|
||||||
var start = skipTrivia(sourceText, node.openBracketToken.pos);
|
|
||||||
var end = node.closeBracketToken.end;
|
|
||||||
return grammarErrorAtPos(start, end - start, Diagnostics.new_T_cannot_be_used_to_create_an_array_Use_new_Array_T_instead);
|
return grammarErrorAtPos(start, end - start, Diagnostics.new_T_cannot_be_used_to_create_an_array_Use_new_Array_T_instead);
|
||||||
}
|
}
|
||||||
else {
|
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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -553,9 +553,7 @@ module ts {
|
||||||
|
|
||||||
export interface ElementAccessExpression extends MemberExpression {
|
export interface ElementAccessExpression extends MemberExpression {
|
||||||
expression: LeftHandSideExpression;
|
expression: LeftHandSideExpression;
|
||||||
openBracketToken: Node;
|
|
||||||
argumentExpression: Expression;
|
argumentExpression: Expression;
|
||||||
closeBracketToken: Node;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface CallExpression extends LeftHandSideExpression {
|
export interface CallExpression extends LeftHandSideExpression {
|
||||||
|
|
Loading…
Reference in a new issue