From 0e9134788a2cbf2ea1aa2f475237eab100c34953 Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Thu, 18 Sep 2014 15:37:16 -0700 Subject: [PATCH] Port fidelity changes to github. --- src/services/compiler/astWalker.ts | 5 ++ .../syntax/defaultSyntaxVisitor.generated.ts | 4 ++ src/services/syntax/parser.ts | 49 ++++++++++++++++--- src/services/syntax/prettyPrinter.ts | 6 +++ src/services/syntax/syntaxFacts2.ts | 11 +++++ src/services/syntax/syntaxGenerator.ts | 11 +++++ src/services/syntax/syntaxKind.ts | 1 + .../syntax/syntaxNodes.abstract.generated.ts | 13 ++++- .../syntax/syntaxNodes.concrete.generated.ts | 17 ++++++- .../syntaxNodes.interfaces.generated.ts | 8 ++- src/services/syntax/syntaxTree.ts | 19 ++++--- .../syntax/syntaxVisitor.generated.ts | 2 + src/services/syntax/syntaxWalker.generated.ts | 6 +++ .../baselines/reference/Protected1.errors.txt | 11 +++++ .../baselines/reference/Protected2.errors.txt | 11 +++++ .../baselines/reference/Protected3.errors.txt | 24 +++++++++ .../baselines/reference/Protected4.errors.txt | 24 +++++++++ .../baselines/reference/Protected5.errors.txt | 24 +++++++++ .../baselines/reference/Protected6.errors.txt | 27 ++++++++++ .../baselines/reference/Protected7.errors.txt | 24 +++++++++ tests/baselines/reference/Protected8.js | 7 +++ tests/baselines/reference/Protected8.types | 10 ++++ .../baselines/reference/Protected9.errors.txt | 12 +++++ tests/baselines/reference/TupleType1.js | 5 ++ tests/baselines/reference/TupleType1.types | 4 ++ tests/baselines/reference/TupleType2.js | 5 ++ tests/baselines/reference/TupleType2.types | 4 ++ .../baselines/reference/TupleType3.errors.txt | 7 +++ .../baselines/reference/TupleType4.errors.txt | 7 +++ .../baselines/reference/TupleType5.errors.txt | 7 +++ .../ecmascript5/Protected/Protected1.ts | 2 + .../ecmascript5/Protected/Protected2.ts | 2 + .../ecmascript5/Protected/Protected3.ts | 3 ++ .../ecmascript5/Protected/Protected4.ts | 3 ++ .../ecmascript5/Protected/Protected5.ts | 3 ++ .../ecmascript5/Protected/Protected6.ts | 3 ++ .../ecmascript5/Protected/Protected7.ts | 3 ++ .../ecmascript5/Protected/Protected8.ts | 4 ++ .../ecmascript5/Protected/Protected9.ts | 3 ++ .../ecmascript5/TupleTypes/TupleType1.ts | 1 + .../ecmascript5/TupleTypes/TupleType2.ts | 1 + .../ecmascript5/TupleTypes/TupleType3.ts | 1 + .../ecmascript5/TupleTypes/TupleType4.ts | 1 + .../ecmascript5/TupleTypes/TupleType5.ts | 1 + 44 files changed, 379 insertions(+), 17 deletions(-) create mode 100644 tests/baselines/reference/Protected1.errors.txt create mode 100644 tests/baselines/reference/Protected2.errors.txt create mode 100644 tests/baselines/reference/Protected3.errors.txt create mode 100644 tests/baselines/reference/Protected4.errors.txt create mode 100644 tests/baselines/reference/Protected5.errors.txt create mode 100644 tests/baselines/reference/Protected6.errors.txt create mode 100644 tests/baselines/reference/Protected7.errors.txt create mode 100644 tests/baselines/reference/Protected8.js create mode 100644 tests/baselines/reference/Protected8.types create mode 100644 tests/baselines/reference/Protected9.errors.txt create mode 100644 tests/baselines/reference/TupleType1.js create mode 100644 tests/baselines/reference/TupleType1.types create mode 100644 tests/baselines/reference/TupleType2.js create mode 100644 tests/baselines/reference/TupleType2.types create mode 100644 tests/baselines/reference/TupleType3.errors.txt create mode 100644 tests/baselines/reference/TupleType4.errors.txt create mode 100644 tests/baselines/reference/TupleType5.errors.txt create mode 100644 tests/cases/conformance/parser/ecmascript5/Protected/Protected1.ts create mode 100644 tests/cases/conformance/parser/ecmascript5/Protected/Protected2.ts create mode 100644 tests/cases/conformance/parser/ecmascript5/Protected/Protected3.ts create mode 100644 tests/cases/conformance/parser/ecmascript5/Protected/Protected4.ts create mode 100644 tests/cases/conformance/parser/ecmascript5/Protected/Protected5.ts create mode 100644 tests/cases/conformance/parser/ecmascript5/Protected/Protected6.ts create mode 100644 tests/cases/conformance/parser/ecmascript5/Protected/Protected7.ts create mode 100644 tests/cases/conformance/parser/ecmascript5/Protected/Protected8.ts create mode 100644 tests/cases/conformance/parser/ecmascript5/Protected/Protected9.ts create mode 100644 tests/cases/conformance/parser/ecmascript5/TupleTypes/TupleType1.ts create mode 100644 tests/cases/conformance/parser/ecmascript5/TupleTypes/TupleType2.ts create mode 100644 tests/cases/conformance/parser/ecmascript5/TupleTypes/TupleType3.ts create mode 100644 tests/cases/conformance/parser/ecmascript5/TupleTypes/TupleType4.ts create mode 100644 tests/cases/conformance/parser/ecmascript5/TupleTypes/TupleType5.ts diff --git a/src/services/compiler/astWalker.ts b/src/services/compiler/astWalker.ts index 53d22142cb..9f6897c4e1 100644 --- a/src/services/compiler/astWalker.ts +++ b/src/services/compiler/astWalker.ts @@ -42,6 +42,10 @@ module TypeScript { walker.walk(preAst.typeArguments); } + function walkTupleTypeChildren(preAst: TupleTypeSyntax, walker: AstWalker): void { + walker.walk(preAst.types); + } + function walkTypeOfExpressionChildren(preAst: TypeOfExpressionSyntax, walker: AstWalker): void { walker.walk(preAst.expression); } @@ -561,6 +565,7 @@ module TypeScript { childrenWalkers[SyntaxKind.TriviaList] = null; childrenWalkers[SyntaxKind.TrueKeyword] = null; childrenWalkers[SyntaxKind.TryStatement] = walkTryStatementChildren; + childrenWalkers[SyntaxKind.TupleType] = walkTupleTypeChildren; childrenWalkers[SyntaxKind.TypeAnnotation] = walkTypeAnnotationChildren; childrenWalkers[SyntaxKind.TypeArgumentList] = walkTypeArgumentListChildren; childrenWalkers[SyntaxKind.TypeOfExpression] = walkTypeOfExpressionChildren; diff --git a/src/services/syntax/defaultSyntaxVisitor.generated.ts b/src/services/syntax/defaultSyntaxVisitor.generated.ts index 041b72b935..32a0cfad4a 100644 --- a/src/services/syntax/defaultSyntaxVisitor.generated.ts +++ b/src/services/syntax/defaultSyntaxVisitor.generated.ts @@ -42,6 +42,10 @@ module TypeScript { return this.defaultVisit(node); } + public visitTupleType(node: TupleTypeSyntax): any { + return this.defaultVisit(node); + } + public visitInterfaceDeclaration(node: InterfaceDeclarationSyntax): any { return this.defaultVisit(node); } diff --git a/src/services/syntax/parser.ts b/src/services/syntax/parser.ts index 31a87b857b..2535517326 100644 --- a/src/services/syntax/parser.ts +++ b/src/services/syntax/parser.ts @@ -1048,6 +1048,7 @@ module TypeScript.Parser { case SyntaxKind.ExportKeyword: case SyntaxKind.PublicKeyword: case SyntaxKind.PrivateKeyword: + case SyntaxKind.ProtectedKeyword: case SyntaxKind.StaticKeyword: case SyntaxKind.DeclareKeyword: return true; @@ -1434,6 +1435,19 @@ module TypeScript.Parser { return new syntaxFactory.ObjectTypeSyntax(parseNodeData, openBraceToken, typeMembers, eatToken(SyntaxKind.CloseBraceToken)); } + function parseTupleType(currentToken: ISyntaxToken): TupleTypeSyntax { + var openBracket = consumeToken(currentToken); + + var types = Syntax.emptySeparatedList(); + if (openBracket.fullWidth() > 0) { + var skippedTokens: ISyntaxToken[] = getArray(); + types = parseSeparatedSyntaxList(ListParsingState.TupleType_Types, skippedTokens); + openBracket = addSkippedTokensAfterToken(openBracket, skippedTokens); + } + + return new syntaxFactory.TupleTypeSyntax(parseNodeData, openBracket, types, eatToken(SyntaxKind.CloseBracketToken)); + } + function isTypeMember(inErrorRecovery: boolean): boolean { if (SyntaxUtilities.isTypeMember(currentNode())) { return true; @@ -1663,6 +1677,7 @@ module TypeScript.Parser { // ERROR RECOVERY case SyntaxKind.PublicKeyword: case SyntaxKind.PrivateKeyword: + case SyntaxKind.ProtectedKeyword: case SyntaxKind.StaticKeyword: // None of the above are actually keywords. And they might show up in a real // statement (i.e. "public();"). However, if we see 'public ' then @@ -1731,6 +1746,7 @@ module TypeScript.Parser { // ERROR RECOVERY case SyntaxKind.PublicKeyword: case SyntaxKind.PrivateKeyword: + case SyntaxKind.ProtectedKeyword: case SyntaxKind.StaticKeyword: // None of the above are actually keywords. And they might show up in a real // statement (i.e. "public();"). However, if we see 'public ' then @@ -3133,7 +3149,7 @@ module TypeScript.Parser { token2 = peekToken(2); token2Kind = token2.kind(); - if (token1Kind === SyntaxKind.PublicKeyword || token1Kind === SyntaxKind.PrivateKeyword) { + if (SyntaxFacts.isAccessibilityModifier(token1Kind)) { if (isIdentifier(token2)) { // "(public id" or "(function id". Definitely an arrow function. Could never // be a parenthesized expression. Note: this will be an *illegal* arrow @@ -3557,11 +3573,12 @@ module TypeScript.Parser { return consumeToken(_currentToken); case SyntaxKind.OpenParenToken: - case SyntaxKind.LessThanToken: return tryParseFunctionType(); - case SyntaxKind.VoidKeyword: return consumeToken(_currentToken); - case SyntaxKind.OpenBraceToken: return parseObjectType(); - case SyntaxKind.NewKeyword: return parseConstructorType(); - case SyntaxKind.TypeOfKeyword: return parseTypeQuery(_currentToken); + case SyntaxKind.LessThanToken: return tryParseFunctionType(); + case SyntaxKind.VoidKeyword: return consumeToken(_currentToken); + case SyntaxKind.OpenBraceToken: return parseObjectType(); + case SyntaxKind.NewKeyword: return parseConstructorType(); + case SyntaxKind.TypeOfKeyword: return parseTypeQuery(_currentToken); + case SyntaxKind.OpenBracketToken: return parseTupleType(_currentToken); } return tryParseNameOrGenericType(); @@ -3973,6 +3990,7 @@ module TypeScript.Parser { case ListParsingState.IndexSignature_Parameters: return isExpectedIndexSignature_ParametersTerminator(); case ListParsingState.TypeArgumentList_Types: return isExpectedTypeArgumentList_TypesTerminator(); case ListParsingState.TypeParameterList_TypeParameters: return isExpectedTypeParameterList_TypeParametersTerminator(); + case ListParsingState.TupleType_Types: return isExpectedTupleType_TypesTerminator(); default: throw Errors.invalidOperation(); } @@ -4019,6 +4037,17 @@ module TypeScript.Parser { return false; } + function isExpectedTupleType_TypesTerminator(): boolean { + var token = currentToken(); + var tokenKind = token.kind(); + if (tokenKind === SyntaxKind.CloseBracketToken) { + return true; + } + + // TODO: add more cases as necessary for error tolerance. + return false; + } + function isExpectedTypeParameterList_TypeParametersTerminator(): boolean { var tokenKind = currentToken().kind(); if (tokenKind === SyntaxKind.GreaterThanToken) { @@ -4187,7 +4216,8 @@ module TypeScript.Parser { case ListParsingState.IndexSignature_Parameters: return isParameter(); case ListParsingState.TypeArgumentList_Types: return isType(); case ListParsingState.TypeParameterList_TypeParameters: return isTypeParameter(); - default: throw Errors.invalidOperation(); + case ListParsingState.TupleType_Types: return isType(); + default: throw Errors.invalidOperation(); } } @@ -4230,6 +4260,7 @@ module TypeScript.Parser { case ListParsingState.IndexSignature_Parameters: return tryParseParameter(); case ListParsingState.TypeArgumentList_Types: return tryParseType(); case ListParsingState.TypeParameterList_TypeParameters: return tryParseTypeParameter(); + case ListParsingState.TupleType_Types: return tryParseType(); default: throw Errors.invalidOperation(); } } @@ -4254,6 +4285,7 @@ module TypeScript.Parser { case ListParsingState.IndexSignature_Parameters: return getLocalizedText(DiagnosticCode.parameter, null); case ListParsingState.TypeArgumentList_Types: return getLocalizedText(DiagnosticCode.type, null); case ListParsingState.TypeParameterList_TypeParameters: return getLocalizedText(DiagnosticCode.type_parameter, null); + case ListParsingState.TupleType_Types: return getLocalizedText(DiagnosticCode.type, null); case ListParsingState.ArrayLiteralExpression_AssignmentExpressions: return getLocalizedText(DiagnosticCode.expression, null); default: throw Errors.invalidOperation(); } @@ -4376,9 +4408,10 @@ module TypeScript.Parser { IndexSignature_Parameters = 18, TypeArgumentList_Types = 19, TypeParameterList_TypeParameters = 20, + TupleType_Types = 21, FirstListParsingState = SourceUnit_ModuleElements, - LastListParsingState = TypeParameterList_TypeParameters, + LastListParsingState = TupleType_Types, } // We keep the parser around as a singleton. This is because calling createParser is actually diff --git a/src/services/syntax/prettyPrinter.ts b/src/services/syntax/prettyPrinter.ts index f19b9224f7..df22bcab55 100644 --- a/src/services/syntax/prettyPrinter.ts +++ b/src/services/syntax/prettyPrinter.ts @@ -421,6 +421,12 @@ module TypeScript.PrettyPrinter { this.appendToken(node.greaterThanToken); } + public visitTupleType(node: TupleTypeSyntax): void { + this.appendToken(node.openBracketToken); + this.appendSeparatorSpaceList(node.types); + this.appendToken(node.closeBracketToken); + } + public visitConstructorType(node: ConstructorTypeSyntax): void { this.appendToken(node.newKeyword); this.ensureSpace(); diff --git a/src/services/syntax/syntaxFacts2.ts b/src/services/syntax/syntaxFacts2.ts index ec59a583e0..99a144176a 100644 --- a/src/services/syntax/syntaxFacts2.ts +++ b/src/services/syntax/syntaxFacts2.ts @@ -26,4 +26,15 @@ module TypeScript.SyntaxFacts { var tokenKind = token.kind(); return tokenKind === SyntaxKind.IdentifierName || SyntaxFacts.isAnyKeyword(tokenKind); } + + export function isAccessibilityModifier(kind: SyntaxKind): boolean { + switch (kind) { + case SyntaxKind.PublicKeyword: + case SyntaxKind.PrivateKeyword: + case SyntaxKind.ProtectedKeyword: + return true; + } + + return false; + } } \ No newline at end of file diff --git a/src/services/syntax/syntaxGenerator.ts b/src/services/syntax/syntaxGenerator.ts index 21f65bb79e..ebc2673b98 100644 --- a/src/services/syntax/syntaxGenerator.ts +++ b/src/services/syntax/syntaxGenerator.ts @@ -354,6 +354,17 @@ var definitions:ITypeDefinition[] = [ ], isTypeScriptSpecific: true }, + { + name: 'TupleTypeSyntax', + baseType: 'ISyntaxNode', + interfaces: ['ITypeSyntax'], + children: [ + { name: 'openBracketToken', isToken: true, excludeFromAST: true }, + { name: 'types', isSeparatedList: true, elementType: 'ITypeSyntax' }, + { name: 'closeBracketToken', isToken: true, excludeFromAST: true } + ], + isTypeScriptSpecific: true + }, { name: 'TypeAnnotationSyntax', baseType: 'ISyntaxNode', diff --git a/src/services/syntax/syntaxKind.ts b/src/services/syntax/syntaxKind.ts index bcc6ab46ee..1021c2fcfd 100644 --- a/src/services/syntax/syntaxKind.ts +++ b/src/services/syntax/syntaxKind.ts @@ -158,6 +158,7 @@ module TypeScript { ConstructorType, GenericType, TypeQuery, + TupleType, // Module elements. InterfaceDeclaration, diff --git a/src/services/syntax/syntaxNodes.abstract.generated.ts b/src/services/syntax/syntaxNodes.abstract.generated.ts index 031b0363ca..9cba7f66d0 100644 --- a/src/services/syntax/syntaxNodes.abstract.generated.ts +++ b/src/services/syntax/syntaxNodes.abstract.generated.ts @@ -108,6 +108,17 @@ module TypeScript.Syntax.Abstract { name.parent = this; } } + export class TupleTypeSyntax extends SyntaxNode implements ITypeSyntax { + public openBracketToken: ISyntaxToken; + public types: ITypeSyntax[]; + public closeBracketToken: ISyntaxToken; + public _typeBrand: any; + constructor(data: number, openBracketToken: ISyntaxToken, types: ITypeSyntax[], closeBracketToken: ISyntaxToken) { + super(data); + this.types = types, + !isShared(types) && (types.parent = this); + } + } export class InterfaceDeclarationSyntax extends SyntaxNode implements IModuleElementSyntax { public modifiers: ISyntaxToken[]; public interfaceKeyword: ISyntaxToken; @@ -1190,5 +1201,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, (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, (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; } \ 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 cc493aa53a..fa593fd197 100644 --- a/src/services/syntax/syntaxNodes.concrete.generated.ts +++ b/src/services/syntax/syntaxNodes.concrete.generated.ts @@ -126,6 +126,21 @@ module TypeScript.Syntax.Concrete { name.parent = this; } } + export class TupleTypeSyntax extends SyntaxNode implements ITypeSyntax { + public openBracketToken: ISyntaxToken; + public types: ITypeSyntax[]; + public closeBracketToken: ISyntaxToken; + public _typeBrand: any; + constructor(data: number, openBracketToken: ISyntaxToken, types: ITypeSyntax[], closeBracketToken: ISyntaxToken) { + super(data); + this.openBracketToken = openBracketToken, + this.types = types, + this.closeBracketToken = closeBracketToken, + openBracketToken.parent = this, + !isShared(types) && (types.parent = this), + closeBracketToken.parent = this; + } + } export class InterfaceDeclarationSyntax extends SyntaxNode implements IModuleElementSyntax { public modifiers: ISyntaxToken[]; public interfaceKeyword: ISyntaxToken; @@ -1420,5 +1435,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, (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, (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; } \ No newline at end of file diff --git a/src/services/syntax/syntaxNodes.interfaces.generated.ts b/src/services/syntax/syntaxNodes.interfaces.generated.ts index 0ecc9cbf9c..949141ba22 100644 --- a/src/services/syntax/syntaxNodes.interfaces.generated.ts +++ b/src/services/syntax/syntaxNodes.interfaces.generated.ts @@ -42,6 +42,11 @@ module TypeScript { typeOfKeyword: ISyntaxToken; name: INameSyntax; } + export interface TupleTypeSyntax extends ISyntaxNode, ITypeSyntax { + openBracketToken: ISyntaxToken; + types: ITypeSyntax[]; + closeBracketToken: ISyntaxToken; + } export interface InterfaceDeclarationSyntax extends ISyntaxNode, IModuleElementSyntax { modifiers: ISyntaxToken[]; interfaceKeyword: ISyntaxToken; @@ -478,7 +483,7 @@ module TypeScript { moduleName: INameSyntax; } - export var nodeMetadata: string[][] = [[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],["moduleElements","endOfFileToken"],["left","dotToken","right"],["openBraceToken","typeMembers","closeBraceToken"],["typeParameterList","parameterList","equalsGreaterThanToken","type"],["type","openBracketToken","closeBracketToken"],["newKeyword","typeParameterList","parameterList","equalsGreaterThanToken","type"],["name","typeArgumentList"],["typeOfKeyword","name"],["modifiers","interfaceKeyword","identifier","typeParameterList","heritageClauses","body"],["modifiers","functionKeyword","identifier","callSignature","block","semicolonToken"],["modifiers","moduleKeyword","name","stringLiteral","openBraceToken","moduleElements","closeBraceToken"],["modifiers","classKeyword","identifier","typeParameterList","heritageClauses","openBraceToken","classElements","closeBraceToken"],["modifiers","enumKeyword","identifier","openBraceToken","enumElements","closeBraceToken"],["modifiers","importKeyword","identifier","equalsToken","moduleReference","semicolonToken"],["exportKeyword","equalsToken","identifier","semicolonToken"],["modifiers","propertyName","callSignature","block","semicolonToken"],["modifiers","variableDeclarator","semicolonToken"],["modifiers","constructorKeyword","callSignature","block","semicolonToken"],["modifiers","indexSignature","semicolonToken"],["modifiers","getKeyword","propertyName","callSignature","block"],["modifiers","setKeyword","propertyName","callSignature","block"],["propertyName","questionToken","typeAnnotation"],["typeParameterList","parameterList","typeAnnotation"],["newKeyword","callSignature"],["openBracketToken","parameters","closeBracketToken","typeAnnotation"],["propertyName","questionToken","callSignature"],["openBraceToken","statements","closeBraceToken"],["ifKeyword","openParenToken","condition","closeParenToken","statement","elseClause"],["modifiers","variableDeclaration","semicolonToken"],["expression","semicolonToken"],["returnKeyword","expression","semicolonToken"],["switchKeyword","openParenToken","expression","closeParenToken","openBraceToken","switchClauses","closeBraceToken"],["breakKeyword","identifier","semicolonToken"],["continueKeyword","identifier","semicolonToken"],["forKeyword","openParenToken","variableDeclaration","initializer","firstSemicolonToken","condition","secondSemicolonToken","incrementor","closeParenToken","statement"],["forKeyword","openParenToken","variableDeclaration","left","inKeyword","expression","closeParenToken","statement"],["semicolonToken"],["throwKeyword","expression","semicolonToken"],["whileKeyword","openParenToken","condition","closeParenToken","statement"],["tryKeyword","block","catchClause","finallyClause"],["identifier","colonToken","statement"],["doKeyword","statement","whileKeyword","openParenToken","condition","closeParenToken","semicolonToken"],["debuggerKeyword","semicolonToken"],["withKeyword","openParenToken","condition","closeParenToken","statement"],["operatorToken","operand"],["operatorToken","operand"],["operatorToken","operand"],["operatorToken","operand"],["operatorToken","operand"],["operatorToken","operand"],["deleteKeyword","expression"],["typeOfKeyword","expression"],["voidKeyword","expression"],["left","operatorToken","right"],["left","operatorToken","right"],["left","operatorToken","right"],["left","operatorToken","right"],["left","operatorToken","right"],["left","operatorToken","right"],["left","operatorToken","right"],["left","operatorToken","right"],["left","operatorToken","right"],["left","operatorToken","right"],["left","operatorToken","right"],["left","operatorToken","right"],["left","operatorToken","right"],["condition","questionToken","whenTrue","colonToken","whenFalse"],["left","operatorToken","right"],["left","operatorToken","right"],["left","operatorToken","right"],["left","operatorToken","right"],["left","operatorToken","right"],["left","operatorToken","right"],["left","operatorToken","right"],["left","operatorToken","right"],["left","operatorToken","right"],["left","operatorToken","right"],["left","operatorToken","right"],["left","operatorToken","right"],["left","operatorToken","right"],["left","operatorToken","right"],["left","operatorToken","right"],["left","operatorToken","right"],["left","operatorToken","right"],["left","operatorToken","right"],["left","operatorToken","right"],["left","operatorToken","right"],["left","operatorToken","right"],["left","operatorToken","right"],["left","operatorToken","right"],["operand","operatorToken"],["operand","operatorToken"],["expression","dotToken","name"],["expression","argumentList"],["openBracketToken","expressions","closeBracketToken"],["openBraceToken","propertyAssignments","closeBraceToken"],["newKeyword","expression","argumentList"],["openParenToken","expression","closeParenToken"],["callSignature","equalsGreaterThanToken","block","expression"],["parameter","equalsGreaterThanToken","block","expression"],["lessThanToken","type","greaterThanToken","expression"],["expression","openBracketToken","argumentExpression","closeBracketToken"],["functionKeyword","identifier","callSignature","block"],[],["varKeyword","variableDeclarators"],["propertyName","typeAnnotation","equalsValueClause"],["typeArgumentList","openParenToken","arguments","closeParenToken"],["openParenToken","parameters","closeParenToken"],["lessThanToken","typeArguments","greaterThanToken"],["lessThanToken","typeParameters","greaterThanToken"],["extendsOrImplementsKeyword","typeNames"],["extendsOrImplementsKeyword","typeNames"],["equalsToken","value"],["caseKeyword","expression","colonToken","statements"],["defaultKeyword","colonToken","statements"],["elseKeyword","statement"],["catchKeyword","openParenToken","identifier","typeAnnotation","closeParenToken","block"],["finallyKeyword","block"],["identifier","constraint"],["extendsKeyword","typeOrExpression"],["propertyName","colonToken","expression"],["propertyName","callSignature","block"],["dotDotDotToken","modifiers","identifier","questionToken","typeAnnotation","equalsValueClause"],["propertyName","equalsValueClause"],["colonToken","type"],["requireKeyword","openParenToken","stringLiteral","closeParenToken"],["moduleName"],]; + export var nodeMetadata: string[][] = [[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],["moduleElements","endOfFileToken"],["left","dotToken","right"],["openBraceToken","typeMembers","closeBraceToken"],["typeParameterList","parameterList","equalsGreaterThanToken","type"],["type","openBracketToken","closeBracketToken"],["newKeyword","typeParameterList","parameterList","equalsGreaterThanToken","type"],["name","typeArgumentList"],["typeOfKeyword","name"],["openBracketToken","types","closeBracketToken"],["modifiers","interfaceKeyword","identifier","typeParameterList","heritageClauses","body"],["modifiers","functionKeyword","identifier","callSignature","block","semicolonToken"],["modifiers","moduleKeyword","name","stringLiteral","openBraceToken","moduleElements","closeBraceToken"],["modifiers","classKeyword","identifier","typeParameterList","heritageClauses","openBraceToken","classElements","closeBraceToken"],["modifiers","enumKeyword","identifier","openBraceToken","enumElements","closeBraceToken"],["modifiers","importKeyword","identifier","equalsToken","moduleReference","semicolonToken"],["exportKeyword","equalsToken","identifier","semicolonToken"],["modifiers","propertyName","callSignature","block","semicolonToken"],["modifiers","variableDeclarator","semicolonToken"],["modifiers","constructorKeyword","callSignature","block","semicolonToken"],["modifiers","indexSignature","semicolonToken"],["modifiers","getKeyword","propertyName","callSignature","block"],["modifiers","setKeyword","propertyName","callSignature","block"],["propertyName","questionToken","typeAnnotation"],["typeParameterList","parameterList","typeAnnotation"],["newKeyword","callSignature"],["openBracketToken","parameters","closeBracketToken","typeAnnotation"],["propertyName","questionToken","callSignature"],["openBraceToken","statements","closeBraceToken"],["ifKeyword","openParenToken","condition","closeParenToken","statement","elseClause"],["modifiers","variableDeclaration","semicolonToken"],["expression","semicolonToken"],["returnKeyword","expression","semicolonToken"],["switchKeyword","openParenToken","expression","closeParenToken","openBraceToken","switchClauses","closeBraceToken"],["breakKeyword","identifier","semicolonToken"],["continueKeyword","identifier","semicolonToken"],["forKeyword","openParenToken","variableDeclaration","initializer","firstSemicolonToken","condition","secondSemicolonToken","incrementor","closeParenToken","statement"],["forKeyword","openParenToken","variableDeclaration","left","inKeyword","expression","closeParenToken","statement"],["semicolonToken"],["throwKeyword","expression","semicolonToken"],["whileKeyword","openParenToken","condition","closeParenToken","statement"],["tryKeyword","block","catchClause","finallyClause"],["identifier","colonToken","statement"],["doKeyword","statement","whileKeyword","openParenToken","condition","closeParenToken","semicolonToken"],["debuggerKeyword","semicolonToken"],["withKeyword","openParenToken","condition","closeParenToken","statement"],["operatorToken","operand"],["operatorToken","operand"],["operatorToken","operand"],["operatorToken","operand"],["operatorToken","operand"],["operatorToken","operand"],["deleteKeyword","expression"],["typeOfKeyword","expression"],["voidKeyword","expression"],["left","operatorToken","right"],["left","operatorToken","right"],["left","operatorToken","right"],["left","operatorToken","right"],["left","operatorToken","right"],["left","operatorToken","right"],["left","operatorToken","right"],["left","operatorToken","right"],["left","operatorToken","right"],["left","operatorToken","right"],["left","operatorToken","right"],["left","operatorToken","right"],["left","operatorToken","right"],["condition","questionToken","whenTrue","colonToken","whenFalse"],["left","operatorToken","right"],["left","operatorToken","right"],["left","operatorToken","right"],["left","operatorToken","right"],["left","operatorToken","right"],["left","operatorToken","right"],["left","operatorToken","right"],["left","operatorToken","right"],["left","operatorToken","right"],["left","operatorToken","right"],["left","operatorToken","right"],["left","operatorToken","right"],["left","operatorToken","right"],["left","operatorToken","right"],["left","operatorToken","right"],["left","operatorToken","right"],["left","operatorToken","right"],["left","operatorToken","right"],["left","operatorToken","right"],["left","operatorToken","right"],["left","operatorToken","right"],["left","operatorToken","right"],["left","operatorToken","right"],["operand","operatorToken"],["operand","operatorToken"],["expression","dotToken","name"],["expression","argumentList"],["openBracketToken","expressions","closeBracketToken"],["openBraceToken","propertyAssignments","closeBraceToken"],["newKeyword","expression","argumentList"],["openParenToken","expression","closeParenToken"],["callSignature","equalsGreaterThanToken","block","expression"],["parameter","equalsGreaterThanToken","block","expression"],["lessThanToken","type","greaterThanToken","expression"],["expression","openBracketToken","argumentExpression","closeBracketToken"],["functionKeyword","identifier","callSignature","block"],[],["varKeyword","variableDeclarators"],["propertyName","typeAnnotation","equalsValueClause"],["typeArgumentList","openParenToken","arguments","closeParenToken"],["openParenToken","parameters","closeParenToken"],["lessThanToken","typeArguments","greaterThanToken"],["lessThanToken","typeParameters","greaterThanToken"],["extendsOrImplementsKeyword","typeNames"],["extendsOrImplementsKeyword","typeNames"],["equalsToken","value"],["caseKeyword","expression","colonToken","statements"],["defaultKeyword","colonToken","statements"],["elseKeyword","statement"],["catchKeyword","openParenToken","identifier","typeAnnotation","closeParenToken","block"],["finallyKeyword","block"],["identifier","constraint"],["extendsKeyword","typeOrExpression"],["propertyName","colonToken","expression"],["propertyName","callSignature","block"],["dotDotDotToken","modifiers","identifier","questionToken","typeAnnotation","equalsValueClause"],["propertyName","equalsValueClause"],["colonToken","type"],["requireKeyword","openParenToken","stringLiteral","closeParenToken"],["moduleName"],]; export module Syntax { export interface ISyntaxFactory { @@ -491,6 +496,7 @@ module TypeScript { ConstructorTypeSyntax: { new(data: number, newKeyword: ISyntaxToken, typeParameterList: TypeParameterListSyntax, parameterList: ParameterListSyntax, equalsGreaterThanToken: ISyntaxToken, type: ITypeSyntax): ConstructorTypeSyntax }; GenericTypeSyntax: { new(data: number, name: INameSyntax, typeArgumentList: TypeArgumentListSyntax): GenericTypeSyntax }; TypeQuerySyntax: { new(data: number, typeOfKeyword: ISyntaxToken, name: INameSyntax): TypeQuerySyntax }; + TupleTypeSyntax: { new(data: number, openBracketToken: ISyntaxToken, types: ITypeSyntax[], closeBracketToken: ISyntaxToken): TupleTypeSyntax }; InterfaceDeclarationSyntax: { new(data: number, modifiers: ISyntaxToken[], interfaceKeyword: ISyntaxToken, identifier: ISyntaxToken, typeParameterList: TypeParameterListSyntax, heritageClauses: HeritageClauseSyntax[], body: ObjectTypeSyntax): InterfaceDeclarationSyntax }; FunctionDeclarationSyntax: { new(data: number, modifiers: ISyntaxToken[], functionKeyword: ISyntaxToken, identifier: ISyntaxToken, callSignature: CallSignatureSyntax, block: BlockSyntax, semicolonToken: ISyntaxToken): FunctionDeclarationSyntax }; ModuleDeclarationSyntax: { new(data: number, modifiers: ISyntaxToken[], moduleKeyword: ISyntaxToken, name: INameSyntax, stringLiteral: ISyntaxToken, openBraceToken: ISyntaxToken, moduleElements: IModuleElementSyntax[], closeBraceToken: ISyntaxToken): ModuleDeclarationSyntax }; diff --git a/src/services/syntax/syntaxTree.ts b/src/services/syntax/syntaxTree.ts index 0ae43ee3a1..1e8ac95c48 100644 --- a/src/services/syntax/syntaxTree.ts +++ b/src/services/syntax/syntaxTree.ts @@ -84,6 +84,7 @@ module TypeScript { private cacheSyntaxTreeInfo(): void { // If we're not keeping around the syntax tree, store the diagnostics and line // map so they don't have to be recomputed. + var sourceUnit = this.sourceUnit(); var firstToken = firstSyntaxTreeToken(this); var leadingTrivia = firstToken.leadingTrivia(this.text); @@ -238,7 +239,7 @@ module TypeScript { } private checkParameterAccessibilityModifier(parameterList: ParameterListSyntax, modifier: ISyntaxToken, modifierIndex: number): boolean { - if (modifier.kind() !== SyntaxKind.PublicKeyword && modifier.kind() !== SyntaxKind.PrivateKeyword) { + if (!SyntaxFacts.isAccessibilityModifier(modifier.kind())) { this.pushDiagnostic(modifier, DiagnosticCode._0_modifier_cannot_appear_on_a_parameter, [modifier.text()]); return true; } @@ -320,6 +321,15 @@ module TypeScript { super.visitTypeArgumentList(node); } + public visitTupleType(node: TupleTypeSyntax): void { + if (this.checkForTrailingComma(node.types) || + this.checkForAtLeastOneElement(node, node.types, node.openBracketToken, getLocalizedText(DiagnosticCode.type, null))) { + return + } + + super.visitTupleType(node); + } + public visitTypeParameterList(node: TypeParameterListSyntax): void { if (this.checkForTrailingComma(node.typeParameters) || this.checkForAtLeastOneElement(node, node.typeParameters, node.lessThanToken, getLocalizedText(DiagnosticCode.type_parameter, null))) { @@ -514,9 +524,7 @@ module TypeScript { for (var i = 0, n = list.length; i < n; i++) { var modifier = list[i]; - if (modifier.kind() === SyntaxKind.PublicKeyword || - modifier.kind() === SyntaxKind.PrivateKeyword) { - + if (SyntaxFacts.isAccessibilityModifier(modifier.kind())) { if (seenAccessibilityModifier) { this.pushDiagnostic(modifier, DiagnosticCode.Accessibility_modifier_already_seen); return true; @@ -751,8 +759,7 @@ module TypeScript { for (var i = 0, n = modifiers.length; i < n; i++) { var modifier = modifiers[i]; - if (modifier.kind() === SyntaxKind.PublicKeyword || - modifier.kind() === SyntaxKind.PrivateKeyword || + if (SyntaxFacts.isAccessibilityModifier(modifier.kind()) || modifier.kind() === SyntaxKind.StaticKeyword) { this.pushDiagnostic(modifier, DiagnosticCode._0_modifier_cannot_appear_on_a_module_element, [modifier.text()]); return true; diff --git a/src/services/syntax/syntaxVisitor.generated.ts b/src/services/syntax/syntaxVisitor.generated.ts index 7081499105..55aaef5325 100644 --- a/src/services/syntax/syntaxVisitor.generated.ts +++ b/src/services/syntax/syntaxVisitor.generated.ts @@ -13,6 +13,7 @@ module TypeScript { case SyntaxKind.ConstructorType: return visitor.visitConstructorType(element); case SyntaxKind.GenericType: return visitor.visitGenericType(element); case SyntaxKind.TypeQuery: return visitor.visitTypeQuery(element); + case SyntaxKind.TupleType: return visitor.visitTupleType(element); case SyntaxKind.InterfaceDeclaration: return visitor.visitInterfaceDeclaration(element); case SyntaxKind.FunctionDeclaration: return visitor.visitFunctionDeclaration(element); case SyntaxKind.ModuleDeclaration: return visitor.visitModuleDeclaration(element); @@ -109,6 +110,7 @@ module TypeScript { visitConstructorType(node: ConstructorTypeSyntax): any; visitGenericType(node: GenericTypeSyntax): any; visitTypeQuery(node: TypeQuerySyntax): any; + visitTupleType(node: TupleTypeSyntax): any; visitInterfaceDeclaration(node: InterfaceDeclarationSyntax): any; visitFunctionDeclaration(node: FunctionDeclarationSyntax): any; visitModuleDeclaration(node: ModuleDeclarationSyntax): any; diff --git a/src/services/syntax/syntaxWalker.generated.ts b/src/services/syntax/syntaxWalker.generated.ts index 73f70f1834..7b33570985 100644 --- a/src/services/syntax/syntaxWalker.generated.ts +++ b/src/services/syntax/syntaxWalker.generated.ts @@ -103,6 +103,12 @@ module TypeScript { this.visitNodeOrToken(node.name); } + public visitTupleType(node: TupleTypeSyntax): void { + this.visitToken(node.openBracketToken); + this.visitSeparatedList(node.types); + this.visitToken(node.closeBracketToken); + } + public visitInterfaceDeclaration(node: InterfaceDeclarationSyntax): void { this.visitList(node.modifiers); this.visitToken(node.interfaceKeyword); diff --git a/tests/baselines/reference/Protected1.errors.txt b/tests/baselines/reference/Protected1.errors.txt new file mode 100644 index 0000000000..fa40efbeaa --- /dev/null +++ b/tests/baselines/reference/Protected1.errors.txt @@ -0,0 +1,11 @@ +tests/cases/conformance/parser/ecmascript5/Protected/Protected1.ts(1,11): error TS1005: ';' expected. +tests/cases/conformance/parser/ecmascript5/Protected/Protected1.ts(1,1): error TS2304: Cannot find name 'protected'. + + +==== tests/cases/conformance/parser/ecmascript5/Protected/Protected1.ts (2 errors) ==== + protected class C { + ~~~~~ +!!! error TS1005: ';' expected. + ~~~~~~~~~ +!!! error TS2304: Cannot find name 'protected'. + } \ No newline at end of file diff --git a/tests/baselines/reference/Protected2.errors.txt b/tests/baselines/reference/Protected2.errors.txt new file mode 100644 index 0000000000..9a91897eeb --- /dev/null +++ b/tests/baselines/reference/Protected2.errors.txt @@ -0,0 +1,11 @@ +tests/cases/conformance/parser/ecmascript5/Protected/Protected2.ts(1,11): error TS1005: ';' expected. +tests/cases/conformance/parser/ecmascript5/Protected/Protected2.ts(1,1): error TS2304: Cannot find name 'protected'. + + +==== tests/cases/conformance/parser/ecmascript5/Protected/Protected2.ts (2 errors) ==== + protected module M { + ~~~~~~ +!!! error TS1005: ';' expected. + ~~~~~~~~~ +!!! error TS2304: Cannot find name 'protected'. + } \ No newline at end of file diff --git a/tests/baselines/reference/Protected3.errors.txt b/tests/baselines/reference/Protected3.errors.txt new file mode 100644 index 0000000000..c5e8d49376 --- /dev/null +++ b/tests/baselines/reference/Protected3.errors.txt @@ -0,0 +1,24 @@ +tests/cases/conformance/parser/ecmascript5/Protected/Protected3.ts(2,3): error TS1068: Unexpected token. A constructor, method, accessor, or property was expected. +tests/cases/conformance/parser/ecmascript5/Protected/Protected3.ts(2,13): error TS1005: ';' expected. +tests/cases/conformance/parser/ecmascript5/Protected/Protected3.ts(2,27): error TS1005: ';' expected. +tests/cases/conformance/parser/ecmascript5/Protected/Protected3.ts(3,1): error TS1128: Declaration or statement expected. +tests/cases/conformance/parser/ecmascript5/Protected/Protected3.ts(2,3): error TS2304: Cannot find name 'protected'. +tests/cases/conformance/parser/ecmascript5/Protected/Protected3.ts(2,13): error TS2304: Cannot find name 'constructor'. + + +==== tests/cases/conformance/parser/ecmascript5/Protected/Protected3.ts (6 errors) ==== + class C { + protected constructor() { } + ~~~~~~~~~ +!!! error TS1068: Unexpected token. A constructor, method, accessor, or property was expected. + ~~~~~~~~~~~ +!!! error TS1005: ';' expected. + ~ +!!! error TS1005: ';' expected. + ~~~~~~~~~ +!!! error TS2304: Cannot find name 'protected'. + ~~~~~~~~~~~ +!!! error TS2304: Cannot find name 'constructor'. + } + ~ +!!! error TS1128: Declaration or statement expected. \ No newline at end of file diff --git a/tests/baselines/reference/Protected4.errors.txt b/tests/baselines/reference/Protected4.errors.txt new file mode 100644 index 0000000000..929c5f4849 --- /dev/null +++ b/tests/baselines/reference/Protected4.errors.txt @@ -0,0 +1,24 @@ +tests/cases/conformance/parser/ecmascript5/Protected/Protected4.ts(2,3): error TS1068: Unexpected token. A constructor, method, accessor, or property was expected. +tests/cases/conformance/parser/ecmascript5/Protected/Protected4.ts(2,13): error TS1005: ';' expected. +tests/cases/conformance/parser/ecmascript5/Protected/Protected4.ts(2,24): error TS1005: ';' expected. +tests/cases/conformance/parser/ecmascript5/Protected/Protected4.ts(3,1): error TS1128: Declaration or statement expected. +tests/cases/conformance/parser/ecmascript5/Protected/Protected4.ts(2,3): error TS2304: Cannot find name 'protected'. +tests/cases/conformance/parser/ecmascript5/Protected/Protected4.ts(2,20): error TS2304: Cannot find name 'm'. + + +==== tests/cases/conformance/parser/ecmascript5/Protected/Protected4.ts (6 errors) ==== + class C { + protected public m() { } + ~~~~~~~~~ +!!! error TS1068: Unexpected token. A constructor, method, accessor, or property was expected. + ~~~~~~ +!!! error TS1005: ';' expected. + ~ +!!! error TS1005: ';' expected. + ~~~~~~~~~ +!!! error TS2304: Cannot find name 'protected'. + ~ +!!! error TS2304: Cannot find name 'm'. + } + ~ +!!! error TS1128: Declaration or statement expected. \ No newline at end of file diff --git a/tests/baselines/reference/Protected5.errors.txt b/tests/baselines/reference/Protected5.errors.txt new file mode 100644 index 0000000000..99bc6d9726 --- /dev/null +++ b/tests/baselines/reference/Protected5.errors.txt @@ -0,0 +1,24 @@ +tests/cases/conformance/parser/ecmascript5/Protected/Protected5.ts(2,3): error TS1068: Unexpected token. A constructor, method, accessor, or property was expected. +tests/cases/conformance/parser/ecmascript5/Protected/Protected5.ts(2,13): error TS1005: ';' expected. +tests/cases/conformance/parser/ecmascript5/Protected/Protected5.ts(2,24): error TS1005: ';' expected. +tests/cases/conformance/parser/ecmascript5/Protected/Protected5.ts(3,1): error TS1128: Declaration or statement expected. +tests/cases/conformance/parser/ecmascript5/Protected/Protected5.ts(2,3): error TS2304: Cannot find name 'protected'. +tests/cases/conformance/parser/ecmascript5/Protected/Protected5.ts(2,20): error TS2304: Cannot find name 'm'. + + +==== tests/cases/conformance/parser/ecmascript5/Protected/Protected5.ts (6 errors) ==== + class C { + protected static m() { } + ~~~~~~~~~ +!!! error TS1068: Unexpected token. A constructor, method, accessor, or property was expected. + ~~~~~~ +!!! error TS1005: ';' expected. + ~ +!!! error TS1005: ';' expected. + ~~~~~~~~~ +!!! error TS2304: Cannot find name 'protected'. + ~ +!!! error TS2304: Cannot find name 'm'. + } + ~ +!!! error TS1128: Declaration or statement expected. \ No newline at end of file diff --git a/tests/baselines/reference/Protected6.errors.txt b/tests/baselines/reference/Protected6.errors.txt new file mode 100644 index 0000000000..01c7974111 --- /dev/null +++ b/tests/baselines/reference/Protected6.errors.txt @@ -0,0 +1,27 @@ +tests/cases/conformance/parser/ecmascript5/Protected/Protected6.ts(2,3): error TS1068: Unexpected token. A constructor, method, accessor, or property was expected. +tests/cases/conformance/parser/ecmascript5/Protected/Protected6.ts(2,10): error TS1068: Unexpected token. A constructor, method, accessor, or property was expected. +tests/cases/conformance/parser/ecmascript5/Protected/Protected6.ts(2,20): error TS1005: ';' expected. +tests/cases/conformance/parser/ecmascript5/Protected/Protected6.ts(2,24): error TS1005: ';' expected. +tests/cases/conformance/parser/ecmascript5/Protected/Protected6.ts(3,1): error TS1128: Declaration or statement expected. +tests/cases/conformance/parser/ecmascript5/Protected/Protected6.ts(2,10): error TS2304: Cannot find name 'protected'. +tests/cases/conformance/parser/ecmascript5/Protected/Protected6.ts(2,20): error TS2304: Cannot find name 'm'. + + +==== tests/cases/conformance/parser/ecmascript5/Protected/Protected6.ts (7 errors) ==== + class C { + static protected m() { } + ~~~~~~ +!!! error TS1068: Unexpected token. A constructor, method, accessor, or property was expected. + ~~~~~~~~~ +!!! error TS1068: Unexpected token. A constructor, method, accessor, or property was expected. + ~ +!!! error TS1005: ';' expected. + ~ +!!! error TS1005: ';' expected. + ~~~~~~~~~ +!!! error TS2304: Cannot find name 'protected'. + ~ +!!! error TS2304: Cannot find name 'm'. + } + ~ +!!! error TS1128: Declaration or statement expected. \ No newline at end of file diff --git a/tests/baselines/reference/Protected7.errors.txt b/tests/baselines/reference/Protected7.errors.txt new file mode 100644 index 0000000000..651defcc1c --- /dev/null +++ b/tests/baselines/reference/Protected7.errors.txt @@ -0,0 +1,24 @@ +tests/cases/conformance/parser/ecmascript5/Protected/Protected7.ts(2,3): error TS1068: Unexpected token. A constructor, method, accessor, or property was expected. +tests/cases/conformance/parser/ecmascript5/Protected/Protected7.ts(2,13): error TS1005: ';' expected. +tests/cases/conformance/parser/ecmascript5/Protected/Protected7.ts(2,25): error TS1005: ';' expected. +tests/cases/conformance/parser/ecmascript5/Protected/Protected7.ts(3,1): error TS1128: Declaration or statement expected. +tests/cases/conformance/parser/ecmascript5/Protected/Protected7.ts(2,3): error TS2304: Cannot find name 'protected'. +tests/cases/conformance/parser/ecmascript5/Protected/Protected7.ts(2,21): error TS2304: Cannot find name 'm'. + + +==== tests/cases/conformance/parser/ecmascript5/Protected/Protected7.ts (6 errors) ==== + class C { + protected private m() { } + ~~~~~~~~~ +!!! error TS1068: Unexpected token. A constructor, method, accessor, or property was expected. + ~~~~~~~ +!!! error TS1005: ';' expected. + ~ +!!! error TS1005: ';' expected. + ~~~~~~~~~ +!!! error TS2304: Cannot find name 'protected'. + ~ +!!! error TS2304: Cannot find name 'm'. + } + ~ +!!! error TS1128: Declaration or statement expected. \ No newline at end of file diff --git a/tests/baselines/reference/Protected8.js b/tests/baselines/reference/Protected8.js new file mode 100644 index 0000000000..4a24f98dc5 --- /dev/null +++ b/tests/baselines/reference/Protected8.js @@ -0,0 +1,7 @@ +//// [Protected8.ts] +interface I { + protected + p +} + +//// [Protected8.js] diff --git a/tests/baselines/reference/Protected8.types b/tests/baselines/reference/Protected8.types new file mode 100644 index 0000000000..f29be486ee --- /dev/null +++ b/tests/baselines/reference/Protected8.types @@ -0,0 +1,10 @@ +=== tests/cases/conformance/parser/ecmascript5/Protected/Protected8.ts === +interface I { +>I : I + + protected +>protected : any + + p +>p : any +} diff --git a/tests/baselines/reference/Protected9.errors.txt b/tests/baselines/reference/Protected9.errors.txt new file mode 100644 index 0000000000..c503ab319d --- /dev/null +++ b/tests/baselines/reference/Protected9.errors.txt @@ -0,0 +1,12 @@ +tests/cases/conformance/parser/ecmascript5/Protected/Protected9.ts(2,26): error TS1005: '=' expected. +tests/cases/conformance/parser/ecmascript5/Protected/Protected9.ts(2,26): error TS2304: Cannot find name 'p'. + + +==== tests/cases/conformance/parser/ecmascript5/Protected/Protected9.ts (2 errors) ==== + class C { + constructor(protected p) { } + ~ +!!! error TS1005: '=' expected. + ~ +!!! error TS2304: Cannot find name 'p'. + } \ No newline at end of file diff --git a/tests/baselines/reference/TupleType1.js b/tests/baselines/reference/TupleType1.js new file mode 100644 index 0000000000..96a1db4654 --- /dev/null +++ b/tests/baselines/reference/TupleType1.js @@ -0,0 +1,5 @@ +//// [TupleType1.ts] +var v: [number] + +//// [TupleType1.js] +var v; diff --git a/tests/baselines/reference/TupleType1.types b/tests/baselines/reference/TupleType1.types new file mode 100644 index 0000000000..39fa32d5dc --- /dev/null +++ b/tests/baselines/reference/TupleType1.types @@ -0,0 +1,4 @@ +=== tests/cases/conformance/parser/ecmascript5/TupleTypes/TupleType1.ts === +var v: [number] +>v : [number] + diff --git a/tests/baselines/reference/TupleType2.js b/tests/baselines/reference/TupleType2.js new file mode 100644 index 0000000000..e74db6f031 --- /dev/null +++ b/tests/baselines/reference/TupleType2.js @@ -0,0 +1,5 @@ +//// [TupleType2.ts] +var v: [number, string] + +//// [TupleType2.js] +var v; diff --git a/tests/baselines/reference/TupleType2.types b/tests/baselines/reference/TupleType2.types new file mode 100644 index 0000000000..0f35f60786 --- /dev/null +++ b/tests/baselines/reference/TupleType2.types @@ -0,0 +1,4 @@ +=== tests/cases/conformance/parser/ecmascript5/TupleTypes/TupleType2.ts === +var v: [number, string] +>v : [number, string] + diff --git a/tests/baselines/reference/TupleType3.errors.txt b/tests/baselines/reference/TupleType3.errors.txt new file mode 100644 index 0000000000..a7f5b11732 --- /dev/null +++ b/tests/baselines/reference/TupleType3.errors.txt @@ -0,0 +1,7 @@ +tests/cases/conformance/parser/ecmascript5/TupleTypes/TupleType3.ts(1,8): error TS1122: A tuple type element list cannot be empty. + + +==== tests/cases/conformance/parser/ecmascript5/TupleTypes/TupleType3.ts (1 errors) ==== + var v: [] + ~~ +!!! error TS1122: A tuple type element list cannot be empty. \ No newline at end of file diff --git a/tests/baselines/reference/TupleType4.errors.txt b/tests/baselines/reference/TupleType4.errors.txt new file mode 100644 index 0000000000..987f40b7ae --- /dev/null +++ b/tests/baselines/reference/TupleType4.errors.txt @@ -0,0 +1,7 @@ +tests/cases/conformance/parser/ecmascript5/TupleTypes/TupleType4.ts(1,9): error TS1005: ']' expected. + + +==== tests/cases/conformance/parser/ecmascript5/TupleTypes/TupleType4.ts (1 errors) ==== + var v: [ + +!!! error TS1005: ']' expected. \ No newline at end of file diff --git a/tests/baselines/reference/TupleType5.errors.txt b/tests/baselines/reference/TupleType5.errors.txt new file mode 100644 index 0000000000..1a6ca7f99b --- /dev/null +++ b/tests/baselines/reference/TupleType5.errors.txt @@ -0,0 +1,7 @@ +tests/cases/conformance/parser/ecmascript5/TupleTypes/TupleType5.ts(1,15): error TS1009: Trailing comma not allowed. + + +==== tests/cases/conformance/parser/ecmascript5/TupleTypes/TupleType5.ts (1 errors) ==== + var v: [number,] + ~ +!!! error TS1009: Trailing comma not allowed. \ No newline at end of file diff --git a/tests/cases/conformance/parser/ecmascript5/Protected/Protected1.ts b/tests/cases/conformance/parser/ecmascript5/Protected/Protected1.ts new file mode 100644 index 0000000000..9a23ee5d20 --- /dev/null +++ b/tests/cases/conformance/parser/ecmascript5/Protected/Protected1.ts @@ -0,0 +1,2 @@ +protected class C { +} \ No newline at end of file diff --git a/tests/cases/conformance/parser/ecmascript5/Protected/Protected2.ts b/tests/cases/conformance/parser/ecmascript5/Protected/Protected2.ts new file mode 100644 index 0000000000..d2598a1c48 --- /dev/null +++ b/tests/cases/conformance/parser/ecmascript5/Protected/Protected2.ts @@ -0,0 +1,2 @@ +protected module M { +} \ No newline at end of file diff --git a/tests/cases/conformance/parser/ecmascript5/Protected/Protected3.ts b/tests/cases/conformance/parser/ecmascript5/Protected/Protected3.ts new file mode 100644 index 0000000000..2b07e1ca9a --- /dev/null +++ b/tests/cases/conformance/parser/ecmascript5/Protected/Protected3.ts @@ -0,0 +1,3 @@ +class C { + protected constructor() { } +} \ No newline at end of file diff --git a/tests/cases/conformance/parser/ecmascript5/Protected/Protected4.ts b/tests/cases/conformance/parser/ecmascript5/Protected/Protected4.ts new file mode 100644 index 0000000000..e464330f1d --- /dev/null +++ b/tests/cases/conformance/parser/ecmascript5/Protected/Protected4.ts @@ -0,0 +1,3 @@ +class C { + protected public m() { } +} \ No newline at end of file diff --git a/tests/cases/conformance/parser/ecmascript5/Protected/Protected5.ts b/tests/cases/conformance/parser/ecmascript5/Protected/Protected5.ts new file mode 100644 index 0000000000..f0bf235a03 --- /dev/null +++ b/tests/cases/conformance/parser/ecmascript5/Protected/Protected5.ts @@ -0,0 +1,3 @@ +class C { + protected static m() { } +} \ No newline at end of file diff --git a/tests/cases/conformance/parser/ecmascript5/Protected/Protected6.ts b/tests/cases/conformance/parser/ecmascript5/Protected/Protected6.ts new file mode 100644 index 0000000000..4461885ab5 --- /dev/null +++ b/tests/cases/conformance/parser/ecmascript5/Protected/Protected6.ts @@ -0,0 +1,3 @@ +class C { + static protected m() { } +} \ No newline at end of file diff --git a/tests/cases/conformance/parser/ecmascript5/Protected/Protected7.ts b/tests/cases/conformance/parser/ecmascript5/Protected/Protected7.ts new file mode 100644 index 0000000000..c3aef0d764 --- /dev/null +++ b/tests/cases/conformance/parser/ecmascript5/Protected/Protected7.ts @@ -0,0 +1,3 @@ +class C { + protected private m() { } +} \ No newline at end of file diff --git a/tests/cases/conformance/parser/ecmascript5/Protected/Protected8.ts b/tests/cases/conformance/parser/ecmascript5/Protected/Protected8.ts new file mode 100644 index 0000000000..5337751fb1 --- /dev/null +++ b/tests/cases/conformance/parser/ecmascript5/Protected/Protected8.ts @@ -0,0 +1,4 @@ +interface I { + protected + p +} \ No newline at end of file diff --git a/tests/cases/conformance/parser/ecmascript5/Protected/Protected9.ts b/tests/cases/conformance/parser/ecmascript5/Protected/Protected9.ts new file mode 100644 index 0000000000..4e24e28ec1 --- /dev/null +++ b/tests/cases/conformance/parser/ecmascript5/Protected/Protected9.ts @@ -0,0 +1,3 @@ +class C { + constructor(protected p) { } +} \ No newline at end of file diff --git a/tests/cases/conformance/parser/ecmascript5/TupleTypes/TupleType1.ts b/tests/cases/conformance/parser/ecmascript5/TupleTypes/TupleType1.ts new file mode 100644 index 0000000000..e05b68973c --- /dev/null +++ b/tests/cases/conformance/parser/ecmascript5/TupleTypes/TupleType1.ts @@ -0,0 +1 @@ +var v: [number] \ No newline at end of file diff --git a/tests/cases/conformance/parser/ecmascript5/TupleTypes/TupleType2.ts b/tests/cases/conformance/parser/ecmascript5/TupleTypes/TupleType2.ts new file mode 100644 index 0000000000..adb1267bac --- /dev/null +++ b/tests/cases/conformance/parser/ecmascript5/TupleTypes/TupleType2.ts @@ -0,0 +1 @@ +var v: [number, string] \ No newline at end of file diff --git a/tests/cases/conformance/parser/ecmascript5/TupleTypes/TupleType3.ts b/tests/cases/conformance/parser/ecmascript5/TupleTypes/TupleType3.ts new file mode 100644 index 0000000000..fcf7fa2512 --- /dev/null +++ b/tests/cases/conformance/parser/ecmascript5/TupleTypes/TupleType3.ts @@ -0,0 +1 @@ +var v: [] \ No newline at end of file diff --git a/tests/cases/conformance/parser/ecmascript5/TupleTypes/TupleType4.ts b/tests/cases/conformance/parser/ecmascript5/TupleTypes/TupleType4.ts new file mode 100644 index 0000000000..036960004d --- /dev/null +++ b/tests/cases/conformance/parser/ecmascript5/TupleTypes/TupleType4.ts @@ -0,0 +1 @@ +var v: [ \ No newline at end of file diff --git a/tests/cases/conformance/parser/ecmascript5/TupleTypes/TupleType5.ts b/tests/cases/conformance/parser/ecmascript5/TupleTypes/TupleType5.ts new file mode 100644 index 0000000000..48d638cac9 --- /dev/null +++ b/tests/cases/conformance/parser/ecmascript5/TupleTypes/TupleType5.ts @@ -0,0 +1 @@ +var v: [number,] \ No newline at end of file