diff --git a/src/services/formatting/formatter.ts b/src/services/formatting/formatter.ts
index e4a1229abef..a98d969c059 100644
--- a/src/services/formatting/formatter.ts
+++ b/src/services/formatting/formatter.ts
@@ -52,7 +52,7 @@ module TypeScript.Services.Formatting {
rulesProvider: RulesProvider,
formattingRequestKind: FormattingRequestKind): TextEditInfo[] {
var walker = new Formatter(textSpan, sourceUnit, indentFirstToken, options, snapshot, rulesProvider, formattingRequestKind);
- visitNodeOrToken(walker, sourceUnit);
+ walker.walk(sourceUnit);
return walker.edits();
}
diff --git a/src/services/formatting/indentationTrackingWalker.ts b/src/services/formatting/indentationTrackingWalker.ts
index b07b477623e..2863b2e4fcc 100644
--- a/src/services/formatting/indentationTrackingWalker.ts
+++ b/src/services/formatting/indentationTrackingWalker.ts
@@ -16,7 +16,7 @@
///
module TypeScript.Services.Formatting {
- export class IndentationTrackingWalker extends SyntaxWalker {
+ export class IndentationTrackingWalker {
private _position: number = 0;
private _parent: IndentationNodeContext = null;
private _textSpan: TextSpan;
@@ -26,8 +26,6 @@ module TypeScript.Services.Formatting {
private _text: ISimpleText;
constructor(textSpan: TextSpan, sourceUnit: SourceUnitSyntax, snapshot: ITextSnapshot, indentFirstToken: boolean, public options: FormattingOptions) {
- super();
-
// Create a pool object to manage context nodes while walking the tree
this._indentationNodeContextPool = new IndentationNodeContextPool();
@@ -100,7 +98,23 @@ module TypeScript.Services.Formatting {
this._position += token.fullWidth();
}
- public visitNode(node: ISyntaxNode): void {
+ public walk(element: ISyntaxElement) {
+ if (element && !isShared(element)) {
+ if (isToken(element)) {
+ this.visitToken(element);
+ }
+ else if (element.kind() === SyntaxKind.List || element.kind() === SyntaxKind.SeparatedList) {
+ for (var i = 0, n = childCount(element); i < n; i++) {
+ this.walk(childAt(element, i));
+ }
+ }
+ else {
+ this.visitNode(element);
+ }
+ }
+ }
+
+ private visitNode(node: ISyntaxNode): void {
var nodeSpan = new TextSpan(this._position, fullWidth(node));
if (nodeSpan.intersectsWithTextSpan(this._textSpan)) {
@@ -112,7 +126,9 @@ module TypeScript.Services.Formatting {
this._parent = this._indentationNodeContextPool.getNode(currentParent, node, this._position, indentation.indentationAmount, indentation.indentationAmountDelta);
// Visit node
- visitNodeOrToken(this, node);
+ for (var i = 0, n = childCount(node); i < n; i++) {
+ this.walk(childAt(node, i));
+ }
// Reset state
this._indentationNodeContextPool.releaseNode(this._parent);
diff --git a/src/services/formatting/rules.ts b/src/services/formatting/rules.ts
index ade1dc6b217..2bb8be11e7a 100644
--- a/src/services/formatting/rules.ts
+++ b/src/services/formatting/rules.ts
@@ -448,42 +448,8 @@ module TypeScript.Services.Formatting {
switch (context.contextNode.kind()) {
// binary expressions
- case SyntaxKind.AssignmentExpression:
- case SyntaxKind.AddAssignmentExpression:
- case SyntaxKind.SubtractAssignmentExpression:
- case SyntaxKind.MultiplyAssignmentExpression:
- case SyntaxKind.DivideAssignmentExpression:
- case SyntaxKind.ModuloAssignmentExpression:
- case SyntaxKind.AndAssignmentExpression:
- case SyntaxKind.ExclusiveOrAssignmentExpression:
- case SyntaxKind.OrAssignmentExpression:
- case SyntaxKind.LeftShiftAssignmentExpression:
- case SyntaxKind.SignedRightShiftAssignmentExpression:
- case SyntaxKind.UnsignedRightShiftAssignmentExpression:
+ case SyntaxKind.BinaryExpression:
case SyntaxKind.ConditionalExpression:
- case SyntaxKind.LogicalOrExpression:
- case SyntaxKind.LogicalAndExpression:
- case SyntaxKind.BitwiseOrExpression:
- case SyntaxKind.BitwiseExclusiveOrExpression:
- case SyntaxKind.BitwiseAndExpression:
- case SyntaxKind.EqualsWithTypeConversionExpression:
- case SyntaxKind.NotEqualsWithTypeConversionExpression:
- case SyntaxKind.EqualsExpression:
- case SyntaxKind.NotEqualsExpression:
- case SyntaxKind.LessThanExpression:
- case SyntaxKind.GreaterThanExpression:
- case SyntaxKind.LessThanOrEqualExpression:
- case SyntaxKind.GreaterThanOrEqualExpression:
- case SyntaxKind.InstanceOfExpression:
- case SyntaxKind.InExpression:
- case SyntaxKind.LeftShiftExpression:
- case SyntaxKind.SignedRightShiftExpression:
- case SyntaxKind.UnsignedRightShiftExpression:
- case SyntaxKind.MultiplyExpression:
- case SyntaxKind.DivideExpression:
- case SyntaxKind.ModuloExpression:
- case SyntaxKind.AddExpression:
- case SyntaxKind.SubtractExpression:
return true;
// equal in import a = module('a');
diff --git a/src/services/syntax/depthLimitedWalker.ts b/src/services/syntax/depthLimitedWalker.ts
index 79df1ebd836..e69de29bb2d 100644
--- a/src/services/syntax/depthLimitedWalker.ts
+++ b/src/services/syntax/depthLimitedWalker.ts
@@ -1,21 +0,0 @@
-///
-
-module TypeScript {
- export class DepthLimitedWalker extends SyntaxWalker {
- private _depth: number = 0;
- private _maximumDepth: number = 0;
-
- constructor(maximumDepth: number) {
- super();
- this._maximumDepth = maximumDepth;
- }
-
- public visitNode(node: ISyntaxNode): void {
- if (this._depth < this._maximumDepth) {
- this._depth++;
- super.visitNode(node);
- this._depth--;
- }
- }
- }
-}
\ No newline at end of file
diff --git a/src/services/syntax/prettyPrinter.ts b/src/services/syntax/prettyPrinter.ts
index 7d744284e64..647590f5fcc 100644
--- a/src/services/syntax/prettyPrinter.ts
+++ b/src/services/syntax/prettyPrinter.ts
@@ -552,7 +552,7 @@ module TypeScript.PrettyPrinter {
public visitBinaryExpression(node: BinaryExpressionSyntax): void {
visitNodeOrToken(this, node.left);
- if (node.kind() !== SyntaxKind.CommaExpression) {
+ if (node.operatorToken.kind() !== SyntaxKind.CommaToken) {
this.ensureSpace();
}
diff --git a/src/services/syntax/syntax.ts b/src/services/syntax/syntax.ts
index b81856e29bd..87974c850f7 100644
--- a/src/services/syntax/syntax.ts
+++ b/src/services/syntax/syntax.ts
@@ -185,13 +185,17 @@ module TypeScript.Syntax {
export function isIntegerLiteral(expression: IExpressionSyntax): boolean {
if (expression) {
switch (expression.kind()) {
- case SyntaxKind.PlusExpression:
- case SyntaxKind.NegateExpression:
- // Note: if there is a + or - sign, we can only allow a normal integer following
- // (and not a hex integer). i.e. -0xA is a legal expression, but it is not a
- // *literal*.
- expression = (expression).operand;
- return isToken(expression) && IntegerUtilities.isInteger((expression).text());
+ case SyntaxKind.PrefixUnaryExpression:
+ var prefixExpr = expression;
+ if (prefixExpr.operatorToken.kind() == SyntaxKind.PlusToken || prefixExpr.operatorToken.kind() === SyntaxKind.MinusToken) {
+ // Note: if there is a + or - sign, we can only allow a normal integer following
+ // (and not a hex integer). i.e. -0xA is a legal expression, but it is not a
+ // *literal*.
+ expression = prefixExpr.operand;
+ return isToken(expression) && IntegerUtilities.isInteger((expression).text());
+ }
+
+ return false;
case SyntaxKind.NumericLiteral:
// If it doesn't have a + or -, then either an integer literal or a hex literal
diff --git a/src/services/syntax/syntaxFacts.ts b/src/services/syntax/syntaxFacts.ts
index fcd152a19b1..6f8b0edccae 100644
--- a/src/services/syntax/syntaxFacts.ts
+++ b/src/services/syntax/syntaxFacts.ts
@@ -146,114 +146,60 @@ module TypeScript.SyntaxFacts {
}
export function isPrefixUnaryExpressionOperatorToken(tokenKind: SyntaxKind): boolean {
- return getPrefixUnaryExpressionFromOperatorToken(tokenKind) !== SyntaxKind.None;
+ switch (tokenKind) {
+ case SyntaxKind.PlusToken:
+ case SyntaxKind.MinusToken:
+ case SyntaxKind.TildeToken:
+ case SyntaxKind.ExclamationToken:
+ case SyntaxKind.PlusPlusToken:
+ case SyntaxKind.MinusMinusToken:
+ return true;
+ default:
+ return false;
+ }
}
export function isBinaryExpressionOperatorToken(tokenKind: SyntaxKind): boolean {
- return getBinaryExpressionFromOperatorToken(tokenKind) !== SyntaxKind.None;
- }
-
- export function getPrefixUnaryExpressionFromOperatorToken(tokenKind: SyntaxKind): SyntaxKind {
switch (tokenKind) {
- case SyntaxKind.PlusToken: return SyntaxKind.PlusExpression;
- case SyntaxKind.MinusToken: return SyntaxKind.NegateExpression;
- case SyntaxKind.TildeToken: return SyntaxKind.BitwiseNotExpression;
- case SyntaxKind.ExclamationToken: return SyntaxKind.LogicalNotExpression;
- case SyntaxKind.PlusPlusToken: return SyntaxKind.PreIncrementExpression;
- case SyntaxKind.MinusMinusToken: return SyntaxKind.PreDecrementExpression;
- default: return SyntaxKind.None;
- }
- }
-
- export function getPostfixUnaryExpressionFromOperatorToken(tokenKind: SyntaxKind): SyntaxKind {
- switch (tokenKind) {
- case SyntaxKind.PlusPlusToken: return SyntaxKind.PostIncrementExpression;
- case SyntaxKind.MinusMinusToken: return SyntaxKind.PostDecrementExpression;
- default: return SyntaxKind.None;
- }
- }
-
- export function getBinaryExpressionFromOperatorToken(tokenKind: SyntaxKind): SyntaxKind {
- switch (tokenKind) {
- case SyntaxKind.AsteriskToken: return SyntaxKind.MultiplyExpression;
- case SyntaxKind.SlashToken: return SyntaxKind.DivideExpression;
- case SyntaxKind.PercentToken: return SyntaxKind.ModuloExpression;
- case SyntaxKind.PlusToken: return SyntaxKind.AddExpression;
- case SyntaxKind.MinusToken: return SyntaxKind.SubtractExpression;
- case SyntaxKind.LessThanLessThanToken: return SyntaxKind.LeftShiftExpression;
- case SyntaxKind.GreaterThanGreaterThanToken: return SyntaxKind.SignedRightShiftExpression;
- case SyntaxKind.GreaterThanGreaterThanGreaterThanToken: return SyntaxKind.UnsignedRightShiftExpression;
- case SyntaxKind.LessThanToken: return SyntaxKind.LessThanExpression;
- case SyntaxKind.GreaterThanToken: return SyntaxKind.GreaterThanExpression;
- case SyntaxKind.LessThanEqualsToken: return SyntaxKind.LessThanOrEqualExpression;
- case SyntaxKind.GreaterThanEqualsToken: return SyntaxKind.GreaterThanOrEqualExpression;
- case SyntaxKind.InstanceOfKeyword: return SyntaxKind.InstanceOfExpression;
- case SyntaxKind.InKeyword: return SyntaxKind.InExpression;
- case SyntaxKind.EqualsEqualsToken: return SyntaxKind.EqualsWithTypeConversionExpression;
- case SyntaxKind.ExclamationEqualsToken: return SyntaxKind.NotEqualsWithTypeConversionExpression;
- case SyntaxKind.EqualsEqualsEqualsToken: return SyntaxKind.EqualsExpression;
- case SyntaxKind.ExclamationEqualsEqualsToken: return SyntaxKind.NotEqualsExpression;
- case SyntaxKind.AmpersandToken: return SyntaxKind.BitwiseAndExpression;
- case SyntaxKind.CaretToken: return SyntaxKind.BitwiseExclusiveOrExpression;
- case SyntaxKind.BarToken: return SyntaxKind.BitwiseOrExpression;
- case SyntaxKind.AmpersandAmpersandToken: return SyntaxKind.LogicalAndExpression;
- case SyntaxKind.BarBarToken: return SyntaxKind.LogicalOrExpression;
- case SyntaxKind.BarEqualsToken: return SyntaxKind.OrAssignmentExpression;
- case SyntaxKind.AmpersandEqualsToken: return SyntaxKind.AndAssignmentExpression;
- case SyntaxKind.CaretEqualsToken: return SyntaxKind.ExclusiveOrAssignmentExpression;
- case SyntaxKind.LessThanLessThanEqualsToken: return SyntaxKind.LeftShiftAssignmentExpression;
- case SyntaxKind.GreaterThanGreaterThanEqualsToken: return SyntaxKind.SignedRightShiftAssignmentExpression;
- case SyntaxKind.GreaterThanGreaterThanGreaterThanEqualsToken: return SyntaxKind.UnsignedRightShiftAssignmentExpression;
- case SyntaxKind.PlusEqualsToken: return SyntaxKind.AddAssignmentExpression;
- case SyntaxKind.MinusEqualsToken: return SyntaxKind.SubtractAssignmentExpression;
- case SyntaxKind.AsteriskEqualsToken: return SyntaxKind.MultiplyAssignmentExpression;
- case SyntaxKind.SlashEqualsToken: return SyntaxKind.DivideAssignmentExpression;
- case SyntaxKind.PercentEqualsToken: return SyntaxKind.ModuloAssignmentExpression;
- case SyntaxKind.EqualsToken: return SyntaxKind.AssignmentExpression;
- case SyntaxKind.CommaToken: return SyntaxKind.CommaExpression;
- default: return SyntaxKind.None;
- }
- }
-
- export function getOperatorTokenFromBinaryExpression(tokenKind: SyntaxKind): SyntaxKind {
- switch (tokenKind) {
- case SyntaxKind.MultiplyExpression: return SyntaxKind.AsteriskToken;
- case SyntaxKind.DivideExpression: return SyntaxKind.SlashToken;
- case SyntaxKind.ModuloExpression: return SyntaxKind.PercentToken;
- case SyntaxKind.AddExpression: return SyntaxKind.PlusToken;
- case SyntaxKind.SubtractExpression: return SyntaxKind.MinusToken;
- case SyntaxKind.LeftShiftExpression: return SyntaxKind.LessThanLessThanToken;
- case SyntaxKind.SignedRightShiftExpression: return SyntaxKind.GreaterThanGreaterThanToken;
- case SyntaxKind.UnsignedRightShiftExpression: return SyntaxKind.GreaterThanGreaterThanGreaterThanToken;
- case SyntaxKind.LessThanExpression: return SyntaxKind.LessThanToken;
- case SyntaxKind.GreaterThanExpression: return SyntaxKind.GreaterThanToken;
- case SyntaxKind.LessThanOrEqualExpression: return SyntaxKind.LessThanEqualsToken;
- case SyntaxKind.GreaterThanOrEqualExpression: return SyntaxKind.GreaterThanEqualsToken;
- case SyntaxKind.InstanceOfExpression: return SyntaxKind.InstanceOfKeyword;
- case SyntaxKind.InExpression: return SyntaxKind.InKeyword;
- case SyntaxKind.EqualsWithTypeConversionExpression: return SyntaxKind.EqualsEqualsToken;
- case SyntaxKind.NotEqualsWithTypeConversionExpression: return SyntaxKind.ExclamationEqualsToken;
- case SyntaxKind.EqualsExpression: return SyntaxKind.EqualsEqualsEqualsToken;
- case SyntaxKind.NotEqualsExpression: return SyntaxKind.ExclamationEqualsEqualsToken;
- case SyntaxKind.BitwiseAndExpression: return SyntaxKind.AmpersandToken;
- case SyntaxKind.BitwiseExclusiveOrExpression: return SyntaxKind.CaretToken;
- case SyntaxKind.BitwiseOrExpression: return SyntaxKind.BarToken;
- case SyntaxKind.LogicalAndExpression: return SyntaxKind.AmpersandAmpersandToken;
- case SyntaxKind.LogicalOrExpression: return SyntaxKind.BarBarToken;
- case SyntaxKind.OrAssignmentExpression: return SyntaxKind.BarEqualsToken;
- case SyntaxKind.AndAssignmentExpression: return SyntaxKind.AmpersandEqualsToken;
- case SyntaxKind.ExclusiveOrAssignmentExpression: return SyntaxKind.CaretEqualsToken;
- case SyntaxKind.LeftShiftAssignmentExpression: return SyntaxKind.LessThanLessThanEqualsToken;
- case SyntaxKind.SignedRightShiftAssignmentExpression: return SyntaxKind.GreaterThanGreaterThanEqualsToken;
- case SyntaxKind.UnsignedRightShiftAssignmentExpression: return SyntaxKind.GreaterThanGreaterThanGreaterThanEqualsToken;
- case SyntaxKind.AddAssignmentExpression: return SyntaxKind.PlusEqualsToken;
- case SyntaxKind.SubtractAssignmentExpression: return SyntaxKind.MinusEqualsToken;
- case SyntaxKind.MultiplyAssignmentExpression: return SyntaxKind.AsteriskEqualsToken;
- case SyntaxKind.DivideAssignmentExpression: return SyntaxKind.SlashEqualsToken;
- case SyntaxKind.ModuloAssignmentExpression: return SyntaxKind.PercentEqualsToken;
- case SyntaxKind.AssignmentExpression: return SyntaxKind.EqualsToken;
- case SyntaxKind.CommaExpression: return SyntaxKind.CommaToken;
- default: return SyntaxKind.None;
+ case SyntaxKind.AsteriskToken:
+ case SyntaxKind.SlashToken:
+ case SyntaxKind.PercentToken:
+ case SyntaxKind.PlusToken:
+ case SyntaxKind.MinusToken:
+ case SyntaxKind.LessThanLessThanToken:
+ case SyntaxKind.GreaterThanGreaterThanToken:
+ case SyntaxKind.GreaterThanGreaterThanGreaterThanToken:
+ case SyntaxKind.LessThanToken:
+ case SyntaxKind.GreaterThanToken:
+ case SyntaxKind.LessThanEqualsToken:
+ case SyntaxKind.GreaterThanEqualsToken:
+ case SyntaxKind.InstanceOfKeyword:
+ case SyntaxKind.InKeyword:
+ case SyntaxKind.EqualsEqualsToken:
+ case SyntaxKind.ExclamationEqualsToken:
+ case SyntaxKind.EqualsEqualsEqualsToken:
+ case SyntaxKind.ExclamationEqualsEqualsToken:
+ case SyntaxKind.AmpersandToken:
+ case SyntaxKind.CaretToken:
+ case SyntaxKind.BarToken:
+ case SyntaxKind.AmpersandAmpersandToken:
+ case SyntaxKind.BarBarToken:
+ case SyntaxKind.BarEqualsToken:
+ case SyntaxKind.AmpersandEqualsToken:
+ case SyntaxKind.CaretEqualsToken:
+ case SyntaxKind.LessThanLessThanEqualsToken:
+ case SyntaxKind.GreaterThanGreaterThanEqualsToken:
+ case SyntaxKind.GreaterThanGreaterThanGreaterThanEqualsToken:
+ case SyntaxKind.PlusEqualsToken:
+ case SyntaxKind.MinusEqualsToken:
+ case SyntaxKind.AsteriskEqualsToken:
+ case SyntaxKind.SlashEqualsToken:
+ case SyntaxKind.PercentEqualsToken:
+ case SyntaxKind.EqualsToken:
+ case SyntaxKind.CommaToken:
+ return true;
+ default:
+ return false;
}
}
diff --git a/src/services/syntax/syntaxGenerator.ts b/src/services/syntax/syntaxGenerator.ts
index b6b3e51ecff..667b2563839 100644
--- a/src/services/syntax/syntaxGenerator.ts
+++ b/src/services/syntax/syntaxGenerator.ts
@@ -136,10 +136,9 @@ var definitions:ITypeDefinition[] = [
name: 'HeritageClauseSyntax',
baseType: 'ISyntaxNode',
children: [
- { name: 'extendsOrImplementsKeyword', isToken: true, tokenKinds: ['ExtendsKeyword', 'ImplementsKeyword'] },
+ { name: 'extendsOrImplementsKeyword', isToken: true },
{ name: 'typeNames', isSeparatedList: true, requiresAtLeastOneItem: true, elementType: 'INameSyntax' }
],
- syntaxKinds: ["ExtendsHeritageClause", "ImplementsHeritageClause"],
isTypeScriptSpecific: true
},
{
@@ -210,10 +209,9 @@ var definitions:ITypeDefinition[] = [
baseType: 'ISyntaxNode',
interfaces: ['IUnaryExpressionSyntax'],
children: [
- { name: 'operatorToken', isToken: true, tokenKinds: ['PlusPlusToken', 'MinusMinusToken', 'PlusToken', 'MinusToken', 'TildeToken', 'ExclamationToken'] },
+ { name: 'operatorToken', isToken: true },
{ name: 'operand', type: 'IUnaryExpressionSyntax' }
],
- syntaxKinds: ["PreIncrementExpression", "PreDecrementExpression", "PlusExpression", "NegateExpression", "BitwiseNotExpression", "LogicalNotExpression"],
},
{
name: 'ArrayLiteralExpressionSyntax',
@@ -435,9 +433,8 @@ var definitions:ITypeDefinition[] = [
interfaces: ['IPostfixExpressionSyntax'],
children: [
{ name: 'operand', type: 'ILeftHandSideExpressionSyntax' },
- { name: 'operatorToken', isToken: true, tokenKinds:['PlusPlusToken', 'MinusMinusToken'] }
+ { name: 'operatorToken', isToken: true }
],
- syntaxKinds: ["PostIncrementExpression", "PostDecrementExpression"],
},
{
name: 'ElementAccessExpressionSyntax',
@@ -475,27 +472,9 @@ var definitions:ITypeDefinition[] = [
interfaces: ['IExpressionSyntax'],
children: [
{ name: 'left', type: 'IExpressionSyntax' },
- { name: 'operatorToken', isToken: true,
- tokenKinds:['AsteriskToken', 'SlashToken', 'PercentToken', 'PlusToken', 'MinusToken', 'LessThanLessThanToken',
- 'GreaterThanGreaterThanToken', 'GreaterThanGreaterThanGreaterThanToken', 'LessThanToken',
- 'GreaterThanToken', 'LessThanEqualsToken', 'GreaterThanEqualsToken', 'InstanceOfKeyword',
- 'InKeyword', 'EqualsEqualsToken', 'ExclamationEqualsToken', 'EqualsEqualsEqualsToken',
- 'ExclamationEqualsEqualsToken', 'AmpersandToken', 'CaretToken', 'BarToken', 'AmpersandAmpersandToken',
- 'BarBarToken', 'BarEqualsToken', 'AmpersandEqualsToken', 'CaretEqualsToken', 'LessThanLessThanEqualsToken',
- 'GreaterThanGreaterThanEqualsToken', 'GreaterThanGreaterThanGreaterThanEqualsToken', 'PlusEqualsToken',
- 'MinusEqualsToken', 'AsteriskEqualsToken', 'SlashEqualsToken', 'PercentEqualsToken', 'EqualsToken',
- 'CommaToken'] },
+ { name: 'operatorToken', isToken: true },
{ name: 'right', type: 'IExpressionSyntax' }
],
- syntaxKinds: ["MultiplyExpression", "DivideExpression", "ModuloExpression", "AddExpression", "SubtractExpression", "LeftShiftExpression",
- "SignedRightShiftExpression", "UnsignedRightShiftExpression", "LessThanExpression",
- "GreaterThanExpression", "LessThanOrEqualExpression", "GreaterThanOrEqualExpression", "InstanceOfExpression",
- "InExpression", "EqualsWithTypeConversionExpression", "NotEqualsWithTypeConversionExpression", "EqualsExpression",
- "NotEqualsExpression", "BitwiseAndExpression", "BitwiseExclusiveOrExpression", "BitwiseOrExpression", "LogicalAndExpression",
- "LogicalOrExpression", "OrAssignmentExpression", "AndAssignmentExpression", "ExclusiveOrAssignmentExpression", "LeftShiftAssignmentExpression",
- "SignedRightShiftAssignmentExpression", "UnsignedRightShiftAssignmentExpression", "AddAssignmentExpression",
- "SubtractAssignmentExpression", "MultiplyAssignmentExpression", "DivideAssignmentExpression", "ModuloAssignmentExpression", "AssignmentExpression",
- "CommaExpression"]
},
{
name: 'ConditionalExpressionSyntax',
@@ -1994,20 +1973,6 @@ function generateNode(definition: ITypeDefinition, abstract: boolean): string {
}
result += " }\r\n";
-
- if (definition.name === "BinaryExpressionSyntax") {
- result += " public kind(): SyntaxKind { return SyntaxFacts.getBinaryExpressionFromOperatorToken(this.operatorToken.kind()); }\r\n";
- }
- else if (definition.name === "PrefixUnaryExpressionSyntax") {
- result += " public kind(): SyntaxKind { return SyntaxFacts.getPrefixUnaryExpressionFromOperatorToken(this.operatorToken.kind()); }\r\n";
- }
- else if (definition.name === "PostfixUnaryExpressionSyntax") {
- result += " public kind(): SyntaxKind { return SyntaxFacts.getPostfixUnaryExpressionFromOperatorToken(this.operatorToken.kind()); }\r\n";
- }
- else if (definition.name === "HeritageClauseSyntax") {
- result += " public kind(): SyntaxKind { return this.extendsOrImplementsKeyword.kind() === SyntaxKind.ExtendsKeyword ? SyntaxKind.ExtendsHeritageClause : SyntaxKind.ImplementsHeritageClause; }\r\n";
- }
-
result += " }";
return result;
}
@@ -2312,19 +2277,6 @@ function generateWalker(): string {
" public visitToken(token: ISyntaxToken): void {\r\n" +
" }\r\n" +
"\r\n" +
-" public visitNode(node: ISyntaxNode): void {\r\n" +
-" visitNodeOrToken(this, node);\r\n" +
-" }\r\n" +
-"\r\n" +
-" public visitNodeOrToken(nodeOrToken: ISyntaxNodeOrToken): void {\r\n" +
-" if (isToken(nodeOrToken)) { \r\n" +
-" this.visitToken(nodeOrToken);\r\n" +
-" }\r\n" +
-" else {\r\n" +
-" this.visitNode(nodeOrToken);\r\n" +
-" }\r\n" +
-" }\r\n" +
-"\r\n" +
" private visitOptionalToken(token: ISyntaxToken): void {\r\n" +
" if (token === undefined) {\r\n" +
" return;\r\n" +
@@ -2333,32 +2285,16 @@ function generateWalker(): string {
" this.visitToken(token);\r\n" +
" }\r\n" +
"\r\n" +
-" public visitOptionalNode(node: ISyntaxNode): void {\r\n" +
-" if (node === undefined) {\r\n" +
-" return;\r\n" +
-" }\r\n" +
-"\r\n" +
-" this.visitNode(node);\r\n" +
-" }\r\n" +
-"\r\n" +
-" public visitOptionalNodeOrToken(nodeOrToken: ISyntaxNodeOrToken): void {\r\n" +
-" if (nodeOrToken === undefined) {\r\n" +
-" return;\r\n" +
-" }\r\n" +
-"\r\n" +
-" this.visitNodeOrToken(nodeOrToken);\r\n" +
-" }\r\n" +
-"\r\n" +
" public visitList(list: ISyntaxNodeOrToken[]): void {\r\n" +
" for (var i = 0, n = list.length; i < n; i++) {\r\n" +
-" this.visitNodeOrToken(list[i]);\r\n" +
+" visitNodeOrToken(this, list[i]);\r\n" +
" }\r\n" +
" }\r\n" +
"\r\n" +
" public visitSeparatedList(list: ISyntaxNodeOrToken[]): void {\r\n" +
" for (var i = 0, n = childCount(list); i < n; i++) {\r\n" +
" var item = childAt(list, i);\r\n" +
-" this.visitNodeOrToken(item);\r\n" +
+" visitNodeOrToken(this, item);\r\n" +
" }\r\n" +
" }\r\n";
@@ -2386,20 +2322,10 @@ function generateWalker(): string {
result += " this.visitSeparatedList(node." + child.name + ");\r\n";
}
else if (isNodeOrToken(child)) {
- if (child.isOptional) {
- result += " this.visitOptionalNodeOrToken(node." + child.name + ");\r\n";
- }
- else {
- result += " this.visitNodeOrToken(node." + child.name + ");\r\n";
- }
+ result += " visitNodeOrToken(this, node." + child.name + ");\r\n";
}
else if (child.type !== "SyntaxKind") {
- if (child.isOptional) {
- result += " this.visitOptionalNode(node." + child.name + ");\r\n";
- }
- else {
- result += " this.visitNode(node." + child.name + ");\r\n";
- }
+ result += " visitNodeOrToken(this, node." + child.name + ");\r\n";
}
}
diff --git a/src/services/syntax/syntaxKind.ts b/src/services/syntax/syntaxKind.ts
index 8c617a23f3e..3f27168c678 100644
--- a/src/services/syntax/syntaxKind.ts
+++ b/src/services/syntax/syntaxKind.ts
@@ -209,54 +209,13 @@ module TypeScript {
WithStatement,
// Expressions
- PlusExpression,
- NegateExpression,
- BitwiseNotExpression,
- LogicalNotExpression,
- PreIncrementExpression,
- PreDecrementExpression,
+ PrefixUnaryExpression,
DeleteExpression,
TypeOfExpression,
VoidExpression,
- CommaExpression,
- AssignmentExpression,
- AddAssignmentExpression,
- SubtractAssignmentExpression,
- MultiplyAssignmentExpression,
- DivideAssignmentExpression,
- ModuloAssignmentExpression,
- AndAssignmentExpression,
- ExclusiveOrAssignmentExpression,
- OrAssignmentExpression,
- LeftShiftAssignmentExpression,
- SignedRightShiftAssignmentExpression,
- UnsignedRightShiftAssignmentExpression,
ConditionalExpression,
- LogicalOrExpression,
- LogicalAndExpression,
- BitwiseOrExpression,
- BitwiseExclusiveOrExpression,
- BitwiseAndExpression,
- EqualsWithTypeConversionExpression,
- NotEqualsWithTypeConversionExpression,
- EqualsExpression,
- NotEqualsExpression,
- LessThanExpression,
- GreaterThanExpression,
- LessThanOrEqualExpression,
- GreaterThanOrEqualExpression,
- InstanceOfExpression,
- InExpression,
- LeftShiftExpression,
- SignedRightShiftExpression,
- UnsignedRightShiftExpression,
- MultiplyExpression,
- DivideExpression,
- ModuloExpression,
- AddExpression,
- SubtractExpression,
- PostIncrementExpression,
- PostDecrementExpression,
+ BinaryExpression,
+ PostfixUnaryExpression,
MemberAccessExpression,
InvocationExpression,
ArrayLiteralExpression,
@@ -281,8 +240,7 @@ module TypeScript {
TypeParameterList,
// Clauses
- ExtendsHeritageClause,
- ImplementsHeritageClause,
+ HeritageClause,
EqualsValueClause,
CaseSwitchClause,
DefaultSwitchClause,
diff --git a/src/services/syntax/syntaxNodes.abstract.generated.ts b/src/services/syntax/syntaxNodes.abstract.generated.ts
index 3a7d39197b9..158ff7bf1c3 100644
--- a/src/services/syntax/syntaxNodes.abstract.generated.ts
+++ b/src/services/syntax/syntaxNodes.abstract.generated.ts
@@ -728,7 +728,6 @@ module TypeScript.Syntax.Abstract {
operatorToken.parent = this,
operand.parent = this;
}
- public kind(): SyntaxKind { return SyntaxFacts.getPrefixUnaryExpressionFromOperatorToken(this.operatorToken.kind()); }
}
export class DeleteExpressionSyntax extends SyntaxNode implements IUnaryExpressionSyntax {
public deleteKeyword: ISyntaxToken;
@@ -791,7 +790,6 @@ module TypeScript.Syntax.Abstract {
operatorToken.parent = this,
right.parent = this;
}
- public kind(): SyntaxKind { return SyntaxFacts.getBinaryExpressionFromOperatorToken(this.operatorToken.kind()); }
}
export class PostfixUnaryExpressionSyntax extends SyntaxNode implements IPostfixExpressionSyntax {
public operand: ILeftHandSideExpressionSyntax;
@@ -804,7 +802,6 @@ module TypeScript.Syntax.Abstract {
operand.parent = this,
operatorToken.parent = this;
}
- public kind(): SyntaxKind { return SyntaxFacts.getPostfixUnaryExpressionFromOperatorToken(this.operatorToken.kind()); }
}
export class MemberAccessExpressionSyntax extends SyntaxNode implements IMemberExpressionSyntax, ICallExpressionSyntax {
public expression: ILeftHandSideExpressionSyntax;
@@ -1041,7 +1038,6 @@ module TypeScript.Syntax.Abstract {
extendsOrImplementsKeyword.parent = this,
!isShared(typeNames) && (typeNames.parent = this);
}
- public kind(): SyntaxKind { return this.extendsOrImplementsKeyword.kind() === SyntaxKind.ExtendsKeyword ? SyntaxKind.ExtendsHeritageClause : SyntaxKind.ImplementsHeritageClause; }
}
export class EqualsValueClauseSyntax extends SyntaxNode {
public equalsToken: ISyntaxToken;
@@ -1225,5 +1221,5 @@ module TypeScript.Syntax.Abstract {
}
}
- (SourceUnitSyntax).prototype.__kind = SyntaxKind.SourceUnit, (QualifiedNameSyntax).prototype.__kind = SyntaxKind.QualifiedName, (ObjectTypeSyntax).prototype.__kind = SyntaxKind.ObjectType, (FunctionTypeSyntax).prototype.__kind = SyntaxKind.FunctionType, (ArrayTypeSyntax).prototype.__kind = SyntaxKind.ArrayType, (ConstructorTypeSyntax).prototype.__kind = SyntaxKind.ConstructorType, (GenericTypeSyntax).prototype.__kind = SyntaxKind.GenericType, (TypeQuerySyntax).prototype.__kind = SyntaxKind.TypeQuery, (TupleTypeSyntax).prototype.__kind = SyntaxKind.TupleType, (UnionTypeSyntax).prototype.__kind = SyntaxKind.UnionType, (ParenthesizedTypeSyntax).prototype.__kind = SyntaxKind.ParenthesizedType, (InterfaceDeclarationSyntax).prototype.__kind = SyntaxKind.InterfaceDeclaration, (FunctionDeclarationSyntax).prototype.__kind = SyntaxKind.FunctionDeclaration, (ModuleDeclarationSyntax).prototype.__kind = SyntaxKind.ModuleDeclaration, (ClassDeclarationSyntax).prototype.__kind = SyntaxKind.ClassDeclaration, (EnumDeclarationSyntax).prototype.__kind = SyntaxKind.EnumDeclaration, (ImportDeclarationSyntax).prototype.__kind = SyntaxKind.ImportDeclaration, (ExportAssignmentSyntax).prototype.__kind = SyntaxKind.ExportAssignment, (MemberFunctionDeclarationSyntax).prototype.__kind = SyntaxKind.MemberFunctionDeclaration, (MemberVariableDeclarationSyntax).prototype.__kind = SyntaxKind.MemberVariableDeclaration, (ConstructorDeclarationSyntax).prototype.__kind = SyntaxKind.ConstructorDeclaration, (IndexMemberDeclarationSyntax).prototype.__kind = SyntaxKind.IndexMemberDeclaration, (GetAccessorSyntax).prototype.__kind = SyntaxKind.GetAccessor, (SetAccessorSyntax).prototype.__kind = SyntaxKind.SetAccessor, (PropertySignatureSyntax).prototype.__kind = SyntaxKind.PropertySignature, (CallSignatureSyntax).prototype.__kind = SyntaxKind.CallSignature, (ConstructSignatureSyntax).prototype.__kind = SyntaxKind.ConstructSignature, (IndexSignatureSyntax).prototype.__kind = SyntaxKind.IndexSignature, (MethodSignatureSyntax).prototype.__kind = SyntaxKind.MethodSignature, (BlockSyntax).prototype.__kind = SyntaxKind.Block, (IfStatementSyntax).prototype.__kind = SyntaxKind.IfStatement, (VariableStatementSyntax).prototype.__kind = SyntaxKind.VariableStatement, (ExpressionStatementSyntax).prototype.__kind = SyntaxKind.ExpressionStatement, (ReturnStatementSyntax).prototype.__kind = SyntaxKind.ReturnStatement, (SwitchStatementSyntax).prototype.__kind = SyntaxKind.SwitchStatement, (BreakStatementSyntax).prototype.__kind = SyntaxKind.BreakStatement, (ContinueStatementSyntax).prototype.__kind = SyntaxKind.ContinueStatement, (ForStatementSyntax).prototype.__kind = SyntaxKind.ForStatement, (ForInStatementSyntax).prototype.__kind = SyntaxKind.ForInStatement, (EmptyStatementSyntax).prototype.__kind = SyntaxKind.EmptyStatement, (ThrowStatementSyntax).prototype.__kind = SyntaxKind.ThrowStatement, (WhileStatementSyntax).prototype.__kind = SyntaxKind.WhileStatement, (TryStatementSyntax).prototype.__kind = SyntaxKind.TryStatement, (LabeledStatementSyntax).prototype.__kind = SyntaxKind.LabeledStatement, (DoStatementSyntax).prototype.__kind = SyntaxKind.DoStatement, (DebuggerStatementSyntax).prototype.__kind = SyntaxKind.DebuggerStatement, (WithStatementSyntax).prototype.__kind = SyntaxKind.WithStatement, (DeleteExpressionSyntax).prototype.__kind = SyntaxKind.DeleteExpression, (TypeOfExpressionSyntax).prototype.__kind = SyntaxKind.TypeOfExpression, (VoidExpressionSyntax).prototype.__kind = SyntaxKind.VoidExpression, (ConditionalExpressionSyntax).prototype.__kind = SyntaxKind.ConditionalExpression, (MemberAccessExpressionSyntax).prototype.__kind = SyntaxKind.MemberAccessExpression, (InvocationExpressionSyntax).prototype.__kind = SyntaxKind.InvocationExpression, (ArrayLiteralExpressionSyntax).prototype.__kind = SyntaxKind.ArrayLiteralExpression, (ObjectLiteralExpressionSyntax).prototype.__kind = SyntaxKind.ObjectLiteralExpression, (ObjectCreationExpressionSyntax).prototype.__kind = SyntaxKind.ObjectCreationExpression, (ParenthesizedExpressionSyntax).prototype.__kind = SyntaxKind.ParenthesizedExpression, (ParenthesizedArrowFunctionExpressionSyntax).prototype.__kind = SyntaxKind.ParenthesizedArrowFunctionExpression, (SimpleArrowFunctionExpressionSyntax).prototype.__kind = SyntaxKind.SimpleArrowFunctionExpression, (CastExpressionSyntax).prototype.__kind = SyntaxKind.CastExpression, (ElementAccessExpressionSyntax).prototype.__kind = SyntaxKind.ElementAccessExpression, (FunctionExpressionSyntax).prototype.__kind = SyntaxKind.FunctionExpression, (OmittedExpressionSyntax).prototype.__kind = SyntaxKind.OmittedExpression, (VariableDeclarationSyntax).prototype.__kind = SyntaxKind.VariableDeclaration, (VariableDeclaratorSyntax).prototype.__kind = SyntaxKind.VariableDeclarator, (ArgumentListSyntax).prototype.__kind = SyntaxKind.ArgumentList, (ParameterListSyntax).prototype.__kind = SyntaxKind.ParameterList, (TypeArgumentListSyntax).prototype.__kind = SyntaxKind.TypeArgumentList, (TypeParameterListSyntax).prototype.__kind = SyntaxKind.TypeParameterList, (EqualsValueClauseSyntax).prototype.__kind = SyntaxKind.EqualsValueClause, (CaseSwitchClauseSyntax).prototype.__kind = SyntaxKind.CaseSwitchClause, (DefaultSwitchClauseSyntax).prototype.__kind = SyntaxKind.DefaultSwitchClause, (ElseClauseSyntax).prototype.__kind = SyntaxKind.ElseClause, (CatchClauseSyntax).prototype.__kind = SyntaxKind.CatchClause, (FinallyClauseSyntax).prototype.__kind = SyntaxKind.FinallyClause, (TypeParameterSyntax).prototype.__kind = SyntaxKind.TypeParameter, (ConstraintSyntax).prototype.__kind = SyntaxKind.Constraint, (SimplePropertyAssignmentSyntax).prototype.__kind = SyntaxKind.SimplePropertyAssignment, (FunctionPropertyAssignmentSyntax).prototype.__kind = SyntaxKind.FunctionPropertyAssignment, (ParameterSyntax).prototype.__kind = SyntaxKind.Parameter, (EnumElementSyntax).prototype.__kind = SyntaxKind.EnumElement, (TypeAnnotationSyntax).prototype.__kind = SyntaxKind.TypeAnnotation, (ExternalModuleReferenceSyntax).prototype.__kind = SyntaxKind.ExternalModuleReference, (ModuleNameModuleReferenceSyntax).prototype.__kind = SyntaxKind.ModuleNameModuleReference;
+ (SourceUnitSyntax).prototype.__kind = SyntaxKind.SourceUnit, (QualifiedNameSyntax).prototype.__kind = SyntaxKind.QualifiedName, (ObjectTypeSyntax).prototype.__kind = SyntaxKind.ObjectType, (FunctionTypeSyntax).prototype.__kind = SyntaxKind.FunctionType, (ArrayTypeSyntax).prototype.__kind = SyntaxKind.ArrayType, (ConstructorTypeSyntax).prototype.__kind = SyntaxKind.ConstructorType, (GenericTypeSyntax).prototype.__kind = SyntaxKind.GenericType, (TypeQuerySyntax).prototype.__kind = SyntaxKind.TypeQuery, (TupleTypeSyntax).prototype.__kind = SyntaxKind.TupleType, (UnionTypeSyntax).prototype.__kind = SyntaxKind.UnionType, (ParenthesizedTypeSyntax).prototype.__kind = SyntaxKind.ParenthesizedType, (InterfaceDeclarationSyntax).prototype.__kind = SyntaxKind.InterfaceDeclaration, (FunctionDeclarationSyntax).prototype.__kind = SyntaxKind.FunctionDeclaration, (ModuleDeclarationSyntax).prototype.__kind = SyntaxKind.ModuleDeclaration, (ClassDeclarationSyntax).prototype.__kind = SyntaxKind.ClassDeclaration, (EnumDeclarationSyntax).prototype.__kind = SyntaxKind.EnumDeclaration, (ImportDeclarationSyntax).prototype.__kind = SyntaxKind.ImportDeclaration, (ExportAssignmentSyntax).prototype.__kind = SyntaxKind.ExportAssignment, (MemberFunctionDeclarationSyntax).prototype.__kind = SyntaxKind.MemberFunctionDeclaration, (MemberVariableDeclarationSyntax).prototype.__kind = SyntaxKind.MemberVariableDeclaration, (ConstructorDeclarationSyntax).prototype.__kind = SyntaxKind.ConstructorDeclaration, (IndexMemberDeclarationSyntax).prototype.__kind = SyntaxKind.IndexMemberDeclaration, (GetAccessorSyntax).prototype.__kind = SyntaxKind.GetAccessor, (SetAccessorSyntax).prototype.__kind = SyntaxKind.SetAccessor, (PropertySignatureSyntax).prototype.__kind = SyntaxKind.PropertySignature, (CallSignatureSyntax).prototype.__kind = SyntaxKind.CallSignature, (ConstructSignatureSyntax).prototype.__kind = SyntaxKind.ConstructSignature, (IndexSignatureSyntax).prototype.__kind = SyntaxKind.IndexSignature, (MethodSignatureSyntax).prototype.__kind = SyntaxKind.MethodSignature, (BlockSyntax).prototype.__kind = SyntaxKind.Block, (IfStatementSyntax).prototype.__kind = SyntaxKind.IfStatement, (VariableStatementSyntax).prototype.__kind = SyntaxKind.VariableStatement, (ExpressionStatementSyntax).prototype.__kind = SyntaxKind.ExpressionStatement, (ReturnStatementSyntax).prototype.__kind = SyntaxKind.ReturnStatement, (SwitchStatementSyntax).prototype.__kind = SyntaxKind.SwitchStatement, (BreakStatementSyntax).prototype.__kind = SyntaxKind.BreakStatement, (ContinueStatementSyntax).prototype.__kind = SyntaxKind.ContinueStatement, (ForStatementSyntax).prototype.__kind = SyntaxKind.ForStatement, (ForInStatementSyntax).prototype.__kind = SyntaxKind.ForInStatement, (EmptyStatementSyntax).prototype.__kind = SyntaxKind.EmptyStatement, (ThrowStatementSyntax).prototype.__kind = SyntaxKind.ThrowStatement, (WhileStatementSyntax).prototype.__kind = SyntaxKind.WhileStatement, (TryStatementSyntax).prototype.__kind = SyntaxKind.TryStatement, (LabeledStatementSyntax).prototype.__kind = SyntaxKind.LabeledStatement, (DoStatementSyntax).prototype.__kind = SyntaxKind.DoStatement, (DebuggerStatementSyntax).prototype.__kind = SyntaxKind.DebuggerStatement, (WithStatementSyntax).prototype.__kind = SyntaxKind.WithStatement, (PrefixUnaryExpressionSyntax).prototype.__kind = SyntaxKind.PrefixUnaryExpression, (DeleteExpressionSyntax).prototype.__kind = SyntaxKind.DeleteExpression, (TypeOfExpressionSyntax).prototype.__kind = SyntaxKind.TypeOfExpression, (VoidExpressionSyntax).prototype.__kind = SyntaxKind.VoidExpression, (ConditionalExpressionSyntax).prototype.__kind = SyntaxKind.ConditionalExpression, (BinaryExpressionSyntax).prototype.__kind = SyntaxKind.BinaryExpression, (PostfixUnaryExpressionSyntax).prototype.__kind = SyntaxKind.PostfixUnaryExpression, (MemberAccessExpressionSyntax).prototype.__kind = SyntaxKind.MemberAccessExpression, (InvocationExpressionSyntax).prototype.__kind = SyntaxKind.InvocationExpression, (ArrayLiteralExpressionSyntax).prototype.__kind = SyntaxKind.ArrayLiteralExpression, (ObjectLiteralExpressionSyntax).prototype.__kind = SyntaxKind.ObjectLiteralExpression, (ObjectCreationExpressionSyntax).prototype.__kind = SyntaxKind.ObjectCreationExpression, (ParenthesizedExpressionSyntax).prototype.__kind = SyntaxKind.ParenthesizedExpression, (ParenthesizedArrowFunctionExpressionSyntax).prototype.__kind = SyntaxKind.ParenthesizedArrowFunctionExpression, (SimpleArrowFunctionExpressionSyntax).prototype.__kind = SyntaxKind.SimpleArrowFunctionExpression, (CastExpressionSyntax).prototype.__kind = SyntaxKind.CastExpression, (ElementAccessExpressionSyntax).prototype.__kind = SyntaxKind.ElementAccessExpression, (FunctionExpressionSyntax).prototype.__kind = SyntaxKind.FunctionExpression, (OmittedExpressionSyntax).prototype.__kind = SyntaxKind.OmittedExpression, (VariableDeclarationSyntax).prototype.__kind = SyntaxKind.VariableDeclaration, (VariableDeclaratorSyntax).prototype.__kind = SyntaxKind.VariableDeclarator, (ArgumentListSyntax).prototype.__kind = SyntaxKind.ArgumentList, (ParameterListSyntax).prototype.__kind = SyntaxKind.ParameterList, (TypeArgumentListSyntax).prototype.__kind = SyntaxKind.TypeArgumentList, (TypeParameterListSyntax).prototype.__kind = SyntaxKind.TypeParameterList, (HeritageClauseSyntax).prototype.__kind = SyntaxKind.HeritageClause, (EqualsValueClauseSyntax).prototype.__kind = SyntaxKind.EqualsValueClause, (CaseSwitchClauseSyntax).prototype.__kind = SyntaxKind.CaseSwitchClause, (DefaultSwitchClauseSyntax).prototype.__kind = SyntaxKind.DefaultSwitchClause, (ElseClauseSyntax).prototype.__kind = SyntaxKind.ElseClause, (CatchClauseSyntax).prototype.__kind = SyntaxKind.CatchClause, (FinallyClauseSyntax).prototype.__kind = SyntaxKind.FinallyClause, (TypeParameterSyntax).prototype.__kind = SyntaxKind.TypeParameter, (ConstraintSyntax).prototype.__kind = SyntaxKind.Constraint, (SimplePropertyAssignmentSyntax).prototype.__kind = SyntaxKind.SimplePropertyAssignment, (FunctionPropertyAssignmentSyntax).prototype.__kind = SyntaxKind.FunctionPropertyAssignment, (ParameterSyntax).prototype.__kind = SyntaxKind.Parameter, (EnumElementSyntax).prototype.__kind = SyntaxKind.EnumElement, (TypeAnnotationSyntax).prototype.__kind = SyntaxKind.TypeAnnotation, (ExternalModuleReferenceSyntax).prototype.__kind = SyntaxKind.ExternalModuleReference, (ModuleNameModuleReferenceSyntax).prototype.__kind = SyntaxKind.ModuleNameModuleReference;
}
\ No newline at end of file
diff --git a/src/services/syntax/syntaxNodes.concrete.generated.ts b/src/services/syntax/syntaxNodes.concrete.generated.ts
index 727380c6eb1..0f119267315 100644
--- a/src/services/syntax/syntaxNodes.concrete.generated.ts
+++ b/src/services/syntax/syntaxNodes.concrete.generated.ts
@@ -884,7 +884,6 @@ module TypeScript.Syntax.Concrete {
operatorToken.parent = this,
operand.parent = this;
}
- public kind(): SyntaxKind { return SyntaxFacts.getPrefixUnaryExpressionFromOperatorToken(this.operatorToken.kind()); }
}
export class DeleteExpressionSyntax extends SyntaxNode implements IUnaryExpressionSyntax {
public deleteKeyword: ISyntaxToken;
@@ -957,7 +956,6 @@ module TypeScript.Syntax.Concrete {
operatorToken.parent = this,
right.parent = this;
}
- public kind(): SyntaxKind { return SyntaxFacts.getBinaryExpressionFromOperatorToken(this.operatorToken.kind()); }
}
export class PostfixUnaryExpressionSyntax extends SyntaxNode implements IPostfixExpressionSyntax {
public operand: ILeftHandSideExpressionSyntax;
@@ -970,7 +968,6 @@ module TypeScript.Syntax.Concrete {
operand.parent = this,
operatorToken.parent = this;
}
- public kind(): SyntaxKind { return SyntaxFacts.getPostfixUnaryExpressionFromOperatorToken(this.operatorToken.kind()); }
}
export class MemberAccessExpressionSyntax extends SyntaxNode implements IMemberExpressionSyntax, ICallExpressionSyntax {
public expression: ILeftHandSideExpressionSyntax;
@@ -1249,7 +1246,6 @@ module TypeScript.Syntax.Concrete {
extendsOrImplementsKeyword.parent = this,
!isShared(typeNames) && (typeNames.parent = this);
}
- public kind(): SyntaxKind { return this.extendsOrImplementsKeyword.kind() === SyntaxKind.ExtendsKeyword ? SyntaxKind.ExtendsHeritageClause : SyntaxKind.ImplementsHeritageClause; }
}
export class EqualsValueClauseSyntax extends SyntaxNode {
public equalsToken: ISyntaxToken;
@@ -1465,5 +1461,5 @@ module TypeScript.Syntax.Concrete {
}
}
- (SourceUnitSyntax).prototype.__kind = SyntaxKind.SourceUnit, (QualifiedNameSyntax).prototype.__kind = SyntaxKind.QualifiedName, (ObjectTypeSyntax).prototype.__kind = SyntaxKind.ObjectType, (FunctionTypeSyntax).prototype.__kind = SyntaxKind.FunctionType, (ArrayTypeSyntax).prototype.__kind = SyntaxKind.ArrayType, (ConstructorTypeSyntax).prototype.__kind = SyntaxKind.ConstructorType, (GenericTypeSyntax).prototype.__kind = SyntaxKind.GenericType, (TypeQuerySyntax).prototype.__kind = SyntaxKind.TypeQuery, (TupleTypeSyntax).prototype.__kind = SyntaxKind.TupleType, (UnionTypeSyntax).prototype.__kind = SyntaxKind.UnionType, (ParenthesizedTypeSyntax).prototype.__kind = SyntaxKind.ParenthesizedType, (InterfaceDeclarationSyntax).prototype.__kind = SyntaxKind.InterfaceDeclaration, (FunctionDeclarationSyntax).prototype.__kind = SyntaxKind.FunctionDeclaration, (ModuleDeclarationSyntax).prototype.__kind = SyntaxKind.ModuleDeclaration, (ClassDeclarationSyntax).prototype.__kind = SyntaxKind.ClassDeclaration, (EnumDeclarationSyntax).prototype.__kind = SyntaxKind.EnumDeclaration, (ImportDeclarationSyntax).prototype.__kind = SyntaxKind.ImportDeclaration, (ExportAssignmentSyntax).prototype.__kind = SyntaxKind.ExportAssignment, (MemberFunctionDeclarationSyntax).prototype.__kind = SyntaxKind.MemberFunctionDeclaration, (MemberVariableDeclarationSyntax).prototype.__kind = SyntaxKind.MemberVariableDeclaration, (ConstructorDeclarationSyntax).prototype.__kind = SyntaxKind.ConstructorDeclaration, (IndexMemberDeclarationSyntax).prototype.__kind = SyntaxKind.IndexMemberDeclaration, (GetAccessorSyntax).prototype.__kind = SyntaxKind.GetAccessor, (SetAccessorSyntax).prototype.__kind = SyntaxKind.SetAccessor, (PropertySignatureSyntax).prototype.__kind = SyntaxKind.PropertySignature, (CallSignatureSyntax).prototype.__kind = SyntaxKind.CallSignature, (ConstructSignatureSyntax).prototype.__kind = SyntaxKind.ConstructSignature, (IndexSignatureSyntax).prototype.__kind = SyntaxKind.IndexSignature, (MethodSignatureSyntax).prototype.__kind = SyntaxKind.MethodSignature, (BlockSyntax).prototype.__kind = SyntaxKind.Block, (IfStatementSyntax).prototype.__kind = SyntaxKind.IfStatement, (VariableStatementSyntax).prototype.__kind = SyntaxKind.VariableStatement, (ExpressionStatementSyntax).prototype.__kind = SyntaxKind.ExpressionStatement, (ReturnStatementSyntax).prototype.__kind = SyntaxKind.ReturnStatement, (SwitchStatementSyntax).prototype.__kind = SyntaxKind.SwitchStatement, (BreakStatementSyntax).prototype.__kind = SyntaxKind.BreakStatement, (ContinueStatementSyntax).prototype.__kind = SyntaxKind.ContinueStatement, (ForStatementSyntax).prototype.__kind = SyntaxKind.ForStatement, (ForInStatementSyntax).prototype.__kind = SyntaxKind.ForInStatement, (EmptyStatementSyntax).prototype.__kind = SyntaxKind.EmptyStatement, (ThrowStatementSyntax).prototype.__kind = SyntaxKind.ThrowStatement, (WhileStatementSyntax).prototype.__kind = SyntaxKind.WhileStatement, (TryStatementSyntax).prototype.__kind = SyntaxKind.TryStatement, (LabeledStatementSyntax).prototype.__kind = SyntaxKind.LabeledStatement, (DoStatementSyntax).prototype.__kind = SyntaxKind.DoStatement, (DebuggerStatementSyntax).prototype.__kind = SyntaxKind.DebuggerStatement, (WithStatementSyntax).prototype.__kind = SyntaxKind.WithStatement, (DeleteExpressionSyntax).prototype.__kind = SyntaxKind.DeleteExpression, (TypeOfExpressionSyntax).prototype.__kind = SyntaxKind.TypeOfExpression, (VoidExpressionSyntax).prototype.__kind = SyntaxKind.VoidExpression, (ConditionalExpressionSyntax).prototype.__kind = SyntaxKind.ConditionalExpression, (MemberAccessExpressionSyntax).prototype.__kind = SyntaxKind.MemberAccessExpression, (InvocationExpressionSyntax).prototype.__kind = SyntaxKind.InvocationExpression, (ArrayLiteralExpressionSyntax).prototype.__kind = SyntaxKind.ArrayLiteralExpression, (ObjectLiteralExpressionSyntax).prototype.__kind = SyntaxKind.ObjectLiteralExpression, (ObjectCreationExpressionSyntax).prototype.__kind = SyntaxKind.ObjectCreationExpression, (ParenthesizedExpressionSyntax).prototype.__kind = SyntaxKind.ParenthesizedExpression, (