diff --git a/src/services/syntax/scanner.ts b/src/services/syntax/scanner.ts index be2abd11b4f..759559672c4 100644 --- a/src/services/syntax/scanner.ts +++ b/src/services/syntax/scanner.ts @@ -252,6 +252,7 @@ module TypeScript.Scanner { class FixedWidthTokenWithNoTrivia implements ISyntaxToken { public _primaryExpressionBrand: any; public _memberExpressionBrand: any; public _leftHandSideExpressionBrand: any; public _postfixExpressionBrand: any; public _unaryExpressionBrand: any; public _expressionBrand: any; public _typeBrand: any; public _syntaxNodeOrTokenBrand: any; + public parent: ISyntaxElement; constructor(private _packedData: number) { } @@ -286,8 +287,10 @@ module TypeScript.Scanner { class LargeScannerToken implements ISyntaxToken { public _primaryExpressionBrand: any; public _memberExpressionBrand: any; public _leftHandSideExpressionBrand: any; public _postfixExpressionBrand: any; public _unaryExpressionBrand: any; public _expressionBrand: any; public _typeBrand: any; public _syntaxNodeOrTokenBrand: any; + public parent: ISyntaxElement; private cachedText: string; + constructor(private _packedFullStartAndInfo: number, private _packedFullWidthAndKind: number, cachedText: string) { if (cachedText !== undefined) { this.cachedText = cachedText; diff --git a/src/services/syntax/syntaxElement.ts b/src/services/syntax/syntaxElement.ts index 78418950a57..6b6dc7d4a7a 100644 --- a/src/services/syntax/syntaxElement.ts +++ b/src/services/syntax/syntaxElement.ts @@ -367,7 +367,7 @@ module TypeScript { export interface ISyntaxElement { kind(): SyntaxKind; - parent?: ISyntaxElement; + parent: ISyntaxElement; } export interface ISyntaxNode extends ISyntaxNodeOrToken { diff --git a/src/services/syntax/syntaxToken.ts b/src/services/syntax/syntaxToken.ts index 28045ddc37e..876316bc995 100644 --- a/src/services/syntax/syntaxToken.ts +++ b/src/services/syntax/syntaxToken.ts @@ -305,6 +305,7 @@ module TypeScript.Syntax { class EmptyToken implements ISyntaxToken { public _primaryExpressionBrand: any; public _memberExpressionBrand: any; public _leftHandSideExpressionBrand: any; public _postfixExpressionBrand: any; public _unaryExpressionBrand: any; public _expressionBrand: any; public _typeBrand: any; public _syntaxNodeOrTokenBrand: any; + public parent: ISyntaxElement; constructor(private _kind: SyntaxKind) { } @@ -428,6 +429,7 @@ module TypeScript.Syntax { private _trailingTrivia: ISyntaxTriviaList; public _primaryExpressionBrand: any; public _memberExpressionBrand: any; public _leftHandSideExpressionBrand: any; public _postfixExpressionBrand: any; public _unaryExpressionBrand: any; public _expressionBrand: any; public _typeBrand: any; public _syntaxNodeOrTokenBrand: any; + public parent: ISyntaxElement; constructor(fullStart: number, kind: SyntaxKind, @@ -497,6 +499,7 @@ module TypeScript.Syntax { class ConvertedKeywordToken implements ISyntaxToken { public _primaryExpressionBrand: any; public _memberExpressionBrand: any; public _leftHandSideExpressionBrand: any; public _postfixExpressionBrand: any; public _unaryExpressionBrand: any; public _expressionBrand: any; public _typeBrand: any; public _syntaxNodeOrTokenBrand: any; + public parent: ISyntaxElement; constructor(private underlyingToken: ISyntaxToken) { }