From ba2bdc41240eeb94ba9ae8fe7df4fbaad1cb42fc Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Tue, 4 Nov 2014 20:52:23 -0800 Subject: [PATCH] Add missing brands to the syntax interfaces. --- src/services/syntax/parser.ts | 2 +- src/services/syntax/prettyPrinter.ts | 2 +- src/services/syntax/scanner.ts | 4 +-- src/services/syntax/syntaxElement.ts | 6 ++++ src/services/syntax/syntaxGenerator.ts | 48 -------------------------- src/services/syntax/syntaxToken.ts | 8 +++-- 6 files changed, 15 insertions(+), 55 deletions(-) diff --git a/src/services/syntax/parser.ts b/src/services/syntax/parser.ts index eb23de608a6..87b1f8efa31 100644 --- a/src/services/syntax/parser.ts +++ b/src/services/syntax/parser.ts @@ -1134,7 +1134,7 @@ module TypeScript.Parser { return isPropertyName(peekToken(modifierCount + 1), inErrorRecovery); } - function parseAccessor(checkForStrictMode: boolean): ISyntaxNode { + function parseAccessor(checkForStrictMode: boolean): IPropertyAssignmentSyntax { var modifiers = parseModifiers(); var _currenToken = currentToken(); var tokenKind = _currenToken.kind; diff --git a/src/services/syntax/prettyPrinter.ts b/src/services/syntax/prettyPrinter.ts index efee0a9e294..d5fe308a5fb 100644 --- a/src/services/syntax/prettyPrinter.ts +++ b/src/services/syntax/prettyPrinter.ts @@ -35,7 +35,7 @@ module TypeScript.PrettyPrinter { return 1; } - private newLineCountBetweenStatements(element1: IClassElementSyntax, element2: IClassElementSyntax): number { + private newLineCountBetweenStatements(element1: IStatementSyntax, element2: IStatementSyntax): number { if (!element1 || !element2) { return 0; } diff --git a/src/services/syntax/scanner.ts b/src/services/syntax/scanner.ts index d3316dc1371..17d37f761fc 100644 --- a/src/services/syntax/scanner.ts +++ b/src/services/syntax/scanner.ts @@ -219,7 +219,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 _primaryExpressionBrand: any; public _memberExpressionBrand: any; public _leftHandSideExpressionBrand: any; public _postfixExpressionBrand: any; public _unaryExpressionBrand: any; public _expressionBrand: any; public _typeBrand: any; public _nameBrand: any; public _syntaxNodeOrTokenBrand: any; public parent: ISyntaxElement; public childCount: number; @@ -254,7 +254,7 @@ module TypeScript.Scanner { FixedWidthTokenWithNoTrivia.prototype.childCount = 0; 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 _primaryExpressionBrand: any; public _memberExpressionBrand: any; public _leftHandSideExpressionBrand: any; public _postfixExpressionBrand: any; public _unaryExpressionBrand: any; public _expressionBrand: any; public _typeBrand: any; public _nameBrand: any; public _syntaxNodeOrTokenBrand: any; public parent: ISyntaxElement; public childCount: number; diff --git a/src/services/syntax/syntaxElement.ts b/src/services/syntax/syntaxElement.ts index 0aa91d0aef0..c3392c9d418 100644 --- a/src/services/syntax/syntaxElement.ts +++ b/src/services/syntax/syntaxElement.ts @@ -431,6 +431,7 @@ module TypeScript { } export interface IModuleElementSyntax extends ISyntaxNode { + _moduleElementBrand: any; } export interface IStatementSyntax extends IModuleElementSyntax { @@ -438,15 +439,19 @@ module TypeScript { } export interface ITypeMemberSyntax extends ISyntaxNode { + _typeMemberBrand: any; } export interface IClassElementSyntax extends ISyntaxNode { + _classElementBrand: any; } export interface IMemberDeclarationSyntax extends IClassElementSyntax { + _memberDeclarationBrand: any; } export interface IPropertyAssignmentSyntax extends IClassElementSyntax { + _propertyAssignmentBrand: any; } export interface ISwitchClauseSyntax extends ISyntaxNode { @@ -488,5 +493,6 @@ module TypeScript { } export interface INameSyntax extends ITypeSyntax { + _nameBrand: any; } } \ No newline at end of file diff --git a/src/services/syntax/syntaxGenerator.ts b/src/services/syntax/syntaxGenerator.ts index 6d110c2a18f..af9284ff851 100644 --- a/src/services/syntax/syntaxGenerator.ts +++ b/src/services/syntax/syntaxGenerator.ts @@ -1055,54 +1055,6 @@ function getSafeName(child: IMemberDefinition) { return child.name; } -function generateBrands(definition: ITypeDefinition, accessibility: boolean): string { - var properties = ""; - - var types: string[] = []; - if (definition.interfaces) { - var ifaces = definition.interfaces.slice(0); - var i: number; - for (i = 0; i < ifaces.length; i++) { - var current = ifaces[i]; - - while (current !== undefined) { - if (!TypeScript.ArrayUtilities.contains(ifaces, current)) { - ifaces.push(current); - } - - current = interfaces[current]; - } - } - - for (i = 0; i < ifaces.length; i++) { - var type = ifaces[i]; - type = getStringWithoutSuffix(type); - if (isInterface(type)) { - type = "_" + type.substr(1, 1).toLowerCase() + type.substr(2) + "Brand"; - } - - types.push(type); - } - } - - types.push("_syntaxNodeOrTokenBrand"); - if (types.length > 0) { - properties += " "; - - for (var i = 0; i < types.length; i++) { - if (accessibility) { - properties += " public "; - } - - properties += types[i] + ": any;"; - } - - properties += "\r\n"; - } - - return properties; -} - function generateConstructorFunction(definition: ITypeDefinition) { var result = " export var " + definition.name + ": " + getNameWithoutSuffix(definition) + "Constructor = function(data: number"; diff --git a/src/services/syntax/syntaxToken.ts b/src/services/syntax/syntaxToken.ts index 0251fd6bfe4..66208c7f5e3 100644 --- a/src/services/syntax/syntaxToken.ts +++ b/src/services/syntax/syntaxToken.ts @@ -304,7 +304,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 _primaryExpressionBrand: any; public _memberExpressionBrand: any; public _leftHandSideExpressionBrand: any; public _postfixExpressionBrand: any; public _unaryExpressionBrand: any; public _expressionBrand: any; public _typeBrand: any; public _nameBrand: any; public _syntaxNodeOrTokenBrand: any; public parent: ISyntaxElement; public childCount: number; @@ -418,13 +418,14 @@ module TypeScript.Syntax { EmptyToken.prototype.childCount = 0; class RealizedToken implements ISyntaxToken { + public _primaryExpressionBrand: any; public _memberExpressionBrand: any; public _leftHandSideExpressionBrand: any; public _postfixExpressionBrand: any; public _unaryExpressionBrand: any; public _expressionBrand: any; public _typeBrand: any; public _nameBrand: any; public _syntaxNodeOrTokenBrand: any; + private _fullStart: number; private _isKeywordConvertedToIdentifier: boolean; private _leadingTrivia: ISyntaxTriviaList; private _text: string; 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; public childCount: number; @@ -490,7 +491,8 @@ module TypeScript.Syntax { RealizedToken.prototype.childCount = 0; 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 _primaryExpressionBrand: any; public _memberExpressionBrand: any; public _leftHandSideExpressionBrand: any; public _postfixExpressionBrand: any; public _unaryExpressionBrand: any; public _expressionBrand: any; public _typeBrand: any; public _nameBrand: any; public _syntaxNodeOrTokenBrand: any; + public parent: ISyntaxElement; public kind: SyntaxKind; public childCount: number;