diff --git a/tsserver/lib.d.ts b/tsserver/lib.d.ts index 15bcc31c..e0fdf442 100644 --- a/tsserver/lib.d.ts +++ b/tsserver/lib.d.ts @@ -14223,7 +14223,11 @@ declare function importScripts(...urls: string[]): void; /// Windows Script Host APIS ///////////////////////////// -declare var ActiveXObject: { new (s: string): any; }; + +interface ActiveXObject { + new (s: string): any; +} +declare var ActiveXObject: ActiveXObject; interface ITextWriter { Write(s: string): void; @@ -14231,11 +14235,157 @@ interface ITextWriter { Close(): void; } +interface TextStreamBase { + /** + * The column number of the current character position in an input stream. + */ + Column: number; + /** + * The current line number in an input stream. + */ + Line: number; + /** + * Closes a text stream. + * It is not necessary to close standard streams; they close automatically when the process ends. If you close a standard stream, be aware that any other pointers to that standard stream become invalid. + */ + Close(): void; +} + +interface TextStreamWriter extends TextStreamBase { + /** + * Sends a string to an output stream. + */ + Write(s: string): void; + /** + * Sends a specified number of blank lines (newline characters) to an output stream. + */ + WriteBlankLines(intLines: number): void; + /** + * Sends a string followed by a newline character to an output stream. + */ + WriteLine(s: string): void; +} + +interface TextStreamReader extends TextStreamBase { + /** + * Returns a specified number of characters from an input stream, beginning at the current pointer position. + * Does not return until the ENTER key is pressed. + * Can only be used on a stream in reading mode; causes an error in writing or appending mode. + */ + Read(characters: number): string; + /** + * Returns all characters from an input stream. + * Can only be used on a stream in reading mode; causes an error in writing or appending mode. + */ + ReadAll(): string; + /** + * Returns an entire line from an input stream. + * Although this method extracts the newline character, it does not add it to the returned string. + * Can only be used on a stream in reading mode; causes an error in writing or appending mode. + */ + ReadLine(): string; + /** + * Skips a specified number of characters when reading from an input text stream. + * Can only be used on a stream in reading mode; causes an error in writing or appending mode. + * @param characters Positive number of characters to skip forward. (Backward skipping is not supported.) + */ + Skip(characters: number): void; + /** + * Skips the next line when reading from an input text stream. + * Can only be used on a stream in reading mode, not writing or appending mode. + */ + SkipLine(): void; + /** + * Indicates whether the stream pointer position is at the end of a line. + */ + AtEndOfLine: boolean; + /** + * Indicates whether the stream pointer position is at the end of a stream. + */ + AtEndOfStream: boolean; +} + declare var WScript: { + /** + * Outputs text to either a message box (under WScript.exe) or the command console window followed by a newline (under CScript.ext). + */ Echo(s: any): void; - StdErr: ITextWriter; - StdOut: ITextWriter; + /** + * Exposes the write-only error output stream for the current script. + * Can be accessed only while using CScript.exe. + */ + StdErr: TextStreamWriter; + /** + * Exposes the write-only output stream for the current script. + * Can be accessed only while using CScript.exe. + */ + StdOut: TextStreamWriter; Arguments: { length: number; Item(n: number): string; }; + /** + * The full path of the currently running script. + */ ScriptFullName: string; + /** + * Forces the script to stop immediately, with an optional exit code. + */ Quit(exitCode?: number): number; -} + /** + * The Windows Script Host build version number. + */ + BuildVersion: number; + /** + * Fully qualified path of the host executable. + */ + FullName: string; + /** + * Gets/sets the script mode - interactive(true) or batch(false). + */ + Interactive: boolean; + /** + * The name of the host executable (WScript.exe or CScript.exe). + */ + Name: string; + /** + * Path of the directory containing the host executable. + */ + Path: string; + /** + * The filename of the currently running script. + */ + ScriptName: string; + /** + * Exposes the read-only input stream for the current script. + * Can be accessed only while using CScript.exe. + */ + StdIn: TextStreamReader; + /** + * Windows Script Host version + */ + Version: string; + /** + * Connects a COM object's event sources to functions named with a given prefix, in the form prefix_event. + */ + ConnectObject(objEventSource: any, strPrefix: string): void; + /** + * Creates a COM object. + * @param strProgiID + * @param strPrefix Function names in the form prefix_event will be bound to this object's COM events. + */ + CreateObject(strProgID: string, strPrefix?: string): any; + /** + * Disconnects a COM object from its event sources. + */ + DisconnectObject(obj: any): void; + /** + * Retrieves an existing object with the specified ProgID from memory, or creates a new one from a file. + * @param strPathname Fully qualified path to the file containing the object persisted to disk. For objects in memory, pass a zero-length string. + * @param strProgID + * @param strPrefix Function names in the form prefix_event will be bound to this object's COM events. + */ + GetObject(strPathname: string, strProgID?: string, strPrefix?: string): any; + /** + * Suspends script execution for a specified length of time, then continues execution. + * @param intTime Interval (in milliseconds) to suspend script execution. + */ + Sleep(intTime: number): void; +}; diff --git a/tsserver/lib.es6.d.ts b/tsserver/lib.es6.d.ts index 114e15e6..edc51cad 100644 --- a/tsserver/lib.es6.d.ts +++ b/tsserver/lib.es6.d.ts @@ -17205,7 +17205,11 @@ declare function importScripts(...urls: string[]): void; /// Windows Script Host APIS ///////////////////////////// -declare var ActiveXObject: { new (s: string): any; }; + +interface ActiveXObject { + new (s: string): any; +} +declare var ActiveXObject: ActiveXObject; interface ITextWriter { Write(s: string): void; @@ -17213,11 +17217,157 @@ interface ITextWriter { Close(): void; } +interface TextStreamBase { + /** + * The column number of the current character position in an input stream. + */ + Column: number; + /** + * The current line number in an input stream. + */ + Line: number; + /** + * Closes a text stream. + * It is not necessary to close standard streams; they close automatically when the process ends. If you close a standard stream, be aware that any other pointers to that standard stream become invalid. + */ + Close(): void; +} + +interface TextStreamWriter extends TextStreamBase { + /** + * Sends a string to an output stream. + */ + Write(s: string): void; + /** + * Sends a specified number of blank lines (newline characters) to an output stream. + */ + WriteBlankLines(intLines: number): void; + /** + * Sends a string followed by a newline character to an output stream. + */ + WriteLine(s: string): void; +} + +interface TextStreamReader extends TextStreamBase { + /** + * Returns a specified number of characters from an input stream, beginning at the current pointer position. + * Does not return until the ENTER key is pressed. + * Can only be used on a stream in reading mode; causes an error in writing or appending mode. + */ + Read(characters: number): string; + /** + * Returns all characters from an input stream. + * Can only be used on a stream in reading mode; causes an error in writing or appending mode. + */ + ReadAll(): string; + /** + * Returns an entire line from an input stream. + * Although this method extracts the newline character, it does not add it to the returned string. + * Can only be used on a stream in reading mode; causes an error in writing or appending mode. + */ + ReadLine(): string; + /** + * Skips a specified number of characters when reading from an input text stream. + * Can only be used on a stream in reading mode; causes an error in writing or appending mode. + * @param characters Positive number of characters to skip forward. (Backward skipping is not supported.) + */ + Skip(characters: number): void; + /** + * Skips the next line when reading from an input text stream. + * Can only be used on a stream in reading mode, not writing or appending mode. + */ + SkipLine(): void; + /** + * Indicates whether the stream pointer position is at the end of a line. + */ + AtEndOfLine: boolean; + /** + * Indicates whether the stream pointer position is at the end of a stream. + */ + AtEndOfStream: boolean; +} + declare var WScript: { + /** + * Outputs text to either a message box (under WScript.exe) or the command console window followed by a newline (under CScript.ext). + */ Echo(s: any): void; - StdErr: ITextWriter; - StdOut: ITextWriter; + /** + * Exposes the write-only error output stream for the current script. + * Can be accessed only while using CScript.exe. + */ + StdErr: TextStreamWriter; + /** + * Exposes the write-only output stream for the current script. + * Can be accessed only while using CScript.exe. + */ + StdOut: TextStreamWriter; Arguments: { length: number; Item(n: number): string; }; + /** + * The full path of the currently running script. + */ ScriptFullName: string; + /** + * Forces the script to stop immediately, with an optional exit code. + */ Quit(exitCode?: number): number; -} + /** + * The Windows Script Host build version number. + */ + BuildVersion: number; + /** + * Fully qualified path of the host executable. + */ + FullName: string; + /** + * Gets/sets the script mode - interactive(true) or batch(false). + */ + Interactive: boolean; + /** + * The name of the host executable (WScript.exe or CScript.exe). + */ + Name: string; + /** + * Path of the directory containing the host executable. + */ + Path: string; + /** + * The filename of the currently running script. + */ + ScriptName: string; + /** + * Exposes the read-only input stream for the current script. + * Can be accessed only while using CScript.exe. + */ + StdIn: TextStreamReader; + /** + * Windows Script Host version + */ + Version: string; + /** + * Connects a COM object's event sources to functions named with a given prefix, in the form prefix_event. + */ + ConnectObject(objEventSource: any, strPrefix: string): void; + /** + * Creates a COM object. + * @param strProgiID + * @param strPrefix Function names in the form prefix_event will be bound to this object's COM events. + */ + CreateObject(strProgID: string, strPrefix?: string): any; + /** + * Disconnects a COM object from its event sources. + */ + DisconnectObject(obj: any): void; + /** + * Retrieves an existing object with the specified ProgID from memory, or creates a new one from a file. + * @param strPathname Fully qualified path to the file containing the object persisted to disk. For objects in memory, pass a zero-length string. + * @param strProgID + * @param strPrefix Function names in the form prefix_event will be bound to this object's COM events. + */ + GetObject(strPathname: string, strProgID?: string, strPrefix?: string): any; + /** + * Suspends script execution for a specified length of time, then continues execution. + * @param intTime Interval (in milliseconds) to suspend script execution. + */ + Sleep(intTime: number): void; +}; diff --git a/tsserver/tsserver.js b/tsserver/tsserver.js index 4206b81a..7fe3b3ef 100644 --- a/tsserver/tsserver.js +++ b/tsserver/tsserver.js @@ -1,36448 +1,36037 @@ -var ts; -(function (ts) { - (function (SyntaxKind) { - SyntaxKind[SyntaxKind["Unknown"] = 0] = "Unknown"; - SyntaxKind[SyntaxKind["EndOfFileToken"] = 1] = "EndOfFileToken"; - SyntaxKind[SyntaxKind["SingleLineCommentTrivia"] = 2] = "SingleLineCommentTrivia"; - SyntaxKind[SyntaxKind["MultiLineCommentTrivia"] = 3] = "MultiLineCommentTrivia"; - SyntaxKind[SyntaxKind["NewLineTrivia"] = 4] = "NewLineTrivia"; - SyntaxKind[SyntaxKind["WhitespaceTrivia"] = 5] = "WhitespaceTrivia"; - SyntaxKind[SyntaxKind["ConflictMarkerTrivia"] = 6] = "ConflictMarkerTrivia"; - SyntaxKind[SyntaxKind["NumericLiteral"] = 7] = "NumericLiteral"; - SyntaxKind[SyntaxKind["StringLiteral"] = 8] = "StringLiteral"; - SyntaxKind[SyntaxKind["RegularExpressionLiteral"] = 9] = "RegularExpressionLiteral"; - SyntaxKind[SyntaxKind["NoSubstitutionTemplateLiteral"] = 10] = "NoSubstitutionTemplateLiteral"; - SyntaxKind[SyntaxKind["TemplateHead"] = 11] = "TemplateHead"; - SyntaxKind[SyntaxKind["TemplateMiddle"] = 12] = "TemplateMiddle"; - SyntaxKind[SyntaxKind["TemplateTail"] = 13] = "TemplateTail"; - SyntaxKind[SyntaxKind["OpenBraceToken"] = 14] = "OpenBraceToken"; - SyntaxKind[SyntaxKind["CloseBraceToken"] = 15] = "CloseBraceToken"; - SyntaxKind[SyntaxKind["OpenParenToken"] = 16] = "OpenParenToken"; - SyntaxKind[SyntaxKind["CloseParenToken"] = 17] = "CloseParenToken"; - SyntaxKind[SyntaxKind["OpenBracketToken"] = 18] = "OpenBracketToken"; - SyntaxKind[SyntaxKind["CloseBracketToken"] = 19] = "CloseBracketToken"; - SyntaxKind[SyntaxKind["DotToken"] = 20] = "DotToken"; - SyntaxKind[SyntaxKind["DotDotDotToken"] = 21] = "DotDotDotToken"; - SyntaxKind[SyntaxKind["SemicolonToken"] = 22] = "SemicolonToken"; - SyntaxKind[SyntaxKind["CommaToken"] = 23] = "CommaToken"; - SyntaxKind[SyntaxKind["LessThanToken"] = 24] = "LessThanToken"; - SyntaxKind[SyntaxKind["GreaterThanToken"] = 25] = "GreaterThanToken"; - SyntaxKind[SyntaxKind["LessThanEqualsToken"] = 26] = "LessThanEqualsToken"; - SyntaxKind[SyntaxKind["GreaterThanEqualsToken"] = 27] = "GreaterThanEqualsToken"; - SyntaxKind[SyntaxKind["EqualsEqualsToken"] = 28] = "EqualsEqualsToken"; - SyntaxKind[SyntaxKind["ExclamationEqualsToken"] = 29] = "ExclamationEqualsToken"; - SyntaxKind[SyntaxKind["EqualsEqualsEqualsToken"] = 30] = "EqualsEqualsEqualsToken"; - SyntaxKind[SyntaxKind["ExclamationEqualsEqualsToken"] = 31] = "ExclamationEqualsEqualsToken"; - SyntaxKind[SyntaxKind["EqualsGreaterThanToken"] = 32] = "EqualsGreaterThanToken"; - SyntaxKind[SyntaxKind["PlusToken"] = 33] = "PlusToken"; - SyntaxKind[SyntaxKind["MinusToken"] = 34] = "MinusToken"; - SyntaxKind[SyntaxKind["AsteriskToken"] = 35] = "AsteriskToken"; - SyntaxKind[SyntaxKind["SlashToken"] = 36] = "SlashToken"; - SyntaxKind[SyntaxKind["PercentToken"] = 37] = "PercentToken"; - SyntaxKind[SyntaxKind["PlusPlusToken"] = 38] = "PlusPlusToken"; - SyntaxKind[SyntaxKind["MinusMinusToken"] = 39] = "MinusMinusToken"; - SyntaxKind[SyntaxKind["LessThanLessThanToken"] = 40] = "LessThanLessThanToken"; - SyntaxKind[SyntaxKind["GreaterThanGreaterThanToken"] = 41] = "GreaterThanGreaterThanToken"; - SyntaxKind[SyntaxKind["GreaterThanGreaterThanGreaterThanToken"] = 42] = "GreaterThanGreaterThanGreaterThanToken"; - SyntaxKind[SyntaxKind["AmpersandToken"] = 43] = "AmpersandToken"; - SyntaxKind[SyntaxKind["BarToken"] = 44] = "BarToken"; - SyntaxKind[SyntaxKind["CaretToken"] = 45] = "CaretToken"; - SyntaxKind[SyntaxKind["ExclamationToken"] = 46] = "ExclamationToken"; - SyntaxKind[SyntaxKind["TildeToken"] = 47] = "TildeToken"; - SyntaxKind[SyntaxKind["AmpersandAmpersandToken"] = 48] = "AmpersandAmpersandToken"; - SyntaxKind[SyntaxKind["BarBarToken"] = 49] = "BarBarToken"; - SyntaxKind[SyntaxKind["QuestionToken"] = 50] = "QuestionToken"; - SyntaxKind[SyntaxKind["ColonToken"] = 51] = "ColonToken"; - SyntaxKind[SyntaxKind["AtToken"] = 52] = "AtToken"; - SyntaxKind[SyntaxKind["EqualsToken"] = 53] = "EqualsToken"; - SyntaxKind[SyntaxKind["PlusEqualsToken"] = 54] = "PlusEqualsToken"; - SyntaxKind[SyntaxKind["MinusEqualsToken"] = 55] = "MinusEqualsToken"; - SyntaxKind[SyntaxKind["AsteriskEqualsToken"] = 56] = "AsteriskEqualsToken"; - SyntaxKind[SyntaxKind["SlashEqualsToken"] = 57] = "SlashEqualsToken"; - SyntaxKind[SyntaxKind["PercentEqualsToken"] = 58] = "PercentEqualsToken"; - SyntaxKind[SyntaxKind["LessThanLessThanEqualsToken"] = 59] = "LessThanLessThanEqualsToken"; - SyntaxKind[SyntaxKind["GreaterThanGreaterThanEqualsToken"] = 60] = "GreaterThanGreaterThanEqualsToken"; - SyntaxKind[SyntaxKind["GreaterThanGreaterThanGreaterThanEqualsToken"] = 61] = "GreaterThanGreaterThanGreaterThanEqualsToken"; - SyntaxKind[SyntaxKind["AmpersandEqualsToken"] = 62] = "AmpersandEqualsToken"; - SyntaxKind[SyntaxKind["BarEqualsToken"] = 63] = "BarEqualsToken"; - SyntaxKind[SyntaxKind["CaretEqualsToken"] = 64] = "CaretEqualsToken"; - SyntaxKind[SyntaxKind["Identifier"] = 65] = "Identifier"; - SyntaxKind[SyntaxKind["BreakKeyword"] = 66] = "BreakKeyword"; - SyntaxKind[SyntaxKind["CaseKeyword"] = 67] = "CaseKeyword"; - SyntaxKind[SyntaxKind["CatchKeyword"] = 68] = "CatchKeyword"; - SyntaxKind[SyntaxKind["ClassKeyword"] = 69] = "ClassKeyword"; - SyntaxKind[SyntaxKind["ConstKeyword"] = 70] = "ConstKeyword"; - SyntaxKind[SyntaxKind["ContinueKeyword"] = 71] = "ContinueKeyword"; - SyntaxKind[SyntaxKind["DebuggerKeyword"] = 72] = "DebuggerKeyword"; - SyntaxKind[SyntaxKind["DefaultKeyword"] = 73] = "DefaultKeyword"; - SyntaxKind[SyntaxKind["DeleteKeyword"] = 74] = "DeleteKeyword"; - SyntaxKind[SyntaxKind["DoKeyword"] = 75] = "DoKeyword"; - SyntaxKind[SyntaxKind["ElseKeyword"] = 76] = "ElseKeyword"; - SyntaxKind[SyntaxKind["EnumKeyword"] = 77] = "EnumKeyword"; - SyntaxKind[SyntaxKind["ExportKeyword"] = 78] = "ExportKeyword"; - SyntaxKind[SyntaxKind["ExtendsKeyword"] = 79] = "ExtendsKeyword"; - SyntaxKind[SyntaxKind["FalseKeyword"] = 80] = "FalseKeyword"; - SyntaxKind[SyntaxKind["FinallyKeyword"] = 81] = "FinallyKeyword"; - SyntaxKind[SyntaxKind["ForKeyword"] = 82] = "ForKeyword"; - SyntaxKind[SyntaxKind["FunctionKeyword"] = 83] = "FunctionKeyword"; - SyntaxKind[SyntaxKind["IfKeyword"] = 84] = "IfKeyword"; - SyntaxKind[SyntaxKind["ImportKeyword"] = 85] = "ImportKeyword"; - SyntaxKind[SyntaxKind["InKeyword"] = 86] = "InKeyword"; - SyntaxKind[SyntaxKind["InstanceOfKeyword"] = 87] = "InstanceOfKeyword"; - SyntaxKind[SyntaxKind["NewKeyword"] = 88] = "NewKeyword"; - SyntaxKind[SyntaxKind["NullKeyword"] = 89] = "NullKeyword"; - SyntaxKind[SyntaxKind["ReturnKeyword"] = 90] = "ReturnKeyword"; - SyntaxKind[SyntaxKind["SuperKeyword"] = 91] = "SuperKeyword"; - SyntaxKind[SyntaxKind["SwitchKeyword"] = 92] = "SwitchKeyword"; - SyntaxKind[SyntaxKind["ThisKeyword"] = 93] = "ThisKeyword"; - SyntaxKind[SyntaxKind["ThrowKeyword"] = 94] = "ThrowKeyword"; - SyntaxKind[SyntaxKind["TrueKeyword"] = 95] = "TrueKeyword"; - SyntaxKind[SyntaxKind["TryKeyword"] = 96] = "TryKeyword"; - SyntaxKind[SyntaxKind["TypeOfKeyword"] = 97] = "TypeOfKeyword"; - SyntaxKind[SyntaxKind["VarKeyword"] = 98] = "VarKeyword"; - SyntaxKind[SyntaxKind["VoidKeyword"] = 99] = "VoidKeyword"; - SyntaxKind[SyntaxKind["WhileKeyword"] = 100] = "WhileKeyword"; - SyntaxKind[SyntaxKind["WithKeyword"] = 101] = "WithKeyword"; - SyntaxKind[SyntaxKind["AsKeyword"] = 102] = "AsKeyword"; - SyntaxKind[SyntaxKind["ImplementsKeyword"] = 103] = "ImplementsKeyword"; - SyntaxKind[SyntaxKind["InterfaceKeyword"] = 104] = "InterfaceKeyword"; - SyntaxKind[SyntaxKind["LetKeyword"] = 105] = "LetKeyword"; - SyntaxKind[SyntaxKind["PackageKeyword"] = 106] = "PackageKeyword"; - SyntaxKind[SyntaxKind["PrivateKeyword"] = 107] = "PrivateKeyword"; - SyntaxKind[SyntaxKind["ProtectedKeyword"] = 108] = "ProtectedKeyword"; - SyntaxKind[SyntaxKind["PublicKeyword"] = 109] = "PublicKeyword"; - SyntaxKind[SyntaxKind["StaticKeyword"] = 110] = "StaticKeyword"; - SyntaxKind[SyntaxKind["YieldKeyword"] = 111] = "YieldKeyword"; - SyntaxKind[SyntaxKind["AnyKeyword"] = 112] = "AnyKeyword"; - SyntaxKind[SyntaxKind["BooleanKeyword"] = 113] = "BooleanKeyword"; - SyntaxKind[SyntaxKind["ConstructorKeyword"] = 114] = "ConstructorKeyword"; - SyntaxKind[SyntaxKind["DeclareKeyword"] = 115] = "DeclareKeyword"; - SyntaxKind[SyntaxKind["GetKeyword"] = 116] = "GetKeyword"; - SyntaxKind[SyntaxKind["ModuleKeyword"] = 117] = "ModuleKeyword"; - SyntaxKind[SyntaxKind["RequireKeyword"] = 118] = "RequireKeyword"; - SyntaxKind[SyntaxKind["NumberKeyword"] = 119] = "NumberKeyword"; - SyntaxKind[SyntaxKind["SetKeyword"] = 120] = "SetKeyword"; - SyntaxKind[SyntaxKind["StringKeyword"] = 121] = "StringKeyword"; - SyntaxKind[SyntaxKind["SymbolKeyword"] = 122] = "SymbolKeyword"; - SyntaxKind[SyntaxKind["TypeKeyword"] = 123] = "TypeKeyword"; - SyntaxKind[SyntaxKind["FromKeyword"] = 124] = "FromKeyword"; - SyntaxKind[SyntaxKind["OfKeyword"] = 125] = "OfKeyword"; - SyntaxKind[SyntaxKind["QualifiedName"] = 126] = "QualifiedName"; - SyntaxKind[SyntaxKind["ComputedPropertyName"] = 127] = "ComputedPropertyName"; - SyntaxKind[SyntaxKind["TypeParameter"] = 128] = "TypeParameter"; - SyntaxKind[SyntaxKind["Parameter"] = 129] = "Parameter"; - SyntaxKind[SyntaxKind["Decorator"] = 130] = "Decorator"; - SyntaxKind[SyntaxKind["PropertySignature"] = 131] = "PropertySignature"; - SyntaxKind[SyntaxKind["PropertyDeclaration"] = 132] = "PropertyDeclaration"; - SyntaxKind[SyntaxKind["MethodSignature"] = 133] = "MethodSignature"; - SyntaxKind[SyntaxKind["MethodDeclaration"] = 134] = "MethodDeclaration"; - SyntaxKind[SyntaxKind["Constructor"] = 135] = "Constructor"; - SyntaxKind[SyntaxKind["GetAccessor"] = 136] = "GetAccessor"; - SyntaxKind[SyntaxKind["SetAccessor"] = 137] = "SetAccessor"; - SyntaxKind[SyntaxKind["CallSignature"] = 138] = "CallSignature"; - SyntaxKind[SyntaxKind["ConstructSignature"] = 139] = "ConstructSignature"; - SyntaxKind[SyntaxKind["IndexSignature"] = 140] = "IndexSignature"; - SyntaxKind[SyntaxKind["TypeReference"] = 141] = "TypeReference"; - SyntaxKind[SyntaxKind["FunctionType"] = 142] = "FunctionType"; - SyntaxKind[SyntaxKind["ConstructorType"] = 143] = "ConstructorType"; - SyntaxKind[SyntaxKind["TypeQuery"] = 144] = "TypeQuery"; - SyntaxKind[SyntaxKind["TypeLiteral"] = 145] = "TypeLiteral"; - SyntaxKind[SyntaxKind["ArrayType"] = 146] = "ArrayType"; - SyntaxKind[SyntaxKind["TupleType"] = 147] = "TupleType"; - SyntaxKind[SyntaxKind["UnionType"] = 148] = "UnionType"; - SyntaxKind[SyntaxKind["ParenthesizedType"] = 149] = "ParenthesizedType"; - SyntaxKind[SyntaxKind["ObjectBindingPattern"] = 150] = "ObjectBindingPattern"; - SyntaxKind[SyntaxKind["ArrayBindingPattern"] = 151] = "ArrayBindingPattern"; - SyntaxKind[SyntaxKind["BindingElement"] = 152] = "BindingElement"; - SyntaxKind[SyntaxKind["ArrayLiteralExpression"] = 153] = "ArrayLiteralExpression"; - SyntaxKind[SyntaxKind["ObjectLiteralExpression"] = 154] = "ObjectLiteralExpression"; - SyntaxKind[SyntaxKind["PropertyAccessExpression"] = 155] = "PropertyAccessExpression"; - SyntaxKind[SyntaxKind["ElementAccessExpression"] = 156] = "ElementAccessExpression"; - SyntaxKind[SyntaxKind["CallExpression"] = 157] = "CallExpression"; - SyntaxKind[SyntaxKind["NewExpression"] = 158] = "NewExpression"; - SyntaxKind[SyntaxKind["TaggedTemplateExpression"] = 159] = "TaggedTemplateExpression"; - SyntaxKind[SyntaxKind["TypeAssertionExpression"] = 160] = "TypeAssertionExpression"; - SyntaxKind[SyntaxKind["ParenthesizedExpression"] = 161] = "ParenthesizedExpression"; - SyntaxKind[SyntaxKind["FunctionExpression"] = 162] = "FunctionExpression"; - SyntaxKind[SyntaxKind["ArrowFunction"] = 163] = "ArrowFunction"; - SyntaxKind[SyntaxKind["DeleteExpression"] = 164] = "DeleteExpression"; - SyntaxKind[SyntaxKind["TypeOfExpression"] = 165] = "TypeOfExpression"; - SyntaxKind[SyntaxKind["VoidExpression"] = 166] = "VoidExpression"; - SyntaxKind[SyntaxKind["PrefixUnaryExpression"] = 167] = "PrefixUnaryExpression"; - SyntaxKind[SyntaxKind["PostfixUnaryExpression"] = 168] = "PostfixUnaryExpression"; - SyntaxKind[SyntaxKind["BinaryExpression"] = 169] = "BinaryExpression"; - SyntaxKind[SyntaxKind["ConditionalExpression"] = 170] = "ConditionalExpression"; - SyntaxKind[SyntaxKind["TemplateExpression"] = 171] = "TemplateExpression"; - SyntaxKind[SyntaxKind["YieldExpression"] = 172] = "YieldExpression"; - SyntaxKind[SyntaxKind["SpreadElementExpression"] = 173] = "SpreadElementExpression"; - SyntaxKind[SyntaxKind["OmittedExpression"] = 174] = "OmittedExpression"; - SyntaxKind[SyntaxKind["TemplateSpan"] = 175] = "TemplateSpan"; - SyntaxKind[SyntaxKind["Block"] = 176] = "Block"; - SyntaxKind[SyntaxKind["VariableStatement"] = 177] = "VariableStatement"; - SyntaxKind[SyntaxKind["EmptyStatement"] = 178] = "EmptyStatement"; - SyntaxKind[SyntaxKind["ExpressionStatement"] = 179] = "ExpressionStatement"; - SyntaxKind[SyntaxKind["IfStatement"] = 180] = "IfStatement"; - SyntaxKind[SyntaxKind["DoStatement"] = 181] = "DoStatement"; - SyntaxKind[SyntaxKind["WhileStatement"] = 182] = "WhileStatement"; - SyntaxKind[SyntaxKind["ForStatement"] = 183] = "ForStatement"; - SyntaxKind[SyntaxKind["ForInStatement"] = 184] = "ForInStatement"; - SyntaxKind[SyntaxKind["ForOfStatement"] = 185] = "ForOfStatement"; - SyntaxKind[SyntaxKind["ContinueStatement"] = 186] = "ContinueStatement"; - SyntaxKind[SyntaxKind["BreakStatement"] = 187] = "BreakStatement"; - SyntaxKind[SyntaxKind["ReturnStatement"] = 188] = "ReturnStatement"; - SyntaxKind[SyntaxKind["WithStatement"] = 189] = "WithStatement"; - SyntaxKind[SyntaxKind["SwitchStatement"] = 190] = "SwitchStatement"; - SyntaxKind[SyntaxKind["LabeledStatement"] = 191] = "LabeledStatement"; - SyntaxKind[SyntaxKind["ThrowStatement"] = 192] = "ThrowStatement"; - SyntaxKind[SyntaxKind["TryStatement"] = 193] = "TryStatement"; - SyntaxKind[SyntaxKind["DebuggerStatement"] = 194] = "DebuggerStatement"; - SyntaxKind[SyntaxKind["VariableDeclaration"] = 195] = "VariableDeclaration"; - SyntaxKind[SyntaxKind["VariableDeclarationList"] = 196] = "VariableDeclarationList"; - SyntaxKind[SyntaxKind["FunctionDeclaration"] = 197] = "FunctionDeclaration"; - SyntaxKind[SyntaxKind["ClassDeclaration"] = 198] = "ClassDeclaration"; - SyntaxKind[SyntaxKind["InterfaceDeclaration"] = 199] = "InterfaceDeclaration"; - SyntaxKind[SyntaxKind["TypeAliasDeclaration"] = 200] = "TypeAliasDeclaration"; - SyntaxKind[SyntaxKind["EnumDeclaration"] = 201] = "EnumDeclaration"; - SyntaxKind[SyntaxKind["ModuleDeclaration"] = 202] = "ModuleDeclaration"; - SyntaxKind[SyntaxKind["ModuleBlock"] = 203] = "ModuleBlock"; - SyntaxKind[SyntaxKind["CaseBlock"] = 204] = "CaseBlock"; - SyntaxKind[SyntaxKind["ImportEqualsDeclaration"] = 205] = "ImportEqualsDeclaration"; - SyntaxKind[SyntaxKind["ImportDeclaration"] = 206] = "ImportDeclaration"; - SyntaxKind[SyntaxKind["ImportClause"] = 207] = "ImportClause"; - SyntaxKind[SyntaxKind["NamespaceImport"] = 208] = "NamespaceImport"; - SyntaxKind[SyntaxKind["NamedImports"] = 209] = "NamedImports"; - SyntaxKind[SyntaxKind["ImportSpecifier"] = 210] = "ImportSpecifier"; - SyntaxKind[SyntaxKind["ExportAssignment"] = 211] = "ExportAssignment"; - SyntaxKind[SyntaxKind["ExportDeclaration"] = 212] = "ExportDeclaration"; - SyntaxKind[SyntaxKind["NamedExports"] = 213] = "NamedExports"; - SyntaxKind[SyntaxKind["ExportSpecifier"] = 214] = "ExportSpecifier"; - SyntaxKind[SyntaxKind["MissingDeclaration"] = 215] = "MissingDeclaration"; - SyntaxKind[SyntaxKind["ExternalModuleReference"] = 216] = "ExternalModuleReference"; - SyntaxKind[SyntaxKind["CaseClause"] = 217] = "CaseClause"; - SyntaxKind[SyntaxKind["DefaultClause"] = 218] = "DefaultClause"; - SyntaxKind[SyntaxKind["HeritageClause"] = 219] = "HeritageClause"; - SyntaxKind[SyntaxKind["CatchClause"] = 220] = "CatchClause"; - SyntaxKind[SyntaxKind["PropertyAssignment"] = 221] = "PropertyAssignment"; - SyntaxKind[SyntaxKind["ShorthandPropertyAssignment"] = 222] = "ShorthandPropertyAssignment"; - SyntaxKind[SyntaxKind["EnumMember"] = 223] = "EnumMember"; - SyntaxKind[SyntaxKind["SourceFile"] = 224] = "SourceFile"; - SyntaxKind[SyntaxKind["SyntaxList"] = 225] = "SyntaxList"; - SyntaxKind[SyntaxKind["Count"] = 226] = "Count"; - SyntaxKind[SyntaxKind["FirstAssignment"] = 53] = "FirstAssignment"; - SyntaxKind[SyntaxKind["LastAssignment"] = 64] = "LastAssignment"; - SyntaxKind[SyntaxKind["FirstReservedWord"] = 66] = "FirstReservedWord"; - SyntaxKind[SyntaxKind["LastReservedWord"] = 101] = "LastReservedWord"; - SyntaxKind[SyntaxKind["FirstKeyword"] = 66] = "FirstKeyword"; - SyntaxKind[SyntaxKind["LastKeyword"] = 125] = "LastKeyword"; - SyntaxKind[SyntaxKind["FirstFutureReservedWord"] = 103] = "FirstFutureReservedWord"; - SyntaxKind[SyntaxKind["LastFutureReservedWord"] = 111] = "LastFutureReservedWord"; - SyntaxKind[SyntaxKind["FirstTypeNode"] = 141] = "FirstTypeNode"; - SyntaxKind[SyntaxKind["LastTypeNode"] = 149] = "LastTypeNode"; - SyntaxKind[SyntaxKind["FirstPunctuation"] = 14] = "FirstPunctuation"; - SyntaxKind[SyntaxKind["LastPunctuation"] = 64] = "LastPunctuation"; - SyntaxKind[SyntaxKind["FirstToken"] = 0] = "FirstToken"; - SyntaxKind[SyntaxKind["LastToken"] = 125] = "LastToken"; - SyntaxKind[SyntaxKind["FirstTriviaToken"] = 2] = "FirstTriviaToken"; - SyntaxKind[SyntaxKind["LastTriviaToken"] = 6] = "LastTriviaToken"; - SyntaxKind[SyntaxKind["FirstLiteralToken"] = 7] = "FirstLiteralToken"; - SyntaxKind[SyntaxKind["LastLiteralToken"] = 10] = "LastLiteralToken"; - SyntaxKind[SyntaxKind["FirstTemplateToken"] = 10] = "FirstTemplateToken"; - SyntaxKind[SyntaxKind["LastTemplateToken"] = 13] = "LastTemplateToken"; - SyntaxKind[SyntaxKind["FirstBinaryOperator"] = 24] = "FirstBinaryOperator"; - SyntaxKind[SyntaxKind["LastBinaryOperator"] = 64] = "LastBinaryOperator"; - SyntaxKind[SyntaxKind["FirstNode"] = 126] = "FirstNode"; - })(ts.SyntaxKind || (ts.SyntaxKind = {})); - var SyntaxKind = ts.SyntaxKind; - (function (NodeFlags) { - NodeFlags[NodeFlags["Export"] = 1] = "Export"; - NodeFlags[NodeFlags["Ambient"] = 2] = "Ambient"; - NodeFlags[NodeFlags["Public"] = 16] = "Public"; - NodeFlags[NodeFlags["Private"] = 32] = "Private"; - NodeFlags[NodeFlags["Protected"] = 64] = "Protected"; - NodeFlags[NodeFlags["Static"] = 128] = "Static"; - NodeFlags[NodeFlags["Default"] = 256] = "Default"; - NodeFlags[NodeFlags["MultiLine"] = 512] = "MultiLine"; - NodeFlags[NodeFlags["Synthetic"] = 1024] = "Synthetic"; - NodeFlags[NodeFlags["DeclarationFile"] = 2048] = "DeclarationFile"; - NodeFlags[NodeFlags["Let"] = 4096] = "Let"; - NodeFlags[NodeFlags["Const"] = 8192] = "Const"; - NodeFlags[NodeFlags["OctalLiteral"] = 16384] = "OctalLiteral"; - NodeFlags[NodeFlags["ExportContext"] = 32768] = "ExportContext"; - NodeFlags[NodeFlags["Modifier"] = 499] = "Modifier"; - NodeFlags[NodeFlags["AccessibilityModifier"] = 112] = "AccessibilityModifier"; - NodeFlags[NodeFlags["BlockScoped"] = 12288] = "BlockScoped"; - })(ts.NodeFlags || (ts.NodeFlags = {})); - var NodeFlags = ts.NodeFlags; - (function (ParserContextFlags) { - ParserContextFlags[ParserContextFlags["StrictMode"] = 1] = "StrictMode"; - ParserContextFlags[ParserContextFlags["DisallowIn"] = 2] = "DisallowIn"; - ParserContextFlags[ParserContextFlags["Yield"] = 4] = "Yield"; - ParserContextFlags[ParserContextFlags["GeneratorParameter"] = 8] = "GeneratorParameter"; - ParserContextFlags[ParserContextFlags["Decorator"] = 16] = "Decorator"; - ParserContextFlags[ParserContextFlags["ThisNodeHasError"] = 32] = "ThisNodeHasError"; - ParserContextFlags[ParserContextFlags["ParserGeneratedFlags"] = 63] = "ParserGeneratedFlags"; - ParserContextFlags[ParserContextFlags["ThisNodeOrAnySubNodesHasError"] = 64] = "ThisNodeOrAnySubNodesHasError"; - ParserContextFlags[ParserContextFlags["HasAggregatedChildData"] = 128] = "HasAggregatedChildData"; - })(ts.ParserContextFlags || (ts.ParserContextFlags = {})); - var ParserContextFlags = ts.ParserContextFlags; - (function (RelationComparisonResult) { - RelationComparisonResult[RelationComparisonResult["Succeeded"] = 1] = "Succeeded"; - RelationComparisonResult[RelationComparisonResult["Failed"] = 2] = "Failed"; - RelationComparisonResult[RelationComparisonResult["FailedAndReported"] = 3] = "FailedAndReported"; - })(ts.RelationComparisonResult || (ts.RelationComparisonResult = {})); - var RelationComparisonResult = ts.RelationComparisonResult; - (function (ExitStatus) { - ExitStatus[ExitStatus["Success"] = 0] = "Success"; - ExitStatus[ExitStatus["DiagnosticsPresent_OutputsSkipped"] = 1] = "DiagnosticsPresent_OutputsSkipped"; - ExitStatus[ExitStatus["DiagnosticsPresent_OutputsGenerated"] = 2] = "DiagnosticsPresent_OutputsGenerated"; - })(ts.ExitStatus || (ts.ExitStatus = {})); - var ExitStatus = ts.ExitStatus; - (function (TypeFormatFlags) { - TypeFormatFlags[TypeFormatFlags["None"] = 0] = "None"; - TypeFormatFlags[TypeFormatFlags["WriteArrayAsGenericType"] = 1] = "WriteArrayAsGenericType"; - TypeFormatFlags[TypeFormatFlags["UseTypeOfFunction"] = 2] = "UseTypeOfFunction"; - TypeFormatFlags[TypeFormatFlags["NoTruncation"] = 4] = "NoTruncation"; - TypeFormatFlags[TypeFormatFlags["WriteArrowStyleSignature"] = 8] = "WriteArrowStyleSignature"; - TypeFormatFlags[TypeFormatFlags["WriteOwnNameForAnyLike"] = 16] = "WriteOwnNameForAnyLike"; - TypeFormatFlags[TypeFormatFlags["WriteTypeArgumentsOfSignature"] = 32] = "WriteTypeArgumentsOfSignature"; - TypeFormatFlags[TypeFormatFlags["InElementType"] = 64] = "InElementType"; - TypeFormatFlags[TypeFormatFlags["UseFullyQualifiedType"] = 128] = "UseFullyQualifiedType"; - })(ts.TypeFormatFlags || (ts.TypeFormatFlags = {})); - var TypeFormatFlags = ts.TypeFormatFlags; - (function (SymbolFormatFlags) { - SymbolFormatFlags[SymbolFormatFlags["None"] = 0] = "None"; - SymbolFormatFlags[SymbolFormatFlags["WriteTypeParametersOrArguments"] = 1] = "WriteTypeParametersOrArguments"; - SymbolFormatFlags[SymbolFormatFlags["UseOnlyExternalAliasing"] = 2] = "UseOnlyExternalAliasing"; - })(ts.SymbolFormatFlags || (ts.SymbolFormatFlags = {})); - var SymbolFormatFlags = ts.SymbolFormatFlags; - (function (SymbolAccessibility) { - SymbolAccessibility[SymbolAccessibility["Accessible"] = 0] = "Accessible"; - SymbolAccessibility[SymbolAccessibility["NotAccessible"] = 1] = "NotAccessible"; - SymbolAccessibility[SymbolAccessibility["CannotBeNamed"] = 2] = "CannotBeNamed"; - })(ts.SymbolAccessibility || (ts.SymbolAccessibility = {})); - var SymbolAccessibility = ts.SymbolAccessibility; - (function (SymbolFlags) { - SymbolFlags[SymbolFlags["FunctionScopedVariable"] = 1] = "FunctionScopedVariable"; - SymbolFlags[SymbolFlags["BlockScopedVariable"] = 2] = "BlockScopedVariable"; - SymbolFlags[SymbolFlags["Property"] = 4] = "Property"; - SymbolFlags[SymbolFlags["EnumMember"] = 8] = "EnumMember"; - SymbolFlags[SymbolFlags["Function"] = 16] = "Function"; - SymbolFlags[SymbolFlags["Class"] = 32] = "Class"; - SymbolFlags[SymbolFlags["Interface"] = 64] = "Interface"; - SymbolFlags[SymbolFlags["ConstEnum"] = 128] = "ConstEnum"; - SymbolFlags[SymbolFlags["RegularEnum"] = 256] = "RegularEnum"; - SymbolFlags[SymbolFlags["ValueModule"] = 512] = "ValueModule"; - SymbolFlags[SymbolFlags["NamespaceModule"] = 1024] = "NamespaceModule"; - SymbolFlags[SymbolFlags["TypeLiteral"] = 2048] = "TypeLiteral"; - SymbolFlags[SymbolFlags["ObjectLiteral"] = 4096] = "ObjectLiteral"; - SymbolFlags[SymbolFlags["Method"] = 8192] = "Method"; - SymbolFlags[SymbolFlags["Constructor"] = 16384] = "Constructor"; - SymbolFlags[SymbolFlags["GetAccessor"] = 32768] = "GetAccessor"; - SymbolFlags[SymbolFlags["SetAccessor"] = 65536] = "SetAccessor"; - SymbolFlags[SymbolFlags["Signature"] = 131072] = "Signature"; - SymbolFlags[SymbolFlags["TypeParameter"] = 262144] = "TypeParameter"; - SymbolFlags[SymbolFlags["TypeAlias"] = 524288] = "TypeAlias"; - SymbolFlags[SymbolFlags["ExportValue"] = 1048576] = "ExportValue"; - SymbolFlags[SymbolFlags["ExportType"] = 2097152] = "ExportType"; - SymbolFlags[SymbolFlags["ExportNamespace"] = 4194304] = "ExportNamespace"; - SymbolFlags[SymbolFlags["Alias"] = 8388608] = "Alias"; - SymbolFlags[SymbolFlags["Instantiated"] = 16777216] = "Instantiated"; - SymbolFlags[SymbolFlags["Merged"] = 33554432] = "Merged"; - SymbolFlags[SymbolFlags["Transient"] = 67108864] = "Transient"; - SymbolFlags[SymbolFlags["Prototype"] = 134217728] = "Prototype"; - SymbolFlags[SymbolFlags["UnionProperty"] = 268435456] = "UnionProperty"; - SymbolFlags[SymbolFlags["Optional"] = 536870912] = "Optional"; - SymbolFlags[SymbolFlags["ExportStar"] = 1073741824] = "ExportStar"; - SymbolFlags[SymbolFlags["Enum"] = 384] = "Enum"; - SymbolFlags[SymbolFlags["Variable"] = 3] = "Variable"; - SymbolFlags[SymbolFlags["Value"] = 107455] = "Value"; - SymbolFlags[SymbolFlags["Type"] = 793056] = "Type"; - SymbolFlags[SymbolFlags["Namespace"] = 1536] = "Namespace"; - SymbolFlags[SymbolFlags["Module"] = 1536] = "Module"; - SymbolFlags[SymbolFlags["Accessor"] = 98304] = "Accessor"; - SymbolFlags[SymbolFlags["FunctionScopedVariableExcludes"] = 107454] = "FunctionScopedVariableExcludes"; - SymbolFlags[SymbolFlags["BlockScopedVariableExcludes"] = 107455] = "BlockScopedVariableExcludes"; - SymbolFlags[SymbolFlags["ParameterExcludes"] = 107455] = "ParameterExcludes"; - SymbolFlags[SymbolFlags["PropertyExcludes"] = 107455] = "PropertyExcludes"; - SymbolFlags[SymbolFlags["EnumMemberExcludes"] = 107455] = "EnumMemberExcludes"; - SymbolFlags[SymbolFlags["FunctionExcludes"] = 106927] = "FunctionExcludes"; - SymbolFlags[SymbolFlags["ClassExcludes"] = 899583] = "ClassExcludes"; - SymbolFlags[SymbolFlags["InterfaceExcludes"] = 792992] = "InterfaceExcludes"; - SymbolFlags[SymbolFlags["RegularEnumExcludes"] = 899327] = "RegularEnumExcludes"; - SymbolFlags[SymbolFlags["ConstEnumExcludes"] = 899967] = "ConstEnumExcludes"; - SymbolFlags[SymbolFlags["ValueModuleExcludes"] = 106639] = "ValueModuleExcludes"; - SymbolFlags[SymbolFlags["NamespaceModuleExcludes"] = 0] = "NamespaceModuleExcludes"; - SymbolFlags[SymbolFlags["MethodExcludes"] = 99263] = "MethodExcludes"; - SymbolFlags[SymbolFlags["GetAccessorExcludes"] = 41919] = "GetAccessorExcludes"; - SymbolFlags[SymbolFlags["SetAccessorExcludes"] = 74687] = "SetAccessorExcludes"; - SymbolFlags[SymbolFlags["TypeParameterExcludes"] = 530912] = "TypeParameterExcludes"; - SymbolFlags[SymbolFlags["TypeAliasExcludes"] = 793056] = "TypeAliasExcludes"; - SymbolFlags[SymbolFlags["AliasExcludes"] = 8388608] = "AliasExcludes"; - SymbolFlags[SymbolFlags["ModuleMember"] = 8914931] = "ModuleMember"; - SymbolFlags[SymbolFlags["ExportHasLocal"] = 944] = "ExportHasLocal"; - SymbolFlags[SymbolFlags["HasLocals"] = 255504] = "HasLocals"; - SymbolFlags[SymbolFlags["HasExports"] = 1952] = "HasExports"; - SymbolFlags[SymbolFlags["HasMembers"] = 6240] = "HasMembers"; - SymbolFlags[SymbolFlags["IsContainer"] = 262128] = "IsContainer"; - SymbolFlags[SymbolFlags["PropertyOrAccessor"] = 98308] = "PropertyOrAccessor"; - SymbolFlags[SymbolFlags["Export"] = 7340032] = "Export"; - })(ts.SymbolFlags || (ts.SymbolFlags = {})); - var SymbolFlags = ts.SymbolFlags; - (function (NodeCheckFlags) { - NodeCheckFlags[NodeCheckFlags["TypeChecked"] = 1] = "TypeChecked"; - NodeCheckFlags[NodeCheckFlags["LexicalThis"] = 2] = "LexicalThis"; - NodeCheckFlags[NodeCheckFlags["CaptureThis"] = 4] = "CaptureThis"; - NodeCheckFlags[NodeCheckFlags["EmitExtends"] = 8] = "EmitExtends"; - NodeCheckFlags[NodeCheckFlags["SuperInstance"] = 16] = "SuperInstance"; - NodeCheckFlags[NodeCheckFlags["SuperStatic"] = 32] = "SuperStatic"; - NodeCheckFlags[NodeCheckFlags["ContextChecked"] = 64] = "ContextChecked"; - NodeCheckFlags[NodeCheckFlags["EnumValuesComputed"] = 128] = "EnumValuesComputed"; - NodeCheckFlags[NodeCheckFlags["BlockScopedBindingInLoop"] = 256] = "BlockScopedBindingInLoop"; - NodeCheckFlags[NodeCheckFlags["EmitDecorate"] = 512] = "EmitDecorate"; - })(ts.NodeCheckFlags || (ts.NodeCheckFlags = {})); - var NodeCheckFlags = ts.NodeCheckFlags; - (function (TypeFlags) { - TypeFlags[TypeFlags["Any"] = 1] = "Any"; - TypeFlags[TypeFlags["String"] = 2] = "String"; - TypeFlags[TypeFlags["Number"] = 4] = "Number"; - TypeFlags[TypeFlags["Boolean"] = 8] = "Boolean"; - TypeFlags[TypeFlags["Void"] = 16] = "Void"; - TypeFlags[TypeFlags["Undefined"] = 32] = "Undefined"; - TypeFlags[TypeFlags["Null"] = 64] = "Null"; - TypeFlags[TypeFlags["Enum"] = 128] = "Enum"; - TypeFlags[TypeFlags["StringLiteral"] = 256] = "StringLiteral"; - TypeFlags[TypeFlags["TypeParameter"] = 512] = "TypeParameter"; - TypeFlags[TypeFlags["Class"] = 1024] = "Class"; - TypeFlags[TypeFlags["Interface"] = 2048] = "Interface"; - TypeFlags[TypeFlags["Reference"] = 4096] = "Reference"; - TypeFlags[TypeFlags["Tuple"] = 8192] = "Tuple"; - TypeFlags[TypeFlags["Union"] = 16384] = "Union"; - TypeFlags[TypeFlags["Anonymous"] = 32768] = "Anonymous"; - TypeFlags[TypeFlags["FromSignature"] = 65536] = "FromSignature"; - TypeFlags[TypeFlags["ObjectLiteral"] = 131072] = "ObjectLiteral"; - TypeFlags[TypeFlags["ContainsUndefinedOrNull"] = 262144] = "ContainsUndefinedOrNull"; - TypeFlags[TypeFlags["ContainsObjectLiteral"] = 524288] = "ContainsObjectLiteral"; - TypeFlags[TypeFlags["ESSymbol"] = 1048576] = "ESSymbol"; - TypeFlags[TypeFlags["Intrinsic"] = 1048703] = "Intrinsic"; - TypeFlags[TypeFlags["Primitive"] = 1049086] = "Primitive"; - TypeFlags[TypeFlags["StringLike"] = 258] = "StringLike"; - TypeFlags[TypeFlags["NumberLike"] = 132] = "NumberLike"; - TypeFlags[TypeFlags["ObjectType"] = 48128] = "ObjectType"; - TypeFlags[TypeFlags["RequiresWidening"] = 786432] = "RequiresWidening"; - })(ts.TypeFlags || (ts.TypeFlags = {})); - var TypeFlags = ts.TypeFlags; - (function (SignatureKind) { - SignatureKind[SignatureKind["Call"] = 0] = "Call"; - SignatureKind[SignatureKind["Construct"] = 1] = "Construct"; - })(ts.SignatureKind || (ts.SignatureKind = {})); - var SignatureKind = ts.SignatureKind; - (function (IndexKind) { - IndexKind[IndexKind["String"] = 0] = "String"; - IndexKind[IndexKind["Number"] = 1] = "Number"; - })(ts.IndexKind || (ts.IndexKind = {})); - var IndexKind = ts.IndexKind; - (function (DiagnosticCategory) { - DiagnosticCategory[DiagnosticCategory["Warning"] = 0] = "Warning"; - DiagnosticCategory[DiagnosticCategory["Error"] = 1] = "Error"; - DiagnosticCategory[DiagnosticCategory["Message"] = 2] = "Message"; - })(ts.DiagnosticCategory || (ts.DiagnosticCategory = {})); - var DiagnosticCategory = ts.DiagnosticCategory; - (function (ModuleKind) { - ModuleKind[ModuleKind["None"] = 0] = "None"; - ModuleKind[ModuleKind["CommonJS"] = 1] = "CommonJS"; - ModuleKind[ModuleKind["AMD"] = 2] = "AMD"; - })(ts.ModuleKind || (ts.ModuleKind = {})); - var ModuleKind = ts.ModuleKind; - (function (ScriptTarget) { - ScriptTarget[ScriptTarget["ES3"] = 0] = "ES3"; - ScriptTarget[ScriptTarget["ES5"] = 1] = "ES5"; - ScriptTarget[ScriptTarget["ES6"] = 2] = "ES6"; - ScriptTarget[ScriptTarget["Latest"] = 2] = "Latest"; - })(ts.ScriptTarget || (ts.ScriptTarget = {})); - var ScriptTarget = ts.ScriptTarget; - (function (CharacterCodes) { - CharacterCodes[CharacterCodes["nullCharacter"] = 0] = "nullCharacter"; - CharacterCodes[CharacterCodes["maxAsciiCharacter"] = 127] = "maxAsciiCharacter"; - CharacterCodes[CharacterCodes["lineFeed"] = 10] = "lineFeed"; - CharacterCodes[CharacterCodes["carriageReturn"] = 13] = "carriageReturn"; - CharacterCodes[CharacterCodes["lineSeparator"] = 8232] = "lineSeparator"; - CharacterCodes[CharacterCodes["paragraphSeparator"] = 8233] = "paragraphSeparator"; - CharacterCodes[CharacterCodes["nextLine"] = 133] = "nextLine"; - CharacterCodes[CharacterCodes["space"] = 32] = "space"; - CharacterCodes[CharacterCodes["nonBreakingSpace"] = 160] = "nonBreakingSpace"; - CharacterCodes[CharacterCodes["enQuad"] = 8192] = "enQuad"; - CharacterCodes[CharacterCodes["emQuad"] = 8193] = "emQuad"; - CharacterCodes[CharacterCodes["enSpace"] = 8194] = "enSpace"; - CharacterCodes[CharacterCodes["emSpace"] = 8195] = "emSpace"; - CharacterCodes[CharacterCodes["threePerEmSpace"] = 8196] = "threePerEmSpace"; - CharacterCodes[CharacterCodes["fourPerEmSpace"] = 8197] = "fourPerEmSpace"; - CharacterCodes[CharacterCodes["sixPerEmSpace"] = 8198] = "sixPerEmSpace"; - CharacterCodes[CharacterCodes["figureSpace"] = 8199] = "figureSpace"; - CharacterCodes[CharacterCodes["punctuationSpace"] = 8200] = "punctuationSpace"; - CharacterCodes[CharacterCodes["thinSpace"] = 8201] = "thinSpace"; - CharacterCodes[CharacterCodes["hairSpace"] = 8202] = "hairSpace"; - CharacterCodes[CharacterCodes["zeroWidthSpace"] = 8203] = "zeroWidthSpace"; - CharacterCodes[CharacterCodes["narrowNoBreakSpace"] = 8239] = "narrowNoBreakSpace"; - CharacterCodes[CharacterCodes["ideographicSpace"] = 12288] = "ideographicSpace"; - CharacterCodes[CharacterCodes["mathematicalSpace"] = 8287] = "mathematicalSpace"; - CharacterCodes[CharacterCodes["ogham"] = 5760] = "ogham"; - CharacterCodes[CharacterCodes["_"] = 95] = "_"; - CharacterCodes[CharacterCodes["$"] = 36] = "$"; - CharacterCodes[CharacterCodes["_0"] = 48] = "_0"; - CharacterCodes[CharacterCodes["_1"] = 49] = "_1"; - CharacterCodes[CharacterCodes["_2"] = 50] = "_2"; - CharacterCodes[CharacterCodes["_3"] = 51] = "_3"; - CharacterCodes[CharacterCodes["_4"] = 52] = "_4"; - CharacterCodes[CharacterCodes["_5"] = 53] = "_5"; - CharacterCodes[CharacterCodes["_6"] = 54] = "_6"; - CharacterCodes[CharacterCodes["_7"] = 55] = "_7"; - CharacterCodes[CharacterCodes["_8"] = 56] = "_8"; - CharacterCodes[CharacterCodes["_9"] = 57] = "_9"; - CharacterCodes[CharacterCodes["a"] = 97] = "a"; - CharacterCodes[CharacterCodes["b"] = 98] = "b"; - CharacterCodes[CharacterCodes["c"] = 99] = "c"; - CharacterCodes[CharacterCodes["d"] = 100] = "d"; - CharacterCodes[CharacterCodes["e"] = 101] = "e"; - CharacterCodes[CharacterCodes["f"] = 102] = "f"; - CharacterCodes[CharacterCodes["g"] = 103] = "g"; - CharacterCodes[CharacterCodes["h"] = 104] = "h"; - CharacterCodes[CharacterCodes["i"] = 105] = "i"; - CharacterCodes[CharacterCodes["j"] = 106] = "j"; - CharacterCodes[CharacterCodes["k"] = 107] = "k"; - CharacterCodes[CharacterCodes["l"] = 108] = "l"; - CharacterCodes[CharacterCodes["m"] = 109] = "m"; - CharacterCodes[CharacterCodes["n"] = 110] = "n"; - CharacterCodes[CharacterCodes["o"] = 111] = "o"; - CharacterCodes[CharacterCodes["p"] = 112] = "p"; - CharacterCodes[CharacterCodes["q"] = 113] = "q"; - CharacterCodes[CharacterCodes["r"] = 114] = "r"; - CharacterCodes[CharacterCodes["s"] = 115] = "s"; - CharacterCodes[CharacterCodes["t"] = 116] = "t"; - CharacterCodes[CharacterCodes["u"] = 117] = "u"; - CharacterCodes[CharacterCodes["v"] = 118] = "v"; - CharacterCodes[CharacterCodes["w"] = 119] = "w"; - CharacterCodes[CharacterCodes["x"] = 120] = "x"; - CharacterCodes[CharacterCodes["y"] = 121] = "y"; - CharacterCodes[CharacterCodes["z"] = 122] = "z"; - CharacterCodes[CharacterCodes["A"] = 65] = "A"; - CharacterCodes[CharacterCodes["B"] = 66] = "B"; - CharacterCodes[CharacterCodes["C"] = 67] = "C"; - CharacterCodes[CharacterCodes["D"] = 68] = "D"; - CharacterCodes[CharacterCodes["E"] = 69] = "E"; - CharacterCodes[CharacterCodes["F"] = 70] = "F"; - CharacterCodes[CharacterCodes["G"] = 71] = "G"; - CharacterCodes[CharacterCodes["H"] = 72] = "H"; - CharacterCodes[CharacterCodes["I"] = 73] = "I"; - CharacterCodes[CharacterCodes["J"] = 74] = "J"; - CharacterCodes[CharacterCodes["K"] = 75] = "K"; - CharacterCodes[CharacterCodes["L"] = 76] = "L"; - CharacterCodes[CharacterCodes["M"] = 77] = "M"; - CharacterCodes[CharacterCodes["N"] = 78] = "N"; - CharacterCodes[CharacterCodes["O"] = 79] = "O"; - CharacterCodes[CharacterCodes["P"] = 80] = "P"; - CharacterCodes[CharacterCodes["Q"] = 81] = "Q"; - CharacterCodes[CharacterCodes["R"] = 82] = "R"; - CharacterCodes[CharacterCodes["S"] = 83] = "S"; - CharacterCodes[CharacterCodes["T"] = 84] = "T"; - CharacterCodes[CharacterCodes["U"] = 85] = "U"; - CharacterCodes[CharacterCodes["V"] = 86] = "V"; - CharacterCodes[CharacterCodes["W"] = 87] = "W"; - CharacterCodes[CharacterCodes["X"] = 88] = "X"; - CharacterCodes[CharacterCodes["Y"] = 89] = "Y"; - CharacterCodes[CharacterCodes["Z"] = 90] = "Z"; - CharacterCodes[CharacterCodes["ampersand"] = 38] = "ampersand"; - CharacterCodes[CharacterCodes["asterisk"] = 42] = "asterisk"; - CharacterCodes[CharacterCodes["at"] = 64] = "at"; - CharacterCodes[CharacterCodes["backslash"] = 92] = "backslash"; - CharacterCodes[CharacterCodes["backtick"] = 96] = "backtick"; - CharacterCodes[CharacterCodes["bar"] = 124] = "bar"; - CharacterCodes[CharacterCodes["caret"] = 94] = "caret"; - CharacterCodes[CharacterCodes["closeBrace"] = 125] = "closeBrace"; - CharacterCodes[CharacterCodes["closeBracket"] = 93] = "closeBracket"; - CharacterCodes[CharacterCodes["closeParen"] = 41] = "closeParen"; - CharacterCodes[CharacterCodes["colon"] = 58] = "colon"; - CharacterCodes[CharacterCodes["comma"] = 44] = "comma"; - CharacterCodes[CharacterCodes["dot"] = 46] = "dot"; - CharacterCodes[CharacterCodes["doubleQuote"] = 34] = "doubleQuote"; - CharacterCodes[CharacterCodes["equals"] = 61] = "equals"; - CharacterCodes[CharacterCodes["exclamation"] = 33] = "exclamation"; - CharacterCodes[CharacterCodes["greaterThan"] = 62] = "greaterThan"; - CharacterCodes[CharacterCodes["hash"] = 35] = "hash"; - CharacterCodes[CharacterCodes["lessThan"] = 60] = "lessThan"; - CharacterCodes[CharacterCodes["minus"] = 45] = "minus"; - CharacterCodes[CharacterCodes["openBrace"] = 123] = "openBrace"; - CharacterCodes[CharacterCodes["openBracket"] = 91] = "openBracket"; - CharacterCodes[CharacterCodes["openParen"] = 40] = "openParen"; - CharacterCodes[CharacterCodes["percent"] = 37] = "percent"; - CharacterCodes[CharacterCodes["plus"] = 43] = "plus"; - CharacterCodes[CharacterCodes["question"] = 63] = "question"; - CharacterCodes[CharacterCodes["semicolon"] = 59] = "semicolon"; - CharacterCodes[CharacterCodes["singleQuote"] = 39] = "singleQuote"; - CharacterCodes[CharacterCodes["slash"] = 47] = "slash"; - CharacterCodes[CharacterCodes["tilde"] = 126] = "tilde"; - CharacterCodes[CharacterCodes["backspace"] = 8] = "backspace"; - CharacterCodes[CharacterCodes["formFeed"] = 12] = "formFeed"; - CharacterCodes[CharacterCodes["byteOrderMark"] = 65279] = "byteOrderMark"; - CharacterCodes[CharacterCodes["tab"] = 9] = "tab"; - CharacterCodes[CharacterCodes["verticalTab"] = 11] = "verticalTab"; - })(ts.CharacterCodes || (ts.CharacterCodes = {})); - var CharacterCodes = ts.CharacterCodes; -})(ts || (ts = {})); -/// -var ts; -(function (ts) { - (function (Ternary) { - Ternary[Ternary["False"] = 0] = "False"; - Ternary[Ternary["Maybe"] = 1] = "Maybe"; - Ternary[Ternary["True"] = -1] = "True"; - })(ts.Ternary || (ts.Ternary = {})); - var Ternary = ts.Ternary; - (function (Comparison) { - Comparison[Comparison["LessThan"] = -1] = "LessThan"; - Comparison[Comparison["EqualTo"] = 0] = "EqualTo"; - Comparison[Comparison["GreaterThan"] = 1] = "GreaterThan"; - })(ts.Comparison || (ts.Comparison = {})); - var Comparison = ts.Comparison; - function forEach(array, callback) { - if (array) { - for (var i = 0, len = array.length; i < len; i++) { - var result = callback(array[i], i); - if (result) { - return result; - } - } - } - return undefined; - } - ts.forEach = forEach; - function contains(array, value) { - if (array) { - for (var _i = 0, _n = array.length; _i < _n; _i++) { - var v = array[_i]; - if (v === value) { - return true; - } - } - } - return false; - } - ts.contains = contains; - function indexOf(array, value) { - if (array) { - for (var i = 0, len = array.length; i < len; i++) { - if (array[i] === value) { - return i; - } - } - } - return -1; - } - ts.indexOf = indexOf; - function countWhere(array, predicate) { - var count = 0; - if (array) { - for (var _i = 0, _n = array.length; _i < _n; _i++) { - var v = array[_i]; - if (predicate(v)) { - count++; - } - } - } - return count; - } - ts.countWhere = countWhere; - function filter(array, f) { - var result; - if (array) { - result = []; - for (var _i = 0, _n = array.length; _i < _n; _i++) { - var item_1 = array[_i]; - if (f(item_1)) { - result.push(item_1); - } - } - } - return result; - } - ts.filter = filter; - function map(array, f) { - var result; - if (array) { - result = []; - for (var _i = 0, _n = array.length; _i < _n; _i++) { - var v = array[_i]; - result.push(f(v)); - } - } - return result; - } - ts.map = map; - function concatenate(array1, array2) { - if (!array2 || !array2.length) - return array1; - if (!array1 || !array1.length) - return array2; - return array1.concat(array2); - } - ts.concatenate = concatenate; - function deduplicate(array) { - var result; - if (array) { - result = []; - for (var _i = 0, _n = array.length; _i < _n; _i++) { - var item_2 = array[_i]; - if (!contains(result, item_2)) { - result.push(item_2); - } - } - } - return result; - } - ts.deduplicate = deduplicate; - function sum(array, prop) { - var result = 0; - for (var _i = 0, _n = array.length; _i < _n; _i++) { - var v = array[_i]; - result += v[prop]; - } - return result; - } - ts.sum = sum; - function addRange(to, from) { - if (to && from) { - for (var _i = 0, _n = from.length; _i < _n; _i++) { - var v = from[_i]; - to.push(v); - } - } - } - ts.addRange = addRange; - function lastOrUndefined(array) { - if (array.length === 0) { - return undefined; - } - return array[array.length - 1]; - } - ts.lastOrUndefined = lastOrUndefined; - function binarySearch(array, value) { - var low = 0; - var high = array.length - 1; - while (low <= high) { - var middle = low + ((high - low) >> 1); - var midValue = array[middle]; - if (midValue === value) { - return middle; - } - else if (midValue > value) { - high = middle - 1; - } - else { - low = middle + 1; - } - } - return ~low; - } - ts.binarySearch = binarySearch; - function reduceLeft(array, f, initial) { - if (array) { - var count = array.length; - if (count > 0) { - var pos = 0; - var result = arguments.length <= 2 ? array[pos++] : initial; - while (pos < count) { - result = f(result, array[pos++]); - } - return result; - } - } - return initial; - } - ts.reduceLeft = reduceLeft; - function reduceRight(array, f, initial) { - if (array) { - var pos = array.length - 1; - if (pos >= 0) { - var result = arguments.length <= 2 ? array[pos--] : initial; - while (pos >= 0) { - result = f(result, array[pos--]); - } - return result; - } - } - return initial; - } - ts.reduceRight = reduceRight; - var hasOwnProperty = Object.prototype.hasOwnProperty; - function hasProperty(map, key) { - return hasOwnProperty.call(map, key); - } - ts.hasProperty = hasProperty; - function getProperty(map, key) { - return hasOwnProperty.call(map, key) ? map[key] : undefined; - } - ts.getProperty = getProperty; - function isEmpty(map) { - for (var id in map) { - if (hasProperty(map, id)) { - return false; - } - } - return true; - } - ts.isEmpty = isEmpty; - function clone(object) { - var result = {}; - for (var id in object) { - result[id] = object[id]; - } - return result; - } - ts.clone = clone; - function extend(first, second) { - var result = {}; - for (var id in first) { - result[id] = first[id]; - } - for (var id in second) { - if (!hasProperty(result, id)) { - result[id] = second[id]; - } - } - return result; - } - ts.extend = extend; - function forEachValue(map, callback) { - var result; - for (var id in map) { - if (result = callback(map[id])) - break; - } - return result; - } - ts.forEachValue = forEachValue; - function forEachKey(map, callback) { - var result; - for (var id in map) { - if (result = callback(id)) - break; - } - return result; - } - ts.forEachKey = forEachKey; - function lookUp(map, key) { - return hasProperty(map, key) ? map[key] : undefined; - } - ts.lookUp = lookUp; - function copyMap(source, target) { - for (var p in source) { - target[p] = source[p]; - } - } - ts.copyMap = copyMap; - function arrayToMap(array, makeKey) { - var result = {}; - forEach(array, function (value) { - result[makeKey(value)] = value; - }); - return result; - } - ts.arrayToMap = arrayToMap; - function formatStringFromArgs(text, args, baseIndex) { - baseIndex = baseIndex || 0; - return text.replace(/{(\d+)}/g, function (match, index) { return args[+index + baseIndex]; }); - } - ts.localizedDiagnosticMessages = undefined; - function getLocaleSpecificMessage(message) { - return ts.localizedDiagnosticMessages && ts.localizedDiagnosticMessages[message] - ? ts.localizedDiagnosticMessages[message] - : message; - } - ts.getLocaleSpecificMessage = getLocaleSpecificMessage; - function createFileDiagnostic(file, start, length, message) { - var end = start + length; - Debug.assert(start >= 0, "start must be non-negative, is " + start); - Debug.assert(length >= 0, "length must be non-negative, is " + length); - Debug.assert(start <= file.text.length, "start must be within the bounds of the file. " + start + " > " + file.text.length); - Debug.assert(end <= file.text.length, "end must be the bounds of the file. " + end + " > " + file.text.length); - var text = getLocaleSpecificMessage(message.key); - if (arguments.length > 4) { - text = formatStringFromArgs(text, arguments, 4); - } - return { - file: file, - start: start, - length: length, - messageText: text, - category: message.category, - code: message.code - }; - } - ts.createFileDiagnostic = createFileDiagnostic; - function createCompilerDiagnostic(message) { - var text = getLocaleSpecificMessage(message.key); - if (arguments.length > 1) { - text = formatStringFromArgs(text, arguments, 1); - } - return { - file: undefined, - start: undefined, - length: undefined, - messageText: text, - category: message.category, - code: message.code - }; - } - ts.createCompilerDiagnostic = createCompilerDiagnostic; - function chainDiagnosticMessages(details, message) { - var text = getLocaleSpecificMessage(message.key); - if (arguments.length > 2) { - text = formatStringFromArgs(text, arguments, 2); - } - return { - messageText: text, - category: message.category, - code: message.code, - next: details - }; - } - ts.chainDiagnosticMessages = chainDiagnosticMessages; - function concatenateDiagnosticMessageChains(headChain, tailChain) { - Debug.assert(!headChain.next); - headChain.next = tailChain; - return headChain; - } - ts.concatenateDiagnosticMessageChains = concatenateDiagnosticMessageChains; - function compareValues(a, b) { - if (a === b) - return 0; - if (a === undefined) - return -1; - if (b === undefined) - return 1; - return a < b ? -1 : 1; - } - ts.compareValues = compareValues; - function getDiagnosticFileName(diagnostic) { - return diagnostic.file ? diagnostic.file.fileName : undefined; - } - function compareDiagnostics(d1, d2) { - return compareValues(getDiagnosticFileName(d1), getDiagnosticFileName(d2)) || - compareValues(d1.start, d2.start) || - compareValues(d1.length, d2.length) || - compareValues(d1.code, d2.code) || - compareMessageText(d1.messageText, d2.messageText) || - 0; - } - ts.compareDiagnostics = compareDiagnostics; - function compareMessageText(text1, text2) { - while (text1 && text2) { - var string1 = typeof text1 === "string" ? text1 : text1.messageText; - var string2 = typeof text2 === "string" ? text2 : text2.messageText; - var res = compareValues(string1, string2); - if (res) { - return res; - } - text1 = typeof text1 === "string" ? undefined : text1.next; - text2 = typeof text2 === "string" ? undefined : text2.next; - } - if (!text1 && !text2) { - return 0; - } - return text1 ? 1 : -1; - } - function sortAndDeduplicateDiagnostics(diagnostics) { - return deduplicateSortedDiagnostics(diagnostics.sort(compareDiagnostics)); - } - ts.sortAndDeduplicateDiagnostics = sortAndDeduplicateDiagnostics; - function deduplicateSortedDiagnostics(diagnostics) { - if (diagnostics.length < 2) { - return diagnostics; - } - var newDiagnostics = [diagnostics[0]]; - var previousDiagnostic = diagnostics[0]; - for (var i = 1; i < diagnostics.length; i++) { - var currentDiagnostic = diagnostics[i]; - var isDupe = compareDiagnostics(currentDiagnostic, previousDiagnostic) === 0; - if (!isDupe) { - newDiagnostics.push(currentDiagnostic); - previousDiagnostic = currentDiagnostic; - } - } - return newDiagnostics; - } - ts.deduplicateSortedDiagnostics = deduplicateSortedDiagnostics; - function normalizeSlashes(path) { - return path.replace(/\\/g, "/"); - } - ts.normalizeSlashes = normalizeSlashes; - function getRootLength(path) { - if (path.charCodeAt(0) === 47) { - if (path.charCodeAt(1) !== 47) - return 1; - var p1 = path.indexOf("/", 2); - if (p1 < 0) - return 2; - var p2 = path.indexOf("/", p1 + 1); - if (p2 < 0) - return p1 + 1; - return p2 + 1; - } - if (path.charCodeAt(1) === 58) { - if (path.charCodeAt(2) === 47) - return 3; - return 2; - } - return 0; - } - ts.getRootLength = getRootLength; - ts.directorySeparator = "/"; - function getNormalizedParts(normalizedSlashedPath, rootLength) { - var parts = normalizedSlashedPath.substr(rootLength).split(ts.directorySeparator); - var normalized = []; - for (var _i = 0, _n = parts.length; _i < _n; _i++) { - var part = parts[_i]; - if (part !== ".") { - if (part === ".." && normalized.length > 0 && normalized[normalized.length - 1] !== "..") { - normalized.pop(); - } - else { - if (part) { - normalized.push(part); - } - } - } - } - return normalized; - } - function normalizePath(path) { - path = normalizeSlashes(path); - var rootLength = getRootLength(path); - var normalized = getNormalizedParts(path, rootLength); - return path.substr(0, rootLength) + normalized.join(ts.directorySeparator); - } - ts.normalizePath = normalizePath; - function getDirectoryPath(path) { - return path.substr(0, Math.max(getRootLength(path), path.lastIndexOf(ts.directorySeparator))); - } - ts.getDirectoryPath = getDirectoryPath; - function isUrl(path) { - return path && !isRootedDiskPath(path) && path.indexOf("://") !== -1; - } - ts.isUrl = isUrl; - function isRootedDiskPath(path) { - return getRootLength(path) !== 0; - } - ts.isRootedDiskPath = isRootedDiskPath; - function normalizedPathComponents(path, rootLength) { - var normalizedParts = getNormalizedParts(path, rootLength); - return [path.substr(0, rootLength)].concat(normalizedParts); - } - function getNormalizedPathComponents(path, currentDirectory) { - path = normalizeSlashes(path); - var rootLength = getRootLength(path); - if (rootLength == 0) { - path = combinePaths(normalizeSlashes(currentDirectory), path); - rootLength = getRootLength(path); - } - return normalizedPathComponents(path, rootLength); - } - ts.getNormalizedPathComponents = getNormalizedPathComponents; - function getNormalizedAbsolutePath(fileName, currentDirectory) { - return getNormalizedPathFromPathComponents(getNormalizedPathComponents(fileName, currentDirectory)); - } - ts.getNormalizedAbsolutePath = getNormalizedAbsolutePath; - function getNormalizedPathFromPathComponents(pathComponents) { - if (pathComponents && pathComponents.length) { - return pathComponents[0] + pathComponents.slice(1).join(ts.directorySeparator); - } - } - ts.getNormalizedPathFromPathComponents = getNormalizedPathFromPathComponents; - function getNormalizedPathComponentsOfUrl(url) { - // Get root length of http://www.website.com/folder1/foler2/ - // In this example the root is: http://www.website.com/ - // normalized path components should be ["http://www.website.com/", "folder1", "folder2"] - var urlLength = url.length; - var rootLength = url.indexOf("://") + "://".length; - while (rootLength < urlLength) { - if (url.charCodeAt(rootLength) === 47) { - rootLength++; - } - else { - break; - } - } - if (rootLength === urlLength) { - return [url]; - } - var indexOfNextSlash = url.indexOf(ts.directorySeparator, rootLength); - if (indexOfNextSlash !== -1) { - rootLength = indexOfNextSlash + 1; - return normalizedPathComponents(url, rootLength); - } - else { - return [url + ts.directorySeparator]; - } - } - function getNormalizedPathOrUrlComponents(pathOrUrl, currentDirectory) { - if (isUrl(pathOrUrl)) { - return getNormalizedPathComponentsOfUrl(pathOrUrl); - } - else { - return getNormalizedPathComponents(pathOrUrl, currentDirectory); - } - } - function getRelativePathToDirectoryOrUrl(directoryPathOrUrl, relativeOrAbsolutePath, currentDirectory, getCanonicalFileName, isAbsolutePathAnUrl) { - var pathComponents = getNormalizedPathOrUrlComponents(relativeOrAbsolutePath, currentDirectory); - var directoryComponents = getNormalizedPathOrUrlComponents(directoryPathOrUrl, currentDirectory); - if (directoryComponents.length > 1 && directoryComponents[directoryComponents.length - 1] === "") { - directoryComponents.length--; - } - for (var joinStartIndex = 0; joinStartIndex < pathComponents.length && joinStartIndex < directoryComponents.length; joinStartIndex++) { - if (getCanonicalFileName(directoryComponents[joinStartIndex]) !== getCanonicalFileName(pathComponents[joinStartIndex])) { - break; - } - } - if (joinStartIndex) { - var relativePath = ""; - var relativePathComponents = pathComponents.slice(joinStartIndex, pathComponents.length); - for (; joinStartIndex < directoryComponents.length; joinStartIndex++) { - if (directoryComponents[joinStartIndex] !== "") { - relativePath = relativePath + ".." + ts.directorySeparator; - } - } - return relativePath + relativePathComponents.join(ts.directorySeparator); - } - var absolutePath = getNormalizedPathFromPathComponents(pathComponents); - if (isAbsolutePathAnUrl && isRootedDiskPath(absolutePath)) { - absolutePath = "file:///" + absolutePath; - } - return absolutePath; - } - ts.getRelativePathToDirectoryOrUrl = getRelativePathToDirectoryOrUrl; - function getBaseFileName(path) { - var i = path.lastIndexOf(ts.directorySeparator); - return i < 0 ? path : path.substring(i + 1); - } - ts.getBaseFileName = getBaseFileName; - function combinePaths(path1, path2) { - if (!(path1 && path1.length)) - return path2; - if (!(path2 && path2.length)) - return path1; - if (getRootLength(path2) !== 0) - return path2; - if (path1.charAt(path1.length - 1) === ts.directorySeparator) - return path1 + path2; - return path1 + ts.directorySeparator + path2; - } - ts.combinePaths = combinePaths; - function fileExtensionIs(path, extension) { - var pathLen = path.length; - var extLen = extension.length; - return pathLen > extLen && path.substr(pathLen - extLen, extLen) === extension; - } - ts.fileExtensionIs = fileExtensionIs; - var supportedExtensions = [".d.ts", ".ts", ".js"]; - function removeFileExtension(path) { - for (var _i = 0, _n = supportedExtensions.length; _i < _n; _i++) { - var ext = supportedExtensions[_i]; - if (fileExtensionIs(path, ext)) { - return path.substr(0, path.length - ext.length); - } - } - return path; - } - ts.removeFileExtension = removeFileExtension; - var backslashOrDoubleQuote = /[\"\\]/g; - var escapedCharsRegExp = /[\u0000-\u001f\t\v\f\b\r\n\u2028\u2029\u0085]/g; - var escapedCharsMap = { - "\0": "\\0", - "\t": "\\t", - "\v": "\\v", - "\f": "\\f", - "\b": "\\b", - "\r": "\\r", - "\n": "\\n", - "\\": "\\\\", - "\"": "\\\"", - "\u2028": "\\u2028", - "\u2029": "\\u2029", - "\u0085": "\\u0085" - }; - function getDefaultLibFileName(options) { - return options.target === 2 ? "lib.es6.d.ts" : "lib.d.ts"; - } - ts.getDefaultLibFileName = getDefaultLibFileName; - function Symbol(flags, name) { - this.flags = flags; - this.name = name; - this.declarations = undefined; - } - function Type(checker, flags) { - this.flags = flags; - } - function Signature(checker) { - } - ts.objectAllocator = { - getNodeConstructor: function (kind) { - function Node() { - } - Node.prototype = { - kind: kind, - pos: 0, - end: 0, - flags: 0, - parent: undefined - }; - return Node; - }, - getSymbolConstructor: function () { return Symbol; }, - getTypeConstructor: function () { return Type; }, - getSignatureConstructor: function () { return Signature; } - }; - (function (AssertionLevel) { - AssertionLevel[AssertionLevel["None"] = 0] = "None"; - AssertionLevel[AssertionLevel["Normal"] = 1] = "Normal"; - AssertionLevel[AssertionLevel["Aggressive"] = 2] = "Aggressive"; - AssertionLevel[AssertionLevel["VeryAggressive"] = 3] = "VeryAggressive"; - })(ts.AssertionLevel || (ts.AssertionLevel = {})); - var AssertionLevel = ts.AssertionLevel; - var Debug; - (function (Debug) { - var currentAssertionLevel = 0; - function shouldAssert(level) { - return currentAssertionLevel >= level; - } - Debug.shouldAssert = shouldAssert; - function assert(expression, message, verboseDebugInfo) { - if (!expression) { - var verboseDebugString = ""; - if (verboseDebugInfo) { - verboseDebugString = "\r\nVerbose Debug Information: " + verboseDebugInfo(); - } - throw new Error("Debug Failure. False expression: " + (message || "") + verboseDebugString); - } - } - Debug.assert = assert; - function fail(message) { - Debug.assert(false, message); - } - Debug.fail = fail; - })(Debug = ts.Debug || (ts.Debug = {})); -})(ts || (ts = {})); -/// -var ts; -(function (ts) { - ts.sys = (function () { - function getWScriptSystem() { - var fso = new ActiveXObject("Scripting.FileSystemObject"); - var fileStream = new ActiveXObject("ADODB.Stream"); - fileStream.Type = 2; - var binaryStream = new ActiveXObject("ADODB.Stream"); - binaryStream.Type = 1; - var args = []; - for (var i = 0; i < WScript.Arguments.length; i++) { - args[i] = WScript.Arguments.Item(i); - } - function readFile(fileName, encoding) { - if (!fso.FileExists(fileName)) { - return undefined; - } - fileStream.Open(); - try { - if (encoding) { - fileStream.Charset = encoding; - fileStream.LoadFromFile(fileName); - } - else { - fileStream.Charset = "x-ansi"; - fileStream.LoadFromFile(fileName); - var bom = fileStream.ReadText(2) || ""; - fileStream.Position = 0; - fileStream.Charset = bom.length >= 2 && (bom.charCodeAt(0) === 0xFF && bom.charCodeAt(1) === 0xFE || bom.charCodeAt(0) === 0xFE && bom.charCodeAt(1) === 0xFF) ? "unicode" : "utf-8"; - } - return fileStream.ReadText(); - } - catch (e) { - throw e; - } - finally { - fileStream.Close(); - } - } - function writeFile(fileName, data, writeByteOrderMark) { - fileStream.Open(); - binaryStream.Open(); - try { - fileStream.Charset = "utf-8"; - fileStream.WriteText(data); - if (writeByteOrderMark) { - fileStream.Position = 0; - } - else { - fileStream.Position = 3; - } - fileStream.CopyTo(binaryStream); - binaryStream.SaveToFile(fileName, 2); - } - finally { - binaryStream.Close(); - fileStream.Close(); - } - } - function getNames(collection) { - var result = []; - for (var e = new Enumerator(collection); !e.atEnd(); e.moveNext()) { - result.push(e.item().Name); - } - return result.sort(); - } - function readDirectory(path, extension) { - var result = []; - visitDirectory(path); - return result; - function visitDirectory(path) { - var folder = fso.GetFolder(path || "."); - var files = getNames(folder.files); - for (var _i = 0, _n = files.length; _i < _n; _i++) { - var name_1 = files[_i]; - if (!extension || ts.fileExtensionIs(name_1, extension)) { - result.push(ts.combinePaths(path, name_1)); - } - } - var subfolders = getNames(folder.subfolders); - for (var _a = 0, _b = subfolders.length; _a < _b; _a++) { - var current = subfolders[_a]; - visitDirectory(ts.combinePaths(path, current)); - } - } - } - return { - args: args, - newLine: "\r\n", - useCaseSensitiveFileNames: false, - write: function (s) { - WScript.StdOut.Write(s); - }, - readFile: readFile, - writeFile: writeFile, - resolvePath: function (path) { - return fso.GetAbsolutePathName(path); - }, - fileExists: function (path) { - return fso.FileExists(path); - }, - directoryExists: function (path) { - return fso.FolderExists(path); - }, - createDirectory: function (directoryName) { - if (!this.directoryExists(directoryName)) { - fso.CreateFolder(directoryName); - } - }, - getExecutingFilePath: function () { - return WScript.ScriptFullName; - }, - getCurrentDirectory: function () { - return new ActiveXObject("WScript.Shell").CurrentDirectory; - }, - readDirectory: readDirectory, - exit: function (exitCode) { - try { - WScript.Quit(exitCode); - } - catch (e) { - } - } - }; - } - function getNodeSystem() { - var _fs = require("fs"); - var _path = require("path"); - var _os = require('os'); - var platform = _os.platform(); - var useCaseSensitiveFileNames = platform !== "win32" && platform !== "win64" && platform !== "darwin"; - function readFile(fileName, encoding) { - if (!_fs.existsSync(fileName)) { - return undefined; - } - var buffer = _fs.readFileSync(fileName); - var len = buffer.length; - if (len >= 2 && buffer[0] === 0xFE && buffer[1] === 0xFF) { - len &= ~1; - for (var i = 0; i < len; i += 2) { - var temp = buffer[i]; - buffer[i] = buffer[i + 1]; - buffer[i + 1] = temp; - } - return buffer.toString("utf16le", 2); - } - if (len >= 2 && buffer[0] === 0xFF && buffer[1] === 0xFE) { - return buffer.toString("utf16le", 2); - } - if (len >= 3 && buffer[0] === 0xEF && buffer[1] === 0xBB && buffer[2] === 0xBF) { - return buffer.toString("utf8", 3); - } - return buffer.toString("utf8"); - } - function writeFile(fileName, data, writeByteOrderMark) { - if (writeByteOrderMark) { - data = '\uFEFF' + data; - } - _fs.writeFileSync(fileName, data, "utf8"); - } - function readDirectory(path, extension) { - var result = []; - visitDirectory(path); - return result; - function visitDirectory(path) { - var files = _fs.readdirSync(path || ".").sort(); - var directories = []; - for (var _i = 0, _n = files.length; _i < _n; _i++) { - var current = files[_i]; - var name = ts.combinePaths(path, current); - var stat = _fs.lstatSync(name); - if (stat.isFile()) { - if (!extension || ts.fileExtensionIs(name, extension)) { - result.push(name); - } - } - else if (stat.isDirectory()) { - directories.push(name); - } - } - for (var _a = 0, _b = directories.length; _a < _b; _a++) { - var current = directories[_a]; - visitDirectory(current); - } - } - } - return { - args: process.argv.slice(2), - newLine: _os.EOL, - useCaseSensitiveFileNames: useCaseSensitiveFileNames, - write: function (s) { - _fs.writeSync(1, s); - }, - readFile: readFile, - writeFile: writeFile, - watchFile: function (fileName, callback) { - _fs.watchFile(fileName, { persistent: true, interval: 250 }, fileChanged); - return { - close: function () { _fs.unwatchFile(fileName, fileChanged); } - }; - function fileChanged(curr, prev) { - if (+curr.mtime <= +prev.mtime) { - return; - } - callback(fileName); - } - ; - }, - resolvePath: function (path) { - return _path.resolve(path); - }, - fileExists: function (path) { - return _fs.existsSync(path); - }, - directoryExists: function (path) { - return _fs.existsSync(path) && _fs.statSync(path).isDirectory(); - }, - createDirectory: function (directoryName) { - if (!this.directoryExists(directoryName)) { - _fs.mkdirSync(directoryName); - } - }, - getExecutingFilePath: function () { - return __filename; - }, - getCurrentDirectory: function () { - return process.cwd(); - }, - readDirectory: readDirectory, - getMemoryUsage: function () { - if (global.gc) { - global.gc(); - } - return process.memoryUsage().heapUsed; - }, - exit: function (exitCode) { - process.exit(exitCode); - } - }; - } - if (typeof WScript !== "undefined" && typeof ActiveXObject === "function") { - return getWScriptSystem(); - } - else if (typeof module !== "undefined" && module.exports) { - return getNodeSystem(); - } - else { - return undefined; - } - })(); -})(ts || (ts = {})); -/// -var ts; -(function (ts) { - ts.Diagnostics = { - Unterminated_string_literal: { code: 1002, category: ts.DiagnosticCategory.Error, key: "Unterminated string literal." }, - Identifier_expected: { code: 1003, category: ts.DiagnosticCategory.Error, key: "Identifier expected." }, - _0_expected: { code: 1005, category: ts.DiagnosticCategory.Error, key: "'{0}' expected." }, - A_file_cannot_have_a_reference_to_itself: { code: 1006, category: ts.DiagnosticCategory.Error, key: "A file cannot have a reference to itself." }, - Trailing_comma_not_allowed: { code: 1009, category: ts.DiagnosticCategory.Error, key: "Trailing comma not allowed." }, - Asterisk_Slash_expected: { code: 1010, category: ts.DiagnosticCategory.Error, key: "'*/' expected." }, - Unexpected_token: { code: 1012, category: ts.DiagnosticCategory.Error, key: "Unexpected token." }, - A_rest_parameter_must_be_last_in_a_parameter_list: { code: 1014, category: ts.DiagnosticCategory.Error, key: "A rest parameter must be last in a parameter list." }, - Parameter_cannot_have_question_mark_and_initializer: { code: 1015, category: ts.DiagnosticCategory.Error, key: "Parameter cannot have question mark and initializer." }, - A_required_parameter_cannot_follow_an_optional_parameter: { code: 1016, category: ts.DiagnosticCategory.Error, key: "A required parameter cannot follow an optional parameter." }, - An_index_signature_cannot_have_a_rest_parameter: { code: 1017, category: ts.DiagnosticCategory.Error, key: "An index signature cannot have a rest parameter." }, - An_index_signature_parameter_cannot_have_an_accessibility_modifier: { code: 1018, category: ts.DiagnosticCategory.Error, key: "An index signature parameter cannot have an accessibility modifier." }, - An_index_signature_parameter_cannot_have_a_question_mark: { code: 1019, category: ts.DiagnosticCategory.Error, key: "An index signature parameter cannot have a question mark." }, - An_index_signature_parameter_cannot_have_an_initializer: { code: 1020, category: ts.DiagnosticCategory.Error, key: "An index signature parameter cannot have an initializer." }, - An_index_signature_must_have_a_type_annotation: { code: 1021, category: ts.DiagnosticCategory.Error, key: "An index signature must have a type annotation." }, - An_index_signature_parameter_must_have_a_type_annotation: { code: 1022, category: ts.DiagnosticCategory.Error, key: "An index signature parameter must have a type annotation." }, - An_index_signature_parameter_type_must_be_string_or_number: { code: 1023, category: ts.DiagnosticCategory.Error, key: "An index signature parameter type must be 'string' or 'number'." }, - A_class_or_interface_declaration_can_only_have_one_extends_clause: { code: 1024, category: ts.DiagnosticCategory.Error, key: "A class or interface declaration can only have one 'extends' clause." }, - An_extends_clause_must_precede_an_implements_clause: { code: 1025, category: ts.DiagnosticCategory.Error, key: "An 'extends' clause must precede an 'implements' clause." }, - A_class_can_only_extend_a_single_class: { code: 1026, category: ts.DiagnosticCategory.Error, key: "A class can only extend a single class." }, - A_class_declaration_can_only_have_one_implements_clause: { code: 1027, category: ts.DiagnosticCategory.Error, key: "A class declaration can only have one 'implements' clause." }, - Accessibility_modifier_already_seen: { code: 1028, category: ts.DiagnosticCategory.Error, key: "Accessibility modifier already seen." }, - _0_modifier_must_precede_1_modifier: { code: 1029, category: ts.DiagnosticCategory.Error, key: "'{0}' modifier must precede '{1}' modifier." }, - _0_modifier_already_seen: { code: 1030, category: ts.DiagnosticCategory.Error, key: "'{0}' modifier already seen." }, - _0_modifier_cannot_appear_on_a_class_element: { code: 1031, category: ts.DiagnosticCategory.Error, key: "'{0}' modifier cannot appear on a class element." }, - An_interface_declaration_cannot_have_an_implements_clause: { code: 1032, category: ts.DiagnosticCategory.Error, key: "An interface declaration cannot have an 'implements' clause." }, - super_must_be_followed_by_an_argument_list_or_member_access: { code: 1034, category: ts.DiagnosticCategory.Error, key: "'super' must be followed by an argument list or member access." }, - Only_ambient_modules_can_use_quoted_names: { code: 1035, category: ts.DiagnosticCategory.Error, key: "Only ambient modules can use quoted names." }, - Statements_are_not_allowed_in_ambient_contexts: { code: 1036, category: ts.DiagnosticCategory.Error, key: "Statements are not allowed in ambient contexts." }, - A_declare_modifier_cannot_be_used_in_an_already_ambient_context: { code: 1038, category: ts.DiagnosticCategory.Error, key: "A 'declare' modifier cannot be used in an already ambient context." }, - Initializers_are_not_allowed_in_ambient_contexts: { code: 1039, category: ts.DiagnosticCategory.Error, key: "Initializers are not allowed in ambient contexts." }, - _0_modifier_cannot_appear_on_a_module_element: { code: 1044, category: ts.DiagnosticCategory.Error, key: "'{0}' modifier cannot appear on a module element." }, - A_declare_modifier_cannot_be_used_with_an_interface_declaration: { code: 1045, category: ts.DiagnosticCategory.Error, key: "A 'declare' modifier cannot be used with an interface declaration." }, - A_declare_modifier_is_required_for_a_top_level_declaration_in_a_d_ts_file: { code: 1046, category: ts.DiagnosticCategory.Error, key: "A 'declare' modifier is required for a top level declaration in a .d.ts file." }, - A_rest_parameter_cannot_be_optional: { code: 1047, category: ts.DiagnosticCategory.Error, key: "A rest parameter cannot be optional." }, - A_rest_parameter_cannot_have_an_initializer: { code: 1048, category: ts.DiagnosticCategory.Error, key: "A rest parameter cannot have an initializer." }, - A_set_accessor_must_have_exactly_one_parameter: { code: 1049, category: ts.DiagnosticCategory.Error, key: "A 'set' accessor must have exactly one parameter." }, - A_set_accessor_cannot_have_an_optional_parameter: { code: 1051, category: ts.DiagnosticCategory.Error, key: "A 'set' accessor cannot have an optional parameter." }, - A_set_accessor_parameter_cannot_have_an_initializer: { code: 1052, category: ts.DiagnosticCategory.Error, key: "A 'set' accessor parameter cannot have an initializer." }, - A_set_accessor_cannot_have_rest_parameter: { code: 1053, category: ts.DiagnosticCategory.Error, key: "A 'set' accessor cannot have rest parameter." }, - A_get_accessor_cannot_have_parameters: { code: 1054, category: ts.DiagnosticCategory.Error, key: "A 'get' accessor cannot have parameters." }, - Accessors_are_only_available_when_targeting_ECMAScript_5_and_higher: { code: 1056, category: ts.DiagnosticCategory.Error, key: "Accessors are only available when targeting ECMAScript 5 and higher." }, - Enum_member_must_have_initializer: { code: 1061, category: ts.DiagnosticCategory.Error, key: "Enum member must have initializer." }, - An_export_assignment_cannot_be_used_in_an_internal_module: { code: 1063, category: ts.DiagnosticCategory.Error, key: "An export assignment cannot be used in an internal module." }, - Ambient_enum_elements_can_only_have_integer_literal_initializers: { code: 1066, category: ts.DiagnosticCategory.Error, key: "Ambient enum elements can only have integer literal initializers." }, - Unexpected_token_A_constructor_method_accessor_or_property_was_expected: { code: 1068, category: ts.DiagnosticCategory.Error, key: "Unexpected token. A constructor, method, accessor, or property was expected." }, - A_declare_modifier_cannot_be_used_with_an_import_declaration: { code: 1079, category: ts.DiagnosticCategory.Error, key: "A 'declare' modifier cannot be used with an import declaration." }, - Invalid_reference_directive_syntax: { code: 1084, category: ts.DiagnosticCategory.Error, key: "Invalid 'reference' directive syntax." }, - Octal_literals_are_not_available_when_targeting_ECMAScript_5_and_higher: { code: 1085, category: ts.DiagnosticCategory.Error, key: "Octal literals are not available when targeting ECMAScript 5 and higher." }, - An_accessor_cannot_be_declared_in_an_ambient_context: { code: 1086, category: ts.DiagnosticCategory.Error, key: "An accessor cannot be declared in an ambient context." }, - _0_modifier_cannot_appear_on_a_constructor_declaration: { code: 1089, category: ts.DiagnosticCategory.Error, key: "'{0}' modifier cannot appear on a constructor declaration." }, - _0_modifier_cannot_appear_on_a_parameter: { code: 1090, category: ts.DiagnosticCategory.Error, key: "'{0}' modifier cannot appear on a parameter." }, - Only_a_single_variable_declaration_is_allowed_in_a_for_in_statement: { code: 1091, category: ts.DiagnosticCategory.Error, key: "Only a single variable declaration is allowed in a 'for...in' statement." }, - Type_parameters_cannot_appear_on_a_constructor_declaration: { code: 1092, category: ts.DiagnosticCategory.Error, key: "Type parameters cannot appear on a constructor declaration." }, - Type_annotation_cannot_appear_on_a_constructor_declaration: { code: 1093, category: ts.DiagnosticCategory.Error, key: "Type annotation cannot appear on a constructor declaration." }, - An_accessor_cannot_have_type_parameters: { code: 1094, category: ts.DiagnosticCategory.Error, key: "An accessor cannot have type parameters." }, - A_set_accessor_cannot_have_a_return_type_annotation: { code: 1095, category: ts.DiagnosticCategory.Error, key: "A 'set' accessor cannot have a return type annotation." }, - An_index_signature_must_have_exactly_one_parameter: { code: 1096, category: ts.DiagnosticCategory.Error, key: "An index signature must have exactly one parameter." }, - _0_list_cannot_be_empty: { code: 1097, category: ts.DiagnosticCategory.Error, key: "'{0}' list cannot be empty." }, - Type_parameter_list_cannot_be_empty: { code: 1098, category: ts.DiagnosticCategory.Error, key: "Type parameter list cannot be empty." }, - Type_argument_list_cannot_be_empty: { code: 1099, category: ts.DiagnosticCategory.Error, key: "Type argument list cannot be empty." }, - Invalid_use_of_0_in_strict_mode: { code: 1100, category: ts.DiagnosticCategory.Error, key: "Invalid use of '{0}' in strict mode." }, - with_statements_are_not_allowed_in_strict_mode: { code: 1101, category: ts.DiagnosticCategory.Error, key: "'with' statements are not allowed in strict mode." }, - delete_cannot_be_called_on_an_identifier_in_strict_mode: { code: 1102, category: ts.DiagnosticCategory.Error, key: "'delete' cannot be called on an identifier in strict mode." }, - A_continue_statement_can_only_be_used_within_an_enclosing_iteration_statement: { code: 1104, category: ts.DiagnosticCategory.Error, key: "A 'continue' statement can only be used within an enclosing iteration statement." }, - A_break_statement_can_only_be_used_within_an_enclosing_iteration_or_switch_statement: { code: 1105, category: ts.DiagnosticCategory.Error, key: "A 'break' statement can only be used within an enclosing iteration or switch statement." }, - Jump_target_cannot_cross_function_boundary: { code: 1107, category: ts.DiagnosticCategory.Error, key: "Jump target cannot cross function boundary." }, - A_return_statement_can_only_be_used_within_a_function_body: { code: 1108, category: ts.DiagnosticCategory.Error, key: "A 'return' statement can only be used within a function body." }, - Expression_expected: { code: 1109, category: ts.DiagnosticCategory.Error, key: "Expression expected." }, - Type_expected: { code: 1110, category: ts.DiagnosticCategory.Error, key: "Type expected." }, - A_class_member_cannot_be_declared_optional: { code: 1112, category: ts.DiagnosticCategory.Error, key: "A class member cannot be declared optional." }, - A_default_clause_cannot_appear_more_than_once_in_a_switch_statement: { code: 1113, category: ts.DiagnosticCategory.Error, key: "A 'default' clause cannot appear more than once in a 'switch' statement." }, - Duplicate_label_0: { code: 1114, category: ts.DiagnosticCategory.Error, key: "Duplicate label '{0}'" }, - A_continue_statement_can_only_jump_to_a_label_of_an_enclosing_iteration_statement: { code: 1115, category: ts.DiagnosticCategory.Error, key: "A 'continue' statement can only jump to a label of an enclosing iteration statement." }, - A_break_statement_can_only_jump_to_a_label_of_an_enclosing_statement: { code: 1116, category: ts.DiagnosticCategory.Error, key: "A 'break' statement can only jump to a label of an enclosing statement." }, - An_object_literal_cannot_have_multiple_properties_with_the_same_name_in_strict_mode: { code: 1117, category: ts.DiagnosticCategory.Error, key: "An object literal cannot have multiple properties with the same name in strict mode." }, - An_object_literal_cannot_have_multiple_get_Slashset_accessors_with_the_same_name: { code: 1118, category: ts.DiagnosticCategory.Error, key: "An object literal cannot have multiple get/set accessors with the same name." }, - An_object_literal_cannot_have_property_and_accessor_with_the_same_name: { code: 1119, category: ts.DiagnosticCategory.Error, key: "An object literal cannot have property and accessor with the same name." }, - An_export_assignment_cannot_have_modifiers: { code: 1120, category: ts.DiagnosticCategory.Error, key: "An export assignment cannot have modifiers." }, - Octal_literals_are_not_allowed_in_strict_mode: { code: 1121, category: ts.DiagnosticCategory.Error, key: "Octal literals are not allowed in strict mode." }, - A_tuple_type_element_list_cannot_be_empty: { code: 1122, category: ts.DiagnosticCategory.Error, key: "A tuple type element list cannot be empty." }, - Variable_declaration_list_cannot_be_empty: { code: 1123, category: ts.DiagnosticCategory.Error, key: "Variable declaration list cannot be empty." }, - Digit_expected: { code: 1124, category: ts.DiagnosticCategory.Error, key: "Digit expected." }, - Hexadecimal_digit_expected: { code: 1125, category: ts.DiagnosticCategory.Error, key: "Hexadecimal digit expected." }, - Unexpected_end_of_text: { code: 1126, category: ts.DiagnosticCategory.Error, key: "Unexpected end of text." }, - Invalid_character: { code: 1127, category: ts.DiagnosticCategory.Error, key: "Invalid character." }, - Declaration_or_statement_expected: { code: 1128, category: ts.DiagnosticCategory.Error, key: "Declaration or statement expected." }, - Statement_expected: { code: 1129, category: ts.DiagnosticCategory.Error, key: "Statement expected." }, - case_or_default_expected: { code: 1130, category: ts.DiagnosticCategory.Error, key: "'case' or 'default' expected." }, - Property_or_signature_expected: { code: 1131, category: ts.DiagnosticCategory.Error, key: "Property or signature expected." }, - Enum_member_expected: { code: 1132, category: ts.DiagnosticCategory.Error, key: "Enum member expected." }, - Type_reference_expected: { code: 1133, category: ts.DiagnosticCategory.Error, key: "Type reference expected." }, - Variable_declaration_expected: { code: 1134, category: ts.DiagnosticCategory.Error, key: "Variable declaration expected." }, - Argument_expression_expected: { code: 1135, category: ts.DiagnosticCategory.Error, key: "Argument expression expected." }, - Property_assignment_expected: { code: 1136, category: ts.DiagnosticCategory.Error, key: "Property assignment expected." }, - Expression_or_comma_expected: { code: 1137, category: ts.DiagnosticCategory.Error, key: "Expression or comma expected." }, - Parameter_declaration_expected: { code: 1138, category: ts.DiagnosticCategory.Error, key: "Parameter declaration expected." }, - Type_parameter_declaration_expected: { code: 1139, category: ts.DiagnosticCategory.Error, key: "Type parameter declaration expected." }, - Type_argument_expected: { code: 1140, category: ts.DiagnosticCategory.Error, key: "Type argument expected." }, - String_literal_expected: { code: 1141, category: ts.DiagnosticCategory.Error, key: "String literal expected." }, - Line_break_not_permitted_here: { code: 1142, category: ts.DiagnosticCategory.Error, key: "Line break not permitted here." }, - or_expected: { code: 1144, category: ts.DiagnosticCategory.Error, key: "'{' or ';' expected." }, - Modifiers_not_permitted_on_index_signature_members: { code: 1145, category: ts.DiagnosticCategory.Error, key: "Modifiers not permitted on index signature members." }, - Declaration_expected: { code: 1146, category: ts.DiagnosticCategory.Error, key: "Declaration expected." }, - Import_declarations_in_an_internal_module_cannot_reference_an_external_module: { code: 1147, category: ts.DiagnosticCategory.Error, key: "Import declarations in an internal module cannot reference an external module." }, - Cannot_compile_external_modules_unless_the_module_flag_is_provided: { code: 1148, category: ts.DiagnosticCategory.Error, key: "Cannot compile external modules unless the '--module' flag is provided." }, - File_name_0_differs_from_already_included_file_name_1_only_in_casing: { code: 1149, category: ts.DiagnosticCategory.Error, key: "File name '{0}' differs from already included file name '{1}' only in casing" }, - new_T_cannot_be_used_to_create_an_array_Use_new_Array_T_instead: { code: 1150, category: ts.DiagnosticCategory.Error, key: "'new T[]' cannot be used to create an array. Use 'new Array()' instead." }, - var_let_or_const_expected: { code: 1152, category: ts.DiagnosticCategory.Error, key: "'var', 'let' or 'const' expected." }, - let_declarations_are_only_available_when_targeting_ECMAScript_6_and_higher: { code: 1153, category: ts.DiagnosticCategory.Error, key: "'let' declarations are only available when targeting ECMAScript 6 and higher." }, - const_declarations_are_only_available_when_targeting_ECMAScript_6_and_higher: { code: 1154, category: ts.DiagnosticCategory.Error, key: "'const' declarations are only available when targeting ECMAScript 6 and higher." }, - const_declarations_must_be_initialized: { code: 1155, category: ts.DiagnosticCategory.Error, key: "'const' declarations must be initialized" }, - const_declarations_can_only_be_declared_inside_a_block: { code: 1156, category: ts.DiagnosticCategory.Error, key: "'const' declarations can only be declared inside a block." }, - let_declarations_can_only_be_declared_inside_a_block: { code: 1157, category: ts.DiagnosticCategory.Error, key: "'let' declarations can only be declared inside a block." }, - Unterminated_template_literal: { code: 1160, category: ts.DiagnosticCategory.Error, key: "Unterminated template literal." }, - Unterminated_regular_expression_literal: { code: 1161, category: ts.DiagnosticCategory.Error, key: "Unterminated regular expression literal." }, - An_object_member_cannot_be_declared_optional: { code: 1162, category: ts.DiagnosticCategory.Error, key: "An object member cannot be declared optional." }, - yield_expression_must_be_contained_within_a_generator_declaration: { code: 1163, category: ts.DiagnosticCategory.Error, key: "'yield' expression must be contained_within a generator declaration." }, - Computed_property_names_are_not_allowed_in_enums: { code: 1164, category: ts.DiagnosticCategory.Error, key: "Computed property names are not allowed in enums." }, - A_computed_property_name_in_an_ambient_context_must_directly_refer_to_a_built_in_symbol: { code: 1165, category: ts.DiagnosticCategory.Error, key: "A computed property name in an ambient context must directly refer to a built-in symbol." }, - A_computed_property_name_in_a_class_property_declaration_must_directly_refer_to_a_built_in_symbol: { code: 1166, category: ts.DiagnosticCategory.Error, key: "A computed property name in a class property declaration must directly refer to a built-in symbol." }, - Computed_property_names_are_only_available_when_targeting_ECMAScript_6_and_higher: { code: 1167, category: ts.DiagnosticCategory.Error, key: "Computed property names are only available when targeting ECMAScript 6 and higher." }, - A_computed_property_name_in_a_method_overload_must_directly_refer_to_a_built_in_symbol: { code: 1168, category: ts.DiagnosticCategory.Error, key: "A computed property name in a method overload must directly refer to a built-in symbol." }, - A_computed_property_name_in_an_interface_must_directly_refer_to_a_built_in_symbol: { code: 1169, category: ts.DiagnosticCategory.Error, key: "A computed property name in an interface must directly refer to a built-in symbol." }, - A_computed_property_name_in_a_type_literal_must_directly_refer_to_a_built_in_symbol: { code: 1170, category: ts.DiagnosticCategory.Error, key: "A computed property name in a type literal must directly refer to a built-in symbol." }, - A_comma_expression_is_not_allowed_in_a_computed_property_name: { code: 1171, category: ts.DiagnosticCategory.Error, key: "A comma expression is not allowed in a computed property name." }, - extends_clause_already_seen: { code: 1172, category: ts.DiagnosticCategory.Error, key: "'extends' clause already seen." }, - extends_clause_must_precede_implements_clause: { code: 1173, category: ts.DiagnosticCategory.Error, key: "'extends' clause must precede 'implements' clause." }, - Classes_can_only_extend_a_single_class: { code: 1174, category: ts.DiagnosticCategory.Error, key: "Classes can only extend a single class." }, - implements_clause_already_seen: { code: 1175, category: ts.DiagnosticCategory.Error, key: "'implements' clause already seen." }, - Interface_declaration_cannot_have_implements_clause: { code: 1176, category: ts.DiagnosticCategory.Error, key: "Interface declaration cannot have 'implements' clause." }, - Binary_digit_expected: { code: 1177, category: ts.DiagnosticCategory.Error, key: "Binary digit expected." }, - Octal_digit_expected: { code: 1178, category: ts.DiagnosticCategory.Error, key: "Octal digit expected." }, - Unexpected_token_expected: { code: 1179, category: ts.DiagnosticCategory.Error, key: "Unexpected token. '{' expected." }, - Property_destructuring_pattern_expected: { code: 1180, category: ts.DiagnosticCategory.Error, key: "Property destructuring pattern expected." }, - Array_element_destructuring_pattern_expected: { code: 1181, category: ts.DiagnosticCategory.Error, key: "Array element destructuring pattern expected." }, - A_destructuring_declaration_must_have_an_initializer: { code: 1182, category: ts.DiagnosticCategory.Error, key: "A destructuring declaration must have an initializer." }, - Destructuring_declarations_are_not_allowed_in_ambient_contexts: { code: 1183, category: ts.DiagnosticCategory.Error, key: "Destructuring declarations are not allowed in ambient contexts." }, - An_implementation_cannot_be_declared_in_ambient_contexts: { code: 1184, category: ts.DiagnosticCategory.Error, key: "An implementation cannot be declared in ambient contexts." }, - Modifiers_cannot_appear_here: { code: 1184, category: ts.DiagnosticCategory.Error, key: "Modifiers cannot appear here." }, - Merge_conflict_marker_encountered: { code: 1185, category: ts.DiagnosticCategory.Error, key: "Merge conflict marker encountered." }, - A_rest_element_cannot_have_an_initializer: { code: 1186, category: ts.DiagnosticCategory.Error, key: "A rest element cannot have an initializer." }, - A_parameter_property_may_not_be_a_binding_pattern: { code: 1187, category: ts.DiagnosticCategory.Error, key: "A parameter property may not be a binding pattern." }, - Only_a_single_variable_declaration_is_allowed_in_a_for_of_statement: { code: 1188, category: ts.DiagnosticCategory.Error, key: "Only a single variable declaration is allowed in a 'for...of' statement." }, - The_variable_declaration_of_a_for_in_statement_cannot_have_an_initializer: { code: 1189, category: ts.DiagnosticCategory.Error, key: "The variable declaration of a 'for...in' statement cannot have an initializer." }, - The_variable_declaration_of_a_for_of_statement_cannot_have_an_initializer: { code: 1190, category: ts.DiagnosticCategory.Error, key: "The variable declaration of a 'for...of' statement cannot have an initializer." }, - An_import_declaration_cannot_have_modifiers: { code: 1191, category: ts.DiagnosticCategory.Error, key: "An import declaration cannot have modifiers." }, - External_module_0_has_no_default_export: { code: 1192, category: ts.DiagnosticCategory.Error, key: "External module '{0}' has no default export." }, - An_export_declaration_cannot_have_modifiers: { code: 1193, category: ts.DiagnosticCategory.Error, key: "An export declaration cannot have modifiers." }, - Export_declarations_are_not_permitted_in_an_internal_module: { code: 1194, category: ts.DiagnosticCategory.Error, key: "Export declarations are not permitted in an internal module." }, - Catch_clause_variable_name_must_be_an_identifier: { code: 1195, category: ts.DiagnosticCategory.Error, key: "Catch clause variable name must be an identifier." }, - Catch_clause_variable_cannot_have_a_type_annotation: { code: 1196, category: ts.DiagnosticCategory.Error, key: "Catch clause variable cannot have a type annotation." }, - Catch_clause_variable_cannot_have_an_initializer: { code: 1197, category: ts.DiagnosticCategory.Error, key: "Catch clause variable cannot have an initializer." }, - An_extended_Unicode_escape_value_must_be_between_0x0_and_0x10FFFF_inclusive: { code: 1198, category: ts.DiagnosticCategory.Error, key: "An extended Unicode escape value must be between 0x0 and 0x10FFFF inclusive." }, - Unterminated_Unicode_escape_sequence: { code: 1199, category: ts.DiagnosticCategory.Error, key: "Unterminated Unicode escape sequence." }, - Line_terminator_not_permitted_before_arrow: { code: 1200, category: ts.DiagnosticCategory.Error, key: "Line terminator not permitted before arrow." }, - A_type_annotation_on_an_export_statement_is_only_allowed_in_an_ambient_external_module_declaration: { code: 1201, category: ts.DiagnosticCategory.Error, key: "A type annotation on an export statement is only allowed in an ambient external module declaration." }, - Import_assignment_cannot_be_used_when_targeting_ECMAScript_6_or_higher_Consider_using_import_Asterisk_as_ns_from_mod_import_a_from_mod_or_import_d_from_mod_instead: { code: 1202, category: ts.DiagnosticCategory.Error, key: "Import assignment cannot be used when targeting ECMAScript 6 or higher. Consider using 'import * as ns from \"mod\"', 'import {a} from \"mod\"' or 'import d from \"mod\"' instead." }, - Export_assignment_cannot_be_used_when_targeting_ECMAScript_6_or_higher_Consider_using_export_default_instead: { code: 1203, category: ts.DiagnosticCategory.Error, key: "Export assignment cannot be used when targeting ECMAScript 6 or higher. Consider using 'export default' instead." }, - Cannot_compile_external_modules_into_amd_or_commonjs_when_targeting_es6_or_higher: { code: 1204, category: ts.DiagnosticCategory.Error, key: "Cannot compile external modules into amd or commonjs when targeting es6 or higher." }, - Decorators_are_only_available_when_targeting_ECMAScript_5_and_higher: { code: 1205, category: ts.DiagnosticCategory.Error, key: "Decorators are only available when targeting ECMAScript 5 and higher." }, - Decorators_are_not_valid_here: { code: 1206, category: ts.DiagnosticCategory.Error, key: "Decorators are not valid here." }, - Decorators_cannot_be_applied_to_multiple_get_Slashset_accessors_of_the_same_name: { code: 1207, category: ts.DiagnosticCategory.Error, key: "Decorators cannot be applied to multiple get/set accessors of the same name." }, - Duplicate_identifier_0: { code: 2300, category: ts.DiagnosticCategory.Error, key: "Duplicate identifier '{0}'." }, - Initializer_of_instance_member_variable_0_cannot_reference_identifier_1_declared_in_the_constructor: { code: 2301, category: ts.DiagnosticCategory.Error, key: "Initializer of instance member variable '{0}' cannot reference identifier '{1}' declared in the constructor." }, - Static_members_cannot_reference_class_type_parameters: { code: 2302, category: ts.DiagnosticCategory.Error, key: "Static members cannot reference class type parameters." }, - Circular_definition_of_import_alias_0: { code: 2303, category: ts.DiagnosticCategory.Error, key: "Circular definition of import alias '{0}'." }, - Cannot_find_name_0: { code: 2304, category: ts.DiagnosticCategory.Error, key: "Cannot find name '{0}'." }, - Module_0_has_no_exported_member_1: { code: 2305, category: ts.DiagnosticCategory.Error, key: "Module '{0}' has no exported member '{1}'." }, - File_0_is_not_an_external_module: { code: 2306, category: ts.DiagnosticCategory.Error, key: "File '{0}' is not an external module." }, - Cannot_find_external_module_0: { code: 2307, category: ts.DiagnosticCategory.Error, key: "Cannot find external module '{0}'." }, - A_module_cannot_have_more_than_one_export_assignment: { code: 2308, category: ts.DiagnosticCategory.Error, key: "A module cannot have more than one export assignment." }, - An_export_assignment_cannot_be_used_in_a_module_with_other_exported_elements: { code: 2309, category: ts.DiagnosticCategory.Error, key: "An export assignment cannot be used in a module with other exported elements." }, - Type_0_recursively_references_itself_as_a_base_type: { code: 2310, category: ts.DiagnosticCategory.Error, key: "Type '{0}' recursively references itself as a base type." }, - A_class_may_only_extend_another_class: { code: 2311, category: ts.DiagnosticCategory.Error, key: "A class may only extend another class." }, - An_interface_may_only_extend_a_class_or_another_interface: { code: 2312, category: ts.DiagnosticCategory.Error, key: "An interface may only extend a class or another interface." }, - Constraint_of_a_type_parameter_cannot_reference_any_type_parameter_from_the_same_type_parameter_list: { code: 2313, category: ts.DiagnosticCategory.Error, key: "Constraint of a type parameter cannot reference any type parameter from the same type parameter list." }, - Generic_type_0_requires_1_type_argument_s: { code: 2314, category: ts.DiagnosticCategory.Error, key: "Generic type '{0}' requires {1} type argument(s)." }, - Type_0_is_not_generic: { code: 2315, category: ts.DiagnosticCategory.Error, key: "Type '{0}' is not generic." }, - Global_type_0_must_be_a_class_or_interface_type: { code: 2316, category: ts.DiagnosticCategory.Error, key: "Global type '{0}' must be a class or interface type." }, - Global_type_0_must_have_1_type_parameter_s: { code: 2317, category: ts.DiagnosticCategory.Error, key: "Global type '{0}' must have {1} type parameter(s)." }, - Cannot_find_global_type_0: { code: 2318, category: ts.DiagnosticCategory.Error, key: "Cannot find global type '{0}'." }, - Named_property_0_of_types_1_and_2_are_not_identical: { code: 2319, category: ts.DiagnosticCategory.Error, key: "Named property '{0}' of types '{1}' and '{2}' are not identical." }, - Interface_0_cannot_simultaneously_extend_types_1_and_2: { code: 2320, category: ts.DiagnosticCategory.Error, key: "Interface '{0}' cannot simultaneously extend types '{1}' and '{2}'." }, - Excessive_stack_depth_comparing_types_0_and_1: { code: 2321, category: ts.DiagnosticCategory.Error, key: "Excessive stack depth comparing types '{0}' and '{1}'." }, - Type_0_is_not_assignable_to_type_1: { code: 2322, category: ts.DiagnosticCategory.Error, key: "Type '{0}' is not assignable to type '{1}'." }, - Property_0_is_missing_in_type_1: { code: 2324, category: ts.DiagnosticCategory.Error, key: "Property '{0}' is missing in type '{1}'." }, - Property_0_is_private_in_type_1_but_not_in_type_2: { code: 2325, category: ts.DiagnosticCategory.Error, key: "Property '{0}' is private in type '{1}' but not in type '{2}'." }, - Types_of_property_0_are_incompatible: { code: 2326, category: ts.DiagnosticCategory.Error, key: "Types of property '{0}' are incompatible." }, - Property_0_is_optional_in_type_1_but_required_in_type_2: { code: 2327, category: ts.DiagnosticCategory.Error, key: "Property '{0}' is optional in type '{1}' but required in type '{2}'." }, - Types_of_parameters_0_and_1_are_incompatible: { code: 2328, category: ts.DiagnosticCategory.Error, key: "Types of parameters '{0}' and '{1}' are incompatible." }, - Index_signature_is_missing_in_type_0: { code: 2329, category: ts.DiagnosticCategory.Error, key: "Index signature is missing in type '{0}'." }, - Index_signatures_are_incompatible: { code: 2330, category: ts.DiagnosticCategory.Error, key: "Index signatures are incompatible." }, - this_cannot_be_referenced_in_a_module_body: { code: 2331, category: ts.DiagnosticCategory.Error, key: "'this' cannot be referenced in a module body." }, - this_cannot_be_referenced_in_current_location: { code: 2332, category: ts.DiagnosticCategory.Error, key: "'this' cannot be referenced in current location." }, - this_cannot_be_referenced_in_constructor_arguments: { code: 2333, category: ts.DiagnosticCategory.Error, key: "'this' cannot be referenced in constructor arguments." }, - this_cannot_be_referenced_in_a_static_property_initializer: { code: 2334, category: ts.DiagnosticCategory.Error, key: "'this' cannot be referenced in a static property initializer." }, - super_can_only_be_referenced_in_a_derived_class: { code: 2335, category: ts.DiagnosticCategory.Error, key: "'super' can only be referenced in a derived class." }, - super_cannot_be_referenced_in_constructor_arguments: { code: 2336, category: ts.DiagnosticCategory.Error, key: "'super' cannot be referenced in constructor arguments." }, - Super_calls_are_not_permitted_outside_constructors_or_in_nested_functions_inside_constructors: { code: 2337, category: ts.DiagnosticCategory.Error, key: "Super calls are not permitted outside constructors or in nested functions inside constructors" }, - super_property_access_is_permitted_only_in_a_constructor_member_function_or_member_accessor_of_a_derived_class: { code: 2338, category: ts.DiagnosticCategory.Error, key: "'super' property access is permitted only in a constructor, member function, or member accessor of a derived class" }, - Property_0_does_not_exist_on_type_1: { code: 2339, category: ts.DiagnosticCategory.Error, key: "Property '{0}' does not exist on type '{1}'." }, - Only_public_and_protected_methods_of_the_base_class_are_accessible_via_the_super_keyword: { code: 2340, category: ts.DiagnosticCategory.Error, key: "Only public and protected methods of the base class are accessible via the 'super' keyword" }, - Property_0_is_private_and_only_accessible_within_class_1: { code: 2341, category: ts.DiagnosticCategory.Error, key: "Property '{0}' is private and only accessible within class '{1}'." }, - An_index_expression_argument_must_be_of_type_string_number_symbol_or_any: { code: 2342, category: ts.DiagnosticCategory.Error, key: "An index expression argument must be of type 'string', 'number', 'symbol, or 'any'." }, - Type_0_does_not_satisfy_the_constraint_1: { code: 2344, category: ts.DiagnosticCategory.Error, key: "Type '{0}' does not satisfy the constraint '{1}'." }, - Argument_of_type_0_is_not_assignable_to_parameter_of_type_1: { code: 2345, category: ts.DiagnosticCategory.Error, key: "Argument of type '{0}' is not assignable to parameter of type '{1}'." }, - Supplied_parameters_do_not_match_any_signature_of_call_target: { code: 2346, category: ts.DiagnosticCategory.Error, key: "Supplied parameters do not match any signature of call target." }, - Untyped_function_calls_may_not_accept_type_arguments: { code: 2347, category: ts.DiagnosticCategory.Error, key: "Untyped function calls may not accept type arguments." }, - Value_of_type_0_is_not_callable_Did_you_mean_to_include_new: { code: 2348, category: ts.DiagnosticCategory.Error, key: "Value of type '{0}' is not callable. Did you mean to include 'new'?" }, - Cannot_invoke_an_expression_whose_type_lacks_a_call_signature: { code: 2349, category: ts.DiagnosticCategory.Error, key: "Cannot invoke an expression whose type lacks a call signature." }, - Only_a_void_function_can_be_called_with_the_new_keyword: { code: 2350, category: ts.DiagnosticCategory.Error, key: "Only a void function can be called with the 'new' keyword." }, - Cannot_use_new_with_an_expression_whose_type_lacks_a_call_or_construct_signature: { code: 2351, category: ts.DiagnosticCategory.Error, key: "Cannot use 'new' with an expression whose type lacks a call or construct signature." }, - Neither_type_0_nor_type_1_is_assignable_to_the_other: { code: 2352, category: ts.DiagnosticCategory.Error, key: "Neither type '{0}' nor type '{1}' is assignable to the other." }, - No_best_common_type_exists_among_return_expressions: { code: 2354, category: ts.DiagnosticCategory.Error, key: "No best common type exists among return expressions." }, - A_function_whose_declared_type_is_neither_void_nor_any_must_return_a_value_or_consist_of_a_single_throw_statement: { code: 2355, category: ts.DiagnosticCategory.Error, key: "A function whose declared type is neither 'void' nor 'any' must return a value or consist of a single 'throw' statement." }, - An_arithmetic_operand_must_be_of_type_any_number_or_an_enum_type: { code: 2356, category: ts.DiagnosticCategory.Error, key: "An arithmetic operand must be of type 'any', 'number' or an enum type." }, - The_operand_of_an_increment_or_decrement_operator_must_be_a_variable_property_or_indexer: { code: 2357, category: ts.DiagnosticCategory.Error, key: "The operand of an increment or decrement operator must be a variable, property or indexer." }, - The_left_hand_side_of_an_instanceof_expression_must_be_of_type_any_an_object_type_or_a_type_parameter: { code: 2358, category: ts.DiagnosticCategory.Error, key: "The left-hand side of an 'instanceof' expression must be of type 'any', an object type or a type parameter." }, - The_right_hand_side_of_an_instanceof_expression_must_be_of_type_any_or_of_a_type_assignable_to_the_Function_interface_type: { code: 2359, category: ts.DiagnosticCategory.Error, key: "The right-hand side of an 'instanceof' expression must be of type 'any' or of a type assignable to the 'Function' interface type." }, - The_left_hand_side_of_an_in_expression_must_be_of_type_any_string_number_or_symbol: { code: 2360, category: ts.DiagnosticCategory.Error, key: "The left-hand side of an 'in' expression must be of type 'any', 'string', 'number', or 'symbol'." }, - The_right_hand_side_of_an_in_expression_must_be_of_type_any_an_object_type_or_a_type_parameter: { code: 2361, category: ts.DiagnosticCategory.Error, key: "The right-hand side of an 'in' expression must be of type 'any', an object type or a type parameter" }, - The_left_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_or_an_enum_type: { code: 2362, category: ts.DiagnosticCategory.Error, key: "The left-hand side of an arithmetic operation must be of type 'any', 'number' or an enum type." }, - The_right_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_or_an_enum_type: { code: 2363, category: ts.DiagnosticCategory.Error, key: "The right-hand side of an arithmetic operation must be of type 'any', 'number' or an enum type." }, - Invalid_left_hand_side_of_assignment_expression: { code: 2364, category: ts.DiagnosticCategory.Error, key: "Invalid left-hand side of assignment expression." }, - Operator_0_cannot_be_applied_to_types_1_and_2: { code: 2365, category: ts.DiagnosticCategory.Error, key: "Operator '{0}' cannot be applied to types '{1}' and '{2}'." }, - Type_parameter_name_cannot_be_0: { code: 2368, category: ts.DiagnosticCategory.Error, key: "Type parameter name cannot be '{0}'" }, - A_parameter_property_is_only_allowed_in_a_constructor_implementation: { code: 2369, category: ts.DiagnosticCategory.Error, key: "A parameter property is only allowed in a constructor implementation." }, - A_rest_parameter_must_be_of_an_array_type: { code: 2370, category: ts.DiagnosticCategory.Error, key: "A rest parameter must be of an array type." }, - A_parameter_initializer_is_only_allowed_in_a_function_or_constructor_implementation: { code: 2371, category: ts.DiagnosticCategory.Error, key: "A parameter initializer is only allowed in a function or constructor implementation." }, - Parameter_0_cannot_be_referenced_in_its_initializer: { code: 2372, category: ts.DiagnosticCategory.Error, key: "Parameter '{0}' cannot be referenced in its initializer." }, - Initializer_of_parameter_0_cannot_reference_identifier_1_declared_after_it: { code: 2373, category: ts.DiagnosticCategory.Error, key: "Initializer of parameter '{0}' cannot reference identifier '{1}' declared after it." }, - Duplicate_string_index_signature: { code: 2374, category: ts.DiagnosticCategory.Error, key: "Duplicate string index signature." }, - Duplicate_number_index_signature: { code: 2375, category: ts.DiagnosticCategory.Error, key: "Duplicate number index signature." }, - A_super_call_must_be_the_first_statement_in_the_constructor_when_a_class_contains_initialized_properties_or_has_parameter_properties: { code: 2376, category: ts.DiagnosticCategory.Error, key: "A 'super' call must be the first statement in the constructor when a class contains initialized properties or has parameter properties." }, - Constructors_for_derived_classes_must_contain_a_super_call: { code: 2377, category: ts.DiagnosticCategory.Error, key: "Constructors for derived classes must contain a 'super' call." }, - A_get_accessor_must_return_a_value_or_consist_of_a_single_throw_statement: { code: 2378, category: ts.DiagnosticCategory.Error, key: "A 'get' accessor must return a value or consist of a single 'throw' statement." }, - Getter_and_setter_accessors_do_not_agree_in_visibility: { code: 2379, category: ts.DiagnosticCategory.Error, key: "Getter and setter accessors do not agree in visibility." }, - get_and_set_accessor_must_have_the_same_type: { code: 2380, category: ts.DiagnosticCategory.Error, key: "'get' and 'set' accessor must have the same type." }, - A_signature_with_an_implementation_cannot_use_a_string_literal_type: { code: 2381, category: ts.DiagnosticCategory.Error, key: "A signature with an implementation cannot use a string literal type." }, - Specialized_overload_signature_is_not_assignable_to_any_non_specialized_signature: { code: 2382, category: ts.DiagnosticCategory.Error, key: "Specialized overload signature is not assignable to any non-specialized signature." }, - Overload_signatures_must_all_be_exported_or_not_exported: { code: 2383, category: ts.DiagnosticCategory.Error, key: "Overload signatures must all be exported or not exported." }, - Overload_signatures_must_all_be_ambient_or_non_ambient: { code: 2384, category: ts.DiagnosticCategory.Error, key: "Overload signatures must all be ambient or non-ambient." }, - Overload_signatures_must_all_be_public_private_or_protected: { code: 2385, category: ts.DiagnosticCategory.Error, key: "Overload signatures must all be public, private or protected." }, - Overload_signatures_must_all_be_optional_or_required: { code: 2386, category: ts.DiagnosticCategory.Error, key: "Overload signatures must all be optional or required." }, - Function_overload_must_be_static: { code: 2387, category: ts.DiagnosticCategory.Error, key: "Function overload must be static." }, - Function_overload_must_not_be_static: { code: 2388, category: ts.DiagnosticCategory.Error, key: "Function overload must not be static." }, - Function_implementation_name_must_be_0: { code: 2389, category: ts.DiagnosticCategory.Error, key: "Function implementation name must be '{0}'." }, - Constructor_implementation_is_missing: { code: 2390, category: ts.DiagnosticCategory.Error, key: "Constructor implementation is missing." }, - Function_implementation_is_missing_or_not_immediately_following_the_declaration: { code: 2391, category: ts.DiagnosticCategory.Error, key: "Function implementation is missing or not immediately following the declaration." }, - Multiple_constructor_implementations_are_not_allowed: { code: 2392, category: ts.DiagnosticCategory.Error, key: "Multiple constructor implementations are not allowed." }, - Duplicate_function_implementation: { code: 2393, category: ts.DiagnosticCategory.Error, key: "Duplicate function implementation." }, - Overload_signature_is_not_compatible_with_function_implementation: { code: 2394, category: ts.DiagnosticCategory.Error, key: "Overload signature is not compatible with function implementation." }, - Individual_declarations_in_merged_declaration_0_must_be_all_exported_or_all_local: { code: 2395, category: ts.DiagnosticCategory.Error, key: "Individual declarations in merged declaration {0} must be all exported or all local." }, - Duplicate_identifier_arguments_Compiler_uses_arguments_to_initialize_rest_parameters: { code: 2396, category: ts.DiagnosticCategory.Error, key: "Duplicate identifier 'arguments'. Compiler uses 'arguments' to initialize rest parameters." }, - Duplicate_identifier_this_Compiler_uses_variable_declaration_this_to_capture_this_reference: { code: 2399, category: ts.DiagnosticCategory.Error, key: "Duplicate identifier '_this'. Compiler uses variable declaration '_this' to capture 'this' reference." }, - Expression_resolves_to_variable_declaration_this_that_compiler_uses_to_capture_this_reference: { code: 2400, category: ts.DiagnosticCategory.Error, key: "Expression resolves to variable declaration '_this' that compiler uses to capture 'this' reference." }, - Duplicate_identifier_super_Compiler_uses_super_to_capture_base_class_reference: { code: 2401, category: ts.DiagnosticCategory.Error, key: "Duplicate identifier '_super'. Compiler uses '_super' to capture base class reference." }, - Expression_resolves_to_super_that_compiler_uses_to_capture_base_class_reference: { code: 2402, category: ts.DiagnosticCategory.Error, key: "Expression resolves to '_super' that compiler uses to capture base class reference." }, - Subsequent_variable_declarations_must_have_the_same_type_Variable_0_must_be_of_type_1_but_here_has_type_2: { code: 2403, category: ts.DiagnosticCategory.Error, key: "Subsequent variable declarations must have the same type. Variable '{0}' must be of type '{1}', but here has type '{2}'." }, - The_left_hand_side_of_a_for_in_statement_cannot_use_a_type_annotation: { code: 2404, category: ts.DiagnosticCategory.Error, key: "The left-hand side of a 'for...in' statement cannot use a type annotation." }, - The_left_hand_side_of_a_for_in_statement_must_be_of_type_string_or_any: { code: 2405, category: ts.DiagnosticCategory.Error, key: "The left-hand side of a 'for...in' statement must be of type 'string' or 'any'." }, - Invalid_left_hand_side_in_for_in_statement: { code: 2406, category: ts.DiagnosticCategory.Error, key: "Invalid left-hand side in 'for...in' statement." }, - The_right_hand_side_of_a_for_in_statement_must_be_of_type_any_an_object_type_or_a_type_parameter: { code: 2407, category: ts.DiagnosticCategory.Error, key: "The right-hand side of a 'for...in' statement must be of type 'any', an object type or a type parameter." }, - Setters_cannot_return_a_value: { code: 2408, category: ts.DiagnosticCategory.Error, key: "Setters cannot return a value." }, - Return_type_of_constructor_signature_must_be_assignable_to_the_instance_type_of_the_class: { code: 2409, category: ts.DiagnosticCategory.Error, key: "Return type of constructor signature must be assignable to the instance type of the class" }, - All_symbols_within_a_with_block_will_be_resolved_to_any: { code: 2410, category: ts.DiagnosticCategory.Error, key: "All symbols within a 'with' block will be resolved to 'any'." }, - Property_0_of_type_1_is_not_assignable_to_string_index_type_2: { code: 2411, category: ts.DiagnosticCategory.Error, key: "Property '{0}' of type '{1}' is not assignable to string index type '{2}'." }, - Property_0_of_type_1_is_not_assignable_to_numeric_index_type_2: { code: 2412, category: ts.DiagnosticCategory.Error, key: "Property '{0}' of type '{1}' is not assignable to numeric index type '{2}'." }, - Numeric_index_type_0_is_not_assignable_to_string_index_type_1: { code: 2413, category: ts.DiagnosticCategory.Error, key: "Numeric index type '{0}' is not assignable to string index type '{1}'." }, - Class_name_cannot_be_0: { code: 2414, category: ts.DiagnosticCategory.Error, key: "Class name cannot be '{0}'" }, - Class_0_incorrectly_extends_base_class_1: { code: 2415, category: ts.DiagnosticCategory.Error, key: "Class '{0}' incorrectly extends base class '{1}'." }, - Class_static_side_0_incorrectly_extends_base_class_static_side_1: { code: 2417, category: ts.DiagnosticCategory.Error, key: "Class static side '{0}' incorrectly extends base class static side '{1}'." }, - Type_name_0_in_extends_clause_does_not_reference_constructor_function_for_0: { code: 2419, category: ts.DiagnosticCategory.Error, key: "Type name '{0}' in extends clause does not reference constructor function for '{0}'." }, - Class_0_incorrectly_implements_interface_1: { code: 2420, category: ts.DiagnosticCategory.Error, key: "Class '{0}' incorrectly implements interface '{1}'." }, - A_class_may_only_implement_another_class_or_interface: { code: 2422, category: ts.DiagnosticCategory.Error, key: "A class may only implement another class or interface." }, - Class_0_defines_instance_member_function_1_but_extended_class_2_defines_it_as_instance_member_accessor: { code: 2423, category: ts.DiagnosticCategory.Error, key: "Class '{0}' defines instance member function '{1}', but extended class '{2}' defines it as instance member accessor." }, - Class_0_defines_instance_member_function_1_but_extended_class_2_defines_it_as_instance_member_property: { code: 2424, category: ts.DiagnosticCategory.Error, key: "Class '{0}' defines instance member function '{1}', but extended class '{2}' defines it as instance member property." }, - Class_0_defines_instance_member_property_1_but_extended_class_2_defines_it_as_instance_member_function: { code: 2425, category: ts.DiagnosticCategory.Error, key: "Class '{0}' defines instance member property '{1}', but extended class '{2}' defines it as instance member function." }, - Class_0_defines_instance_member_accessor_1_but_extended_class_2_defines_it_as_instance_member_function: { code: 2426, category: ts.DiagnosticCategory.Error, key: "Class '{0}' defines instance member accessor '{1}', but extended class '{2}' defines it as instance member function." }, - Interface_name_cannot_be_0: { code: 2427, category: ts.DiagnosticCategory.Error, key: "Interface name cannot be '{0}'" }, - All_declarations_of_an_interface_must_have_identical_type_parameters: { code: 2428, category: ts.DiagnosticCategory.Error, key: "All declarations of an interface must have identical type parameters." }, - Interface_0_incorrectly_extends_interface_1: { code: 2430, category: ts.DiagnosticCategory.Error, key: "Interface '{0}' incorrectly extends interface '{1}'." }, - Enum_name_cannot_be_0: { code: 2431, category: ts.DiagnosticCategory.Error, key: "Enum name cannot be '{0}'" }, - In_an_enum_with_multiple_declarations_only_one_declaration_can_omit_an_initializer_for_its_first_enum_element: { code: 2432, category: ts.DiagnosticCategory.Error, key: "In an enum with multiple declarations, only one declaration can omit an initializer for its first enum element." }, - A_module_declaration_cannot_be_in_a_different_file_from_a_class_or_function_with_which_it_is_merged: { code: 2433, category: ts.DiagnosticCategory.Error, key: "A module declaration cannot be in a different file from a class or function with which it is merged" }, - A_module_declaration_cannot_be_located_prior_to_a_class_or_function_with_which_it_is_merged: { code: 2434, category: ts.DiagnosticCategory.Error, key: "A module declaration cannot be located prior to a class or function with which it is merged" }, - Ambient_external_modules_cannot_be_nested_in_other_modules: { code: 2435, category: ts.DiagnosticCategory.Error, key: "Ambient external modules cannot be nested in other modules." }, - Ambient_external_module_declaration_cannot_specify_relative_module_name: { code: 2436, category: ts.DiagnosticCategory.Error, key: "Ambient external module declaration cannot specify relative module name." }, - Module_0_is_hidden_by_a_local_declaration_with_the_same_name: { code: 2437, category: ts.DiagnosticCategory.Error, key: "Module '{0}' is hidden by a local declaration with the same name" }, - Import_name_cannot_be_0: { code: 2438, category: ts.DiagnosticCategory.Error, key: "Import name cannot be '{0}'" }, - Import_or_export_declaration_in_an_ambient_external_module_declaration_cannot_reference_external_module_through_relative_external_module_name: { code: 2439, category: ts.DiagnosticCategory.Error, key: "Import or export declaration in an ambient external module declaration cannot reference external module through relative external module name." }, - Import_declaration_conflicts_with_local_declaration_of_0: { code: 2440, category: ts.DiagnosticCategory.Error, key: "Import declaration conflicts with local declaration of '{0}'" }, - Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_an_external_module: { code: 2441, category: ts.DiagnosticCategory.Error, key: "Duplicate identifier '{0}'. Compiler reserves name '{1}' in top level scope of an external module." }, - Types_have_separate_declarations_of_a_private_property_0: { code: 2442, category: ts.DiagnosticCategory.Error, key: "Types have separate declarations of a private property '{0}'." }, - Property_0_is_protected_but_type_1_is_not_a_class_derived_from_2: { code: 2443, category: ts.DiagnosticCategory.Error, key: "Property '{0}' is protected but type '{1}' is not a class derived from '{2}'." }, - Property_0_is_protected_in_type_1_but_public_in_type_2: { code: 2444, category: ts.DiagnosticCategory.Error, key: "Property '{0}' is protected in type '{1}' but public in type '{2}'." }, - Property_0_is_protected_and_only_accessible_within_class_1_and_its_subclasses: { code: 2445, category: ts.DiagnosticCategory.Error, key: "Property '{0}' is protected and only accessible within class '{1}' and its subclasses." }, - Property_0_is_protected_and_only_accessible_through_an_instance_of_class_1: { code: 2446, category: ts.DiagnosticCategory.Error, key: "Property '{0}' is protected and only accessible through an instance of class '{1}'." }, - The_0_operator_is_not_allowed_for_boolean_types_Consider_using_1_instead: { code: 2447, category: ts.DiagnosticCategory.Error, key: "The '{0}' operator is not allowed for boolean types. Consider using '{1}' instead." }, - Block_scoped_variable_0_used_before_its_declaration: { code: 2448, category: ts.DiagnosticCategory.Error, key: "Block-scoped variable '{0}' used before its declaration." }, - The_operand_of_an_increment_or_decrement_operator_cannot_be_a_constant: { code: 2449, category: ts.DiagnosticCategory.Error, key: "The operand of an increment or decrement operator cannot be a constant." }, - Left_hand_side_of_assignment_expression_cannot_be_a_constant: { code: 2450, category: ts.DiagnosticCategory.Error, key: "Left-hand side of assignment expression cannot be a constant." }, - Cannot_redeclare_block_scoped_variable_0: { code: 2451, category: ts.DiagnosticCategory.Error, key: "Cannot redeclare block-scoped variable '{0}'." }, - An_enum_member_cannot_have_a_numeric_name: { code: 2452, category: ts.DiagnosticCategory.Error, key: "An enum member cannot have a numeric name." }, - The_type_argument_for_type_parameter_0_cannot_be_inferred_from_the_usage_Consider_specifying_the_type_arguments_explicitly: { code: 2453, category: ts.DiagnosticCategory.Error, key: "The type argument for type parameter '{0}' cannot be inferred from the usage. Consider specifying the type arguments explicitly." }, - Type_argument_candidate_1_is_not_a_valid_type_argument_because_it_is_not_a_supertype_of_candidate_0: { code: 2455, category: ts.DiagnosticCategory.Error, key: "Type argument candidate '{1}' is not a valid type argument because it is not a supertype of candidate '{0}'." }, - Type_alias_0_circularly_references_itself: { code: 2456, category: ts.DiagnosticCategory.Error, key: "Type alias '{0}' circularly references itself." }, - Type_alias_name_cannot_be_0: { code: 2457, category: ts.DiagnosticCategory.Error, key: "Type alias name cannot be '{0}'" }, - An_AMD_module_cannot_have_multiple_name_assignments: { code: 2458, category: ts.DiagnosticCategory.Error, key: "An AMD module cannot have multiple name assignments." }, - Type_0_has_no_property_1_and_no_string_index_signature: { code: 2459, category: ts.DiagnosticCategory.Error, key: "Type '{0}' has no property '{1}' and no string index signature." }, - Type_0_has_no_property_1: { code: 2460, category: ts.DiagnosticCategory.Error, key: "Type '{0}' has no property '{1}'." }, - Type_0_is_not_an_array_type: { code: 2461, category: ts.DiagnosticCategory.Error, key: "Type '{0}' is not an array type." }, - A_rest_element_must_be_last_in_an_array_destructuring_pattern: { code: 2462, category: ts.DiagnosticCategory.Error, key: "A rest element must be last in an array destructuring pattern" }, - A_binding_pattern_parameter_cannot_be_optional_in_an_implementation_signature: { code: 2463, category: ts.DiagnosticCategory.Error, key: "A binding pattern parameter cannot be optional in an implementation signature." }, - A_computed_property_name_must_be_of_type_string_number_symbol_or_any: { code: 2464, category: ts.DiagnosticCategory.Error, key: "A computed property name must be of type 'string', 'number', 'symbol', or 'any'." }, - this_cannot_be_referenced_in_a_computed_property_name: { code: 2465, category: ts.DiagnosticCategory.Error, key: "'this' cannot be referenced in a computed property name." }, - super_cannot_be_referenced_in_a_computed_property_name: { code: 2466, category: ts.DiagnosticCategory.Error, key: "'super' cannot be referenced in a computed property name." }, - A_computed_property_name_cannot_reference_a_type_parameter_from_its_containing_type: { code: 2467, category: ts.DiagnosticCategory.Error, key: "A computed property name cannot reference a type parameter from its containing type." }, - Cannot_find_global_value_0: { code: 2468, category: ts.DiagnosticCategory.Error, key: "Cannot find global value '{0}'." }, - The_0_operator_cannot_be_applied_to_type_symbol: { code: 2469, category: ts.DiagnosticCategory.Error, key: "The '{0}' operator cannot be applied to type 'symbol'." }, - Symbol_reference_does_not_refer_to_the_global_Symbol_constructor_object: { code: 2470, category: ts.DiagnosticCategory.Error, key: "'Symbol' reference does not refer to the global Symbol constructor object." }, - A_computed_property_name_of_the_form_0_must_be_of_type_symbol: { code: 2471, category: ts.DiagnosticCategory.Error, key: "A computed property name of the form '{0}' must be of type 'symbol'." }, - Spread_operator_in_new_expressions_is_only_available_when_targeting_ECMAScript_6_and_higher: { code: 2472, category: ts.DiagnosticCategory.Error, key: "Spread operator in 'new' expressions is only available when targeting ECMAScript 6 and higher." }, - Enum_declarations_must_all_be_const_or_non_const: { code: 2473, category: ts.DiagnosticCategory.Error, key: "Enum declarations must all be const or non-const." }, - In_const_enum_declarations_member_initializer_must_be_constant_expression: { code: 2474, category: ts.DiagnosticCategory.Error, key: "In 'const' enum declarations member initializer must be constant expression." }, - const_enums_can_only_be_used_in_property_or_index_access_expressions_or_the_right_hand_side_of_an_import_declaration_or_export_assignment: { code: 2475, category: ts.DiagnosticCategory.Error, key: "'const' enums can only be used in property or index access expressions or the right hand side of an import declaration or export assignment." }, - A_const_enum_member_can_only_be_accessed_using_a_string_literal: { code: 2476, category: ts.DiagnosticCategory.Error, key: "A const enum member can only be accessed using a string literal." }, - const_enum_member_initializer_was_evaluated_to_a_non_finite_value: { code: 2477, category: ts.DiagnosticCategory.Error, key: "'const' enum member initializer was evaluated to a non-finite value." }, - const_enum_member_initializer_was_evaluated_to_disallowed_value_NaN: { code: 2478, category: ts.DiagnosticCategory.Error, key: "'const' enum member initializer was evaluated to disallowed value 'NaN'." }, - Property_0_does_not_exist_on_const_enum_1: { code: 2479, category: ts.DiagnosticCategory.Error, key: "Property '{0}' does not exist on 'const' enum '{1}'." }, - let_is_not_allowed_to_be_used_as_a_name_in_let_or_const_declarations: { code: 2480, category: ts.DiagnosticCategory.Error, key: "'let' is not allowed to be used as a name in 'let' or 'const' declarations." }, - Cannot_initialize_outer_scoped_variable_0_in_the_same_scope_as_block_scoped_declaration_1: { code: 2481, category: ts.DiagnosticCategory.Error, key: "Cannot initialize outer scoped variable '{0}' in the same scope as block scoped declaration '{1}'." }, - The_left_hand_side_of_a_for_of_statement_cannot_use_a_type_annotation: { code: 2483, category: ts.DiagnosticCategory.Error, key: "The left-hand side of a 'for...of' statement cannot use a type annotation." }, - Export_declaration_conflicts_with_exported_declaration_of_0: { code: 2484, category: ts.DiagnosticCategory.Error, key: "Export declaration conflicts with exported declaration of '{0}'" }, - The_left_hand_side_of_a_for_of_statement_cannot_be_a_previously_defined_constant: { code: 2485, category: ts.DiagnosticCategory.Error, key: "The left-hand side of a 'for...of' statement cannot be a previously defined constant." }, - The_left_hand_side_of_a_for_in_statement_cannot_be_a_previously_defined_constant: { code: 2486, category: ts.DiagnosticCategory.Error, key: "The left-hand side of a 'for...in' statement cannot be a previously defined constant." }, - Invalid_left_hand_side_in_for_of_statement: { code: 2487, category: ts.DiagnosticCategory.Error, key: "Invalid left-hand side in 'for...of' statement." }, - The_right_hand_side_of_a_for_of_statement_must_have_a_Symbol_iterator_method_that_returns_an_iterator: { code: 2488, category: ts.DiagnosticCategory.Error, key: "The right-hand side of a 'for...of' statement must have a '[Symbol.iterator]()' method that returns an iterator." }, - The_iterator_returned_by_the_right_hand_side_of_a_for_of_statement_must_have_a_next_method: { code: 2489, category: ts.DiagnosticCategory.Error, key: "The iterator returned by the right-hand side of a 'for...of' statement must have a 'next()' method." }, - The_type_returned_by_the_next_method_of_an_iterator_must_have_a_value_property: { code: 2490, category: ts.DiagnosticCategory.Error, key: "The type returned by the 'next()' method of an iterator must have a 'value' property." }, - The_left_hand_side_of_a_for_in_statement_cannot_be_a_destructuring_pattern: { code: 2491, category: ts.DiagnosticCategory.Error, key: "The left-hand side of a 'for...in' statement cannot be a destructuring pattern." }, - Cannot_redeclare_identifier_0_in_catch_clause: { code: 2492, category: ts.DiagnosticCategory.Error, key: "Cannot redeclare identifier '{0}' in catch clause" }, - Tuple_type_0_with_length_1_cannot_be_assigned_to_tuple_with_length_2: { code: 2493, category: ts.DiagnosticCategory.Error, key: "Tuple type '{0}' with length '{1}' cannot be assigned to tuple with length '{2}'." }, - Using_a_string_in_a_for_of_statement_is_only_supported_in_ECMAScript_5_and_higher: { code: 2494, category: ts.DiagnosticCategory.Error, key: "Using a string in a 'for...of' statement is only supported in ECMAScript 5 and higher." }, - Type_0_is_not_an_array_type_or_a_string_type: { code: 2495, category: ts.DiagnosticCategory.Error, key: "Type '{0}' is not an array type or a string type." }, - The_arguments_object_cannot_be_referenced_in_an_arrow_function_Consider_using_a_standard_function_expression: { code: 2496, category: ts.DiagnosticCategory.Error, key: "The 'arguments' object cannot be referenced in an arrow function. Consider using a standard function expression." }, - External_module_0_resolves_to_a_non_module_entity_and_cannot_be_imported_using_this_construct: { code: 2497, category: ts.DiagnosticCategory.Error, key: "External module '{0}' resolves to a non-module entity and cannot be imported using this construct." }, - External_module_0_uses_export_and_cannot_be_used_with_export_Asterisk: { code: 2498, category: ts.DiagnosticCategory.Error, key: "External module '{0}' uses 'export =' and cannot be used with 'export *'." }, - Import_declaration_0_is_using_private_name_1: { code: 4000, category: ts.DiagnosticCategory.Error, key: "Import declaration '{0}' is using private name '{1}'." }, - Type_parameter_0_of_exported_class_has_or_is_using_private_name_1: { code: 4002, category: ts.DiagnosticCategory.Error, key: "Type parameter '{0}' of exported class has or is using private name '{1}'." }, - Type_parameter_0_of_exported_interface_has_or_is_using_private_name_1: { code: 4004, category: ts.DiagnosticCategory.Error, key: "Type parameter '{0}' of exported interface has or is using private name '{1}'." }, - Type_parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1: { code: 4006, category: ts.DiagnosticCategory.Error, key: "Type parameter '{0}' of constructor signature from exported interface has or is using private name '{1}'." }, - Type_parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1: { code: 4008, category: ts.DiagnosticCategory.Error, key: "Type parameter '{0}' of call signature from exported interface has or is using private name '{1}'." }, - Type_parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1: { code: 4010, category: ts.DiagnosticCategory.Error, key: "Type parameter '{0}' of public static method from exported class has or is using private name '{1}'." }, - Type_parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1: { code: 4012, category: ts.DiagnosticCategory.Error, key: "Type parameter '{0}' of public method from exported class has or is using private name '{1}'." }, - Type_parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1: { code: 4014, category: ts.DiagnosticCategory.Error, key: "Type parameter '{0}' of method from exported interface has or is using private name '{1}'." }, - Type_parameter_0_of_exported_function_has_or_is_using_private_name_1: { code: 4016, category: ts.DiagnosticCategory.Error, key: "Type parameter '{0}' of exported function has or is using private name '{1}'." }, - Implements_clause_of_exported_class_0_has_or_is_using_private_name_1: { code: 4019, category: ts.DiagnosticCategory.Error, key: "Implements clause of exported class '{0}' has or is using private name '{1}'." }, - Extends_clause_of_exported_class_0_has_or_is_using_private_name_1: { code: 4020, category: ts.DiagnosticCategory.Error, key: "Extends clause of exported class '{0}' has or is using private name '{1}'." }, - Extends_clause_of_exported_interface_0_has_or_is_using_private_name_1: { code: 4022, category: ts.DiagnosticCategory.Error, key: "Extends clause of exported interface '{0}' has or is using private name '{1}'." }, - Exported_variable_0_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: { code: 4023, category: ts.DiagnosticCategory.Error, key: "Exported variable '{0}' has or is using name '{1}' from external module {2} but cannot be named." }, - Exported_variable_0_has_or_is_using_name_1_from_private_module_2: { code: 4024, category: ts.DiagnosticCategory.Error, key: "Exported variable '{0}' has or is using name '{1}' from private module '{2}'." }, - Exported_variable_0_has_or_is_using_private_name_1: { code: 4025, category: ts.DiagnosticCategory.Error, key: "Exported variable '{0}' has or is using private name '{1}'." }, - Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: { code: 4026, category: ts.DiagnosticCategory.Error, key: "Public static property '{0}' of exported class has or is using name '{1}' from external module {2} but cannot be named." }, - Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2: { code: 4027, category: ts.DiagnosticCategory.Error, key: "Public static property '{0}' of exported class has or is using name '{1}' from private module '{2}'." }, - Public_static_property_0_of_exported_class_has_or_is_using_private_name_1: { code: 4028, category: ts.DiagnosticCategory.Error, key: "Public static property '{0}' of exported class has or is using private name '{1}'." }, - Public_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: { code: 4029, category: ts.DiagnosticCategory.Error, key: "Public property '{0}' of exported class has or is using name '{1}' from external module {2} but cannot be named." }, - Public_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2: { code: 4030, category: ts.DiagnosticCategory.Error, key: "Public property '{0}' of exported class has or is using name '{1}' from private module '{2}'." }, - Public_property_0_of_exported_class_has_or_is_using_private_name_1: { code: 4031, category: ts.DiagnosticCategory.Error, key: "Public property '{0}' of exported class has or is using private name '{1}'." }, - Property_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2: { code: 4032, category: ts.DiagnosticCategory.Error, key: "Property '{0}' of exported interface has or is using name '{1}' from private module '{2}'." }, - Property_0_of_exported_interface_has_or_is_using_private_name_1: { code: 4033, category: ts.DiagnosticCategory.Error, key: "Property '{0}' of exported interface has or is using private name '{1}'." }, - Parameter_0_of_public_static_property_setter_from_exported_class_has_or_is_using_name_1_from_private_module_2: { code: 4034, category: ts.DiagnosticCategory.Error, key: "Parameter '{0}' of public static property setter from exported class has or is using name '{1}' from private module '{2}'." }, - Parameter_0_of_public_static_property_setter_from_exported_class_has_or_is_using_private_name_1: { code: 4035, category: ts.DiagnosticCategory.Error, key: "Parameter '{0}' of public static property setter from exported class has or is using private name '{1}'." }, - Parameter_0_of_public_property_setter_from_exported_class_has_or_is_using_name_1_from_private_module_2: { code: 4036, category: ts.DiagnosticCategory.Error, key: "Parameter '{0}' of public property setter from exported class has or is using name '{1}' from private module '{2}'." }, - Parameter_0_of_public_property_setter_from_exported_class_has_or_is_using_private_name_1: { code: 4037, category: ts.DiagnosticCategory.Error, key: "Parameter '{0}' of public property setter from exported class has or is using private name '{1}'." }, - Return_type_of_public_static_property_getter_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named: { code: 4038, category: ts.DiagnosticCategory.Error, key: "Return type of public static property getter from exported class has or is using name '{0}' from external module {1} but cannot be named." }, - Return_type_of_public_static_property_getter_from_exported_class_has_or_is_using_name_0_from_private_module_1: { code: 4039, category: ts.DiagnosticCategory.Error, key: "Return type of public static property getter from exported class has or is using name '{0}' from private module '{1}'." }, - Return_type_of_public_static_property_getter_from_exported_class_has_or_is_using_private_name_0: { code: 4040, category: ts.DiagnosticCategory.Error, key: "Return type of public static property getter from exported class has or is using private name '{0}'." }, - Return_type_of_public_property_getter_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named: { code: 4041, category: ts.DiagnosticCategory.Error, key: "Return type of public property getter from exported class has or is using name '{0}' from external module {1} but cannot be named." }, - Return_type_of_public_property_getter_from_exported_class_has_or_is_using_name_0_from_private_module_1: { code: 4042, category: ts.DiagnosticCategory.Error, key: "Return type of public property getter from exported class has or is using name '{0}' from private module '{1}'." }, - Return_type_of_public_property_getter_from_exported_class_has_or_is_using_private_name_0: { code: 4043, category: ts.DiagnosticCategory.Error, key: "Return type of public property getter from exported class has or is using private name '{0}'." }, - Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1: { code: 4044, category: ts.DiagnosticCategory.Error, key: "Return type of constructor signature from exported interface has or is using name '{0}' from private module '{1}'." }, - Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_0: { code: 4045, category: ts.DiagnosticCategory.Error, key: "Return type of constructor signature from exported interface has or is using private name '{0}'." }, - Return_type_of_call_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1: { code: 4046, category: ts.DiagnosticCategory.Error, key: "Return type of call signature from exported interface has or is using name '{0}' from private module '{1}'." }, - Return_type_of_call_signature_from_exported_interface_has_or_is_using_private_name_0: { code: 4047, category: ts.DiagnosticCategory.Error, key: "Return type of call signature from exported interface has or is using private name '{0}'." }, - Return_type_of_index_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1: { code: 4048, category: ts.DiagnosticCategory.Error, key: "Return type of index signature from exported interface has or is using name '{0}' from private module '{1}'." }, - Return_type_of_index_signature_from_exported_interface_has_or_is_using_private_name_0: { code: 4049, category: ts.DiagnosticCategory.Error, key: "Return type of index signature from exported interface has or is using private name '{0}'." }, - Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named: { code: 4050, category: ts.DiagnosticCategory.Error, key: "Return type of public static method from exported class has or is using name '{0}' from external module {1} but cannot be named." }, - Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_private_module_1: { code: 4051, category: ts.DiagnosticCategory.Error, key: "Return type of public static method from exported class has or is using name '{0}' from private module '{1}'." }, - Return_type_of_public_static_method_from_exported_class_has_or_is_using_private_name_0: { code: 4052, category: ts.DiagnosticCategory.Error, key: "Return type of public static method from exported class has or is using private name '{0}'." }, - Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named: { code: 4053, category: ts.DiagnosticCategory.Error, key: "Return type of public method from exported class has or is using name '{0}' from external module {1} but cannot be named." }, - Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_private_module_1: { code: 4054, category: ts.DiagnosticCategory.Error, key: "Return type of public method from exported class has or is using name '{0}' from private module '{1}'." }, - Return_type_of_public_method_from_exported_class_has_or_is_using_private_name_0: { code: 4055, category: ts.DiagnosticCategory.Error, key: "Return type of public method from exported class has or is using private name '{0}'." }, - Return_type_of_method_from_exported_interface_has_or_is_using_name_0_from_private_module_1: { code: 4056, category: ts.DiagnosticCategory.Error, key: "Return type of method from exported interface has or is using name '{0}' from private module '{1}'." }, - Return_type_of_method_from_exported_interface_has_or_is_using_private_name_0: { code: 4057, category: ts.DiagnosticCategory.Error, key: "Return type of method from exported interface has or is using private name '{0}'." }, - Return_type_of_exported_function_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named: { code: 4058, category: ts.DiagnosticCategory.Error, key: "Return type of exported function has or is using name '{0}' from external module {1} but cannot be named." }, - Return_type_of_exported_function_has_or_is_using_name_0_from_private_module_1: { code: 4059, category: ts.DiagnosticCategory.Error, key: "Return type of exported function has or is using name '{0}' from private module '{1}'." }, - Return_type_of_exported_function_has_or_is_using_private_name_0: { code: 4060, category: ts.DiagnosticCategory.Error, key: "Return type of exported function has or is using private name '{0}'." }, - Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: { code: 4061, category: ts.DiagnosticCategory.Error, key: "Parameter '{0}' of constructor from exported class has or is using name '{1}' from external module {2} but cannot be named." }, - Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_private_module_2: { code: 4062, category: ts.DiagnosticCategory.Error, key: "Parameter '{0}' of constructor from exported class has or is using name '{1}' from private module '{2}'." }, - Parameter_0_of_constructor_from_exported_class_has_or_is_using_private_name_1: { code: 4063, category: ts.DiagnosticCategory.Error, key: "Parameter '{0}' of constructor from exported class has or is using private name '{1}'." }, - Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2: { code: 4064, category: ts.DiagnosticCategory.Error, key: "Parameter '{0}' of constructor signature from exported interface has or is using name '{1}' from private module '{2}'." }, - Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1: { code: 4065, category: ts.DiagnosticCategory.Error, key: "Parameter '{0}' of constructor signature from exported interface has or is using private name '{1}'." }, - Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2: { code: 4066, category: ts.DiagnosticCategory.Error, key: "Parameter '{0}' of call signature from exported interface has or is using name '{1}' from private module '{2}'." }, - Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1: { code: 4067, category: ts.DiagnosticCategory.Error, key: "Parameter '{0}' of call signature from exported interface has or is using private name '{1}'." }, - Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: { code: 4068, category: ts.DiagnosticCategory.Error, key: "Parameter '{0}' of public static method from exported class has or is using name '{1}' from external module {2} but cannot be named." }, - Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_private_module_2: { code: 4069, category: ts.DiagnosticCategory.Error, key: "Parameter '{0}' of public static method from exported class has or is using name '{1}' from private module '{2}'." }, - Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1: { code: 4070, category: ts.DiagnosticCategory.Error, key: "Parameter '{0}' of public static method from exported class has or is using private name '{1}'." }, - Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: { code: 4071, category: ts.DiagnosticCategory.Error, key: "Parameter '{0}' of public method from exported class has or is using name '{1}' from external module {2} but cannot be named." }, - Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_private_module_2: { code: 4072, category: ts.DiagnosticCategory.Error, key: "Parameter '{0}' of public method from exported class has or is using name '{1}' from private module '{2}'." }, - Parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1: { code: 4073, category: ts.DiagnosticCategory.Error, key: "Parameter '{0}' of public method from exported class has or is using private name '{1}'." }, - Parameter_0_of_method_from_exported_interface_has_or_is_using_name_1_from_private_module_2: { code: 4074, category: ts.DiagnosticCategory.Error, key: "Parameter '{0}' of method from exported interface has or is using name '{1}' from private module '{2}'." }, - Parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1: { code: 4075, category: ts.DiagnosticCategory.Error, key: "Parameter '{0}' of method from exported interface has or is using private name '{1}'." }, - Parameter_0_of_exported_function_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: { code: 4076, category: ts.DiagnosticCategory.Error, key: "Parameter '{0}' of exported function has or is using name '{1}' from external module {2} but cannot be named." }, - Parameter_0_of_exported_function_has_or_is_using_name_1_from_private_module_2: { code: 4077, category: ts.DiagnosticCategory.Error, key: "Parameter '{0}' of exported function has or is using name '{1}' from private module '{2}'." }, - Parameter_0_of_exported_function_has_or_is_using_private_name_1: { code: 4078, category: ts.DiagnosticCategory.Error, key: "Parameter '{0}' of exported function has or is using private name '{1}'." }, - Exported_type_alias_0_has_or_is_using_private_name_1: { code: 4081, category: ts.DiagnosticCategory.Error, key: "Exported type alias '{0}' has or is using private name '{1}'." }, - Default_export_of_the_module_has_or_is_using_private_name_0: { code: 4082, category: ts.DiagnosticCategory.Error, key: "Default export of the module has or is using private name '{0}'." }, - Loop_contains_block_scoped_variable_0_referenced_by_a_function_in_the_loop_This_is_only_supported_in_ECMAScript_6_or_higher: { code: 4091, category: ts.DiagnosticCategory.Error, key: "Loop contains block-scoped variable '{0}' referenced by a function in the loop. This is only supported in ECMAScript 6 or higher." }, - The_current_host_does_not_support_the_0_option: { code: 5001, category: ts.DiagnosticCategory.Error, key: "The current host does not support the '{0}' option." }, - Cannot_find_the_common_subdirectory_path_for_the_input_files: { code: 5009, category: ts.DiagnosticCategory.Error, key: "Cannot find the common subdirectory path for the input files." }, - Cannot_read_file_0_Colon_1: { code: 5012, category: ts.DiagnosticCategory.Error, key: "Cannot read file '{0}': {1}" }, - Unsupported_file_encoding: { code: 5013, category: ts.DiagnosticCategory.Error, key: "Unsupported file encoding." }, - Unknown_compiler_option_0: { code: 5023, category: ts.DiagnosticCategory.Error, key: "Unknown compiler option '{0}'." }, - Compiler_option_0_requires_a_value_of_type_1: { code: 5024, category: ts.DiagnosticCategory.Error, key: "Compiler option '{0}' requires a value of type {1}." }, - Could_not_write_file_0_Colon_1: { code: 5033, category: ts.DiagnosticCategory.Error, key: "Could not write file '{0}': {1}" }, - Option_mapRoot_cannot_be_specified_without_specifying_sourcemap_option: { code: 5038, category: ts.DiagnosticCategory.Error, key: "Option 'mapRoot' cannot be specified without specifying 'sourcemap' option." }, - Option_sourceRoot_cannot_be_specified_without_specifying_sourcemap_option: { code: 5039, category: ts.DiagnosticCategory.Error, key: "Option 'sourceRoot' cannot be specified without specifying 'sourcemap' option." }, - Option_noEmit_cannot_be_specified_with_option_out_or_outDir: { code: 5040, category: ts.DiagnosticCategory.Error, key: "Option 'noEmit' cannot be specified with option 'out' or 'outDir'." }, - Option_noEmit_cannot_be_specified_with_option_declaration: { code: 5041, category: ts.DiagnosticCategory.Error, key: "Option 'noEmit' cannot be specified with option 'declaration'." }, - Option_project_cannot_be_mixed_with_source_files_on_a_command_line: { code: 5042, category: ts.DiagnosticCategory.Error, key: "Option 'project' cannot be mixed with source files on a command line." }, - Concatenate_and_emit_output_to_single_file: { code: 6001, category: ts.DiagnosticCategory.Message, key: "Concatenate and emit output to single file." }, - Generates_corresponding_d_ts_file: { code: 6002, category: ts.DiagnosticCategory.Message, key: "Generates corresponding '.d.ts' file." }, - Specifies_the_location_where_debugger_should_locate_map_files_instead_of_generated_locations: { code: 6003, category: ts.DiagnosticCategory.Message, key: "Specifies the location where debugger should locate map files instead of generated locations." }, - Specifies_the_location_where_debugger_should_locate_TypeScript_files_instead_of_source_locations: { code: 6004, category: ts.DiagnosticCategory.Message, key: "Specifies the location where debugger should locate TypeScript files instead of source locations." }, - Watch_input_files: { code: 6005, category: ts.DiagnosticCategory.Message, key: "Watch input files." }, - Redirect_output_structure_to_the_directory: { code: 6006, category: ts.DiagnosticCategory.Message, key: "Redirect output structure to the directory." }, - Do_not_erase_const_enum_declarations_in_generated_code: { code: 6007, category: ts.DiagnosticCategory.Message, key: "Do not erase const enum declarations in generated code." }, - Do_not_emit_outputs_if_any_type_checking_errors_were_reported: { code: 6008, category: ts.DiagnosticCategory.Message, key: "Do not emit outputs if any type checking errors were reported." }, - Do_not_emit_comments_to_output: { code: 6009, category: ts.DiagnosticCategory.Message, key: "Do not emit comments to output." }, - Do_not_emit_outputs: { code: 6010, category: ts.DiagnosticCategory.Message, key: "Do not emit outputs." }, - Specify_ECMAScript_target_version_Colon_ES3_default_ES5_or_ES6_experimental: { code: 6015, category: ts.DiagnosticCategory.Message, key: "Specify ECMAScript target version: 'ES3' (default), 'ES5', or 'ES6' (experimental)" }, - Specify_module_code_generation_Colon_commonjs_or_amd: { code: 6016, category: ts.DiagnosticCategory.Message, key: "Specify module code generation: 'commonjs' or 'amd'" }, - Print_this_message: { code: 6017, category: ts.DiagnosticCategory.Message, key: "Print this message." }, - Print_the_compiler_s_version: { code: 6019, category: ts.DiagnosticCategory.Message, key: "Print the compiler's version." }, - Compile_the_project_in_the_given_directory: { code: 6020, category: ts.DiagnosticCategory.Message, key: "Compile the project in the given directory." }, - Syntax_Colon_0: { code: 6023, category: ts.DiagnosticCategory.Message, key: "Syntax: {0}" }, - options: { code: 6024, category: ts.DiagnosticCategory.Message, key: "options" }, - file: { code: 6025, category: ts.DiagnosticCategory.Message, key: "file" }, - Examples_Colon_0: { code: 6026, category: ts.DiagnosticCategory.Message, key: "Examples: {0}" }, - Options_Colon: { code: 6027, category: ts.DiagnosticCategory.Message, key: "Options:" }, - Version_0: { code: 6029, category: ts.DiagnosticCategory.Message, key: "Version {0}" }, - Insert_command_line_options_and_files_from_a_file: { code: 6030, category: ts.DiagnosticCategory.Message, key: "Insert command line options and files from a file." }, - File_change_detected_Starting_incremental_compilation: { code: 6032, category: ts.DiagnosticCategory.Message, key: "File change detected. Starting incremental compilation..." }, - KIND: { code: 6034, category: ts.DiagnosticCategory.Message, key: "KIND" }, - FILE: { code: 6035, category: ts.DiagnosticCategory.Message, key: "FILE" }, - VERSION: { code: 6036, category: ts.DiagnosticCategory.Message, key: "VERSION" }, - LOCATION: { code: 6037, category: ts.DiagnosticCategory.Message, key: "LOCATION" }, - DIRECTORY: { code: 6038, category: ts.DiagnosticCategory.Message, key: "DIRECTORY" }, - Compilation_complete_Watching_for_file_changes: { code: 6042, category: ts.DiagnosticCategory.Message, key: "Compilation complete. Watching for file changes." }, - Generates_corresponding_map_file: { code: 6043, category: ts.DiagnosticCategory.Message, key: "Generates corresponding '.map' file." }, - Compiler_option_0_expects_an_argument: { code: 6044, category: ts.DiagnosticCategory.Error, key: "Compiler option '{0}' expects an argument." }, - Unterminated_quoted_string_in_response_file_0: { code: 6045, category: ts.DiagnosticCategory.Error, key: "Unterminated quoted string in response file '{0}'." }, - Argument_for_module_option_must_be_commonjs_or_amd: { code: 6046, category: ts.DiagnosticCategory.Error, key: "Argument for '--module' option must be 'commonjs' or 'amd'." }, - Argument_for_target_option_must_be_es3_es5_or_es6: { code: 6047, category: ts.DiagnosticCategory.Error, key: "Argument for '--target' option must be 'es3', 'es5', or 'es6'." }, - Locale_must_be_of_the_form_language_or_language_territory_For_example_0_or_1: { code: 6048, category: ts.DiagnosticCategory.Error, key: "Locale must be of the form or -. For example '{0}' or '{1}'." }, - Unsupported_locale_0: { code: 6049, category: ts.DiagnosticCategory.Error, key: "Unsupported locale '{0}'." }, - Unable_to_open_file_0: { code: 6050, category: ts.DiagnosticCategory.Error, key: "Unable to open file '{0}'." }, - Corrupted_locale_file_0: { code: 6051, category: ts.DiagnosticCategory.Error, key: "Corrupted locale file {0}." }, - Raise_error_on_expressions_and_declarations_with_an_implied_any_type: { code: 6052, category: ts.DiagnosticCategory.Message, key: "Raise error on expressions and declarations with an implied 'any' type." }, - File_0_not_found: { code: 6053, category: ts.DiagnosticCategory.Error, key: "File '{0}' not found." }, - File_0_must_have_extension_ts_or_d_ts: { code: 6054, category: ts.DiagnosticCategory.Error, key: "File '{0}' must have extension '.ts' or '.d.ts'." }, - Suppress_noImplicitAny_errors_for_indexing_objects_lacking_index_signatures: { code: 6055, category: ts.DiagnosticCategory.Message, key: "Suppress noImplicitAny errors for indexing objects lacking index signatures." }, - Do_not_emit_declarations_for_code_that_has_an_internal_annotation: { code: 6056, category: ts.DiagnosticCategory.Message, key: "Do not emit declarations for code that has an '@internal' annotation." }, - Preserve_new_lines_when_emitting_code: { code: 6057, category: ts.DiagnosticCategory.Message, key: "Preserve new-lines when emitting code." }, - Variable_0_implicitly_has_an_1_type: { code: 7005, category: ts.DiagnosticCategory.Error, key: "Variable '{0}' implicitly has an '{1}' type." }, - Parameter_0_implicitly_has_an_1_type: { code: 7006, category: ts.DiagnosticCategory.Error, key: "Parameter '{0}' implicitly has an '{1}' type." }, - Member_0_implicitly_has_an_1_type: { code: 7008, category: ts.DiagnosticCategory.Error, key: "Member '{0}' implicitly has an '{1}' type." }, - new_expression_whose_target_lacks_a_construct_signature_implicitly_has_an_any_type: { code: 7009, category: ts.DiagnosticCategory.Error, key: "'new' expression, whose target lacks a construct signature, implicitly has an 'any' type." }, - _0_which_lacks_return_type_annotation_implicitly_has_an_1_return_type: { code: 7010, category: ts.DiagnosticCategory.Error, key: "'{0}', which lacks return-type annotation, implicitly has an '{1}' return type." }, - Function_expression_which_lacks_return_type_annotation_implicitly_has_an_0_return_type: { code: 7011, category: ts.DiagnosticCategory.Error, key: "Function expression, which lacks return-type annotation, implicitly has an '{0}' return type." }, - Construct_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type: { code: 7013, category: ts.DiagnosticCategory.Error, key: "Construct signature, which lacks return-type annotation, implicitly has an 'any' return type." }, - Property_0_implicitly_has_type_any_because_its_set_accessor_lacks_a_type_annotation: { code: 7016, category: ts.DiagnosticCategory.Error, key: "Property '{0}' implicitly has type 'any', because its 'set' accessor lacks a type annotation." }, - Index_signature_of_object_type_implicitly_has_an_any_type: { code: 7017, category: ts.DiagnosticCategory.Error, key: "Index signature of object type implicitly has an 'any' type." }, - Object_literal_s_property_0_implicitly_has_an_1_type: { code: 7018, category: ts.DiagnosticCategory.Error, key: "Object literal's property '{0}' implicitly has an '{1}' type." }, - Rest_parameter_0_implicitly_has_an_any_type: { code: 7019, category: ts.DiagnosticCategory.Error, key: "Rest parameter '{0}' implicitly has an 'any[]' type." }, - Call_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type: { code: 7020, category: ts.DiagnosticCategory.Error, key: "Call signature, which lacks return-type annotation, implicitly has an 'any' return type." }, - _0_implicitly_has_type_any_because_it_is_referenced_directly_or_indirectly_in_its_own_type_annotation: { code: 7021, category: ts.DiagnosticCategory.Error, key: "'{0}' implicitly has type 'any' because it is referenced directly or indirectly in its own type annotation." }, - _0_implicitly_has_type_any_because_it_is_does_not_have_a_type_annotation_and_is_referenced_directly_or_indirectly_in_its_own_initializer: { code: 7022, category: ts.DiagnosticCategory.Error, key: "'{0}' implicitly has type 'any' because it is does not have a type annotation and is referenced directly or indirectly in its own initializer." }, - _0_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions: { code: 7023, category: ts.DiagnosticCategory.Error, key: "'{0}' implicitly has return type 'any' because it does not have a return type annotation and is referenced directly or indirectly in one of its return expressions." }, - Function_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions: { code: 7024, category: ts.DiagnosticCategory.Error, key: "Function implicitly has return type 'any' because it does not have a return type annotation and is referenced directly or indirectly in one of its return expressions." }, - You_cannot_rename_this_element: { code: 8000, category: ts.DiagnosticCategory.Error, key: "You cannot rename this element." }, - You_cannot_rename_elements_that_are_defined_in_the_standard_TypeScript_library: { code: 8001, category: ts.DiagnosticCategory.Error, key: "You cannot rename elements that are defined in the standard TypeScript library." }, - yield_expressions_are_not_currently_supported: { code: 9000, category: ts.DiagnosticCategory.Error, key: "'yield' expressions are not currently supported." }, - Generators_are_not_currently_supported: { code: 9001, category: ts.DiagnosticCategory.Error, key: "Generators are not currently supported." } - }; -})(ts || (ts = {})); -/// -/// -var ts; -(function (ts) { - var textToToken = { - "any": 112, - "as": 102, - "boolean": 113, - "break": 66, - "case": 67, - "catch": 68, - "class": 69, - "continue": 71, - "const": 70, - "constructor": 114, - "debugger": 72, - "declare": 115, - "default": 73, - "delete": 74, - "do": 75, - "else": 76, - "enum": 77, - "export": 78, - "extends": 79, - "false": 80, - "finally": 81, - "for": 82, - "from": 124, - "function": 83, - "get": 116, - "if": 84, - "implements": 103, - "import": 85, - "in": 86, - "instanceof": 87, - "interface": 104, - "let": 105, - "module": 117, - "new": 88, - "null": 89, - "number": 119, - "package": 106, - "private": 107, - "protected": 108, - "public": 109, - "require": 118, - "return": 90, - "set": 120, - "static": 110, - "string": 121, - "super": 91, - "switch": 92, - "symbol": 122, - "this": 93, - "throw": 94, - "true": 95, - "try": 96, - "type": 123, - "typeof": 97, - "var": 98, - "void": 99, - "while": 100, - "with": 101, - "yield": 111, - "of": 125, - "{": 14, - "}": 15, - "(": 16, - ")": 17, - "[": 18, - "]": 19, - ".": 20, - "...": 21, - ";": 22, - ",": 23, - "<": 24, - ">": 25, - "<=": 26, - ">=": 27, - "==": 28, - "!=": 29, - "===": 30, - "!==": 31, - "=>": 32, - "+": 33, - "-": 34, - "*": 35, - "/": 36, - "%": 37, - "++": 38, - "--": 39, - "<<": 40, - ">>": 41, - ">>>": 42, - "&": 43, - "|": 44, - "^": 45, - "!": 46, - "~": 47, - "&&": 48, - "||": 49, - "?": 50, - ":": 51, - "=": 53, - "+=": 54, - "-=": 55, - "*=": 56, - "/=": 57, - "%=": 58, - "<<=": 59, - ">>=": 60, - ">>>=": 61, - "&=": 62, - "|=": 63, - "^=": 64, - "@": 52 - }; - var unicodeES3IdentifierStart = [170, 170, 181, 181, 186, 186, 192, 214, 216, 246, 248, 543, 546, 563, 592, 685, 688, 696, 699, 705, 720, 721, 736, 740, 750, 750, 890, 890, 902, 902, 904, 906, 908, 908, 910, 929, 931, 974, 976, 983, 986, 1011, 1024, 1153, 1164, 1220, 1223, 1224, 1227, 1228, 1232, 1269, 1272, 1273, 1329, 1366, 1369, 1369, 1377, 1415, 1488, 1514, 1520, 1522, 1569, 1594, 1600, 1610, 1649, 1747, 1749, 1749, 1765, 1766, 1786, 1788, 1808, 1808, 1810, 1836, 1920, 1957, 2309, 2361, 2365, 2365, 2384, 2384, 2392, 2401, 2437, 2444, 2447, 2448, 2451, 2472, 2474, 2480, 2482, 2482, 2486, 2489, 2524, 2525, 2527, 2529, 2544, 2545, 2565, 2570, 2575, 2576, 2579, 2600, 2602, 2608, 2610, 2611, 2613, 2614, 2616, 2617, 2649, 2652, 2654, 2654, 2674, 2676, 2693, 2699, 2701, 2701, 2703, 2705, 2707, 2728, 2730, 2736, 2738, 2739, 2741, 2745, 2749, 2749, 2768, 2768, 2784, 2784, 2821, 2828, 2831, 2832, 2835, 2856, 2858, 2864, 2866, 2867, 2870, 2873, 2877, 2877, 2908, 2909, 2911, 2913, 2949, 2954, 2958, 2960, 2962, 2965, 2969, 2970, 2972, 2972, 2974, 2975, 2979, 2980, 2984, 2986, 2990, 2997, 2999, 3001, 3077, 3084, 3086, 3088, 3090, 3112, 3114, 3123, 3125, 3129, 3168, 3169, 3205, 3212, 3214, 3216, 3218, 3240, 3242, 3251, 3253, 3257, 3294, 3294, 3296, 3297, 3333, 3340, 3342, 3344, 3346, 3368, 3370, 3385, 3424, 3425, 3461, 3478, 3482, 3505, 3507, 3515, 3517, 3517, 3520, 3526, 3585, 3632, 3634, 3635, 3648, 3654, 3713, 3714, 3716, 3716, 3719, 3720, 3722, 3722, 3725, 3725, 3732, 3735, 3737, 3743, 3745, 3747, 3749, 3749, 3751, 3751, 3754, 3755, 3757, 3760, 3762, 3763, 3773, 3773, 3776, 3780, 3782, 3782, 3804, 3805, 3840, 3840, 3904, 3911, 3913, 3946, 3976, 3979, 4096, 4129, 4131, 4135, 4137, 4138, 4176, 4181, 4256, 4293, 4304, 4342, 4352, 4441, 4447, 4514, 4520, 4601, 4608, 4614, 4616, 4678, 4680, 4680, 4682, 4685, 4688, 4694, 4696, 4696, 4698, 4701, 4704, 4742, 4744, 4744, 4746, 4749, 4752, 4782, 4784, 4784, 4786, 4789, 4792, 4798, 4800, 4800, 4802, 4805, 4808, 4814, 4816, 4822, 4824, 4846, 4848, 4878, 4880, 4880, 4882, 4885, 4888, 4894, 4896, 4934, 4936, 4954, 5024, 5108, 5121, 5740, 5743, 5750, 5761, 5786, 5792, 5866, 6016, 6067, 6176, 6263, 6272, 6312, 7680, 7835, 7840, 7929, 7936, 7957, 7960, 7965, 7968, 8005, 8008, 8013, 8016, 8023, 8025, 8025, 8027, 8027, 8029, 8029, 8031, 8061, 8064, 8116, 8118, 8124, 8126, 8126, 8130, 8132, 8134, 8140, 8144, 8147, 8150, 8155, 8160, 8172, 8178, 8180, 8182, 8188, 8319, 8319, 8450, 8450, 8455, 8455, 8458, 8467, 8469, 8469, 8473, 8477, 8484, 8484, 8486, 8486, 8488, 8488, 8490, 8493, 8495, 8497, 8499, 8505, 8544, 8579, 12293, 12295, 12321, 12329, 12337, 12341, 12344, 12346, 12353, 12436, 12445, 12446, 12449, 12538, 12540, 12542, 12549, 12588, 12593, 12686, 12704, 12727, 13312, 19893, 19968, 40869, 40960, 42124, 44032, 55203, 63744, 64045, 64256, 64262, 64275, 64279, 64285, 64285, 64287, 64296, 64298, 64310, 64312, 64316, 64318, 64318, 64320, 64321, 64323, 64324, 64326, 64433, 64467, 64829, 64848, 64911, 64914, 64967, 65008, 65019, 65136, 65138, 65140, 65140, 65142, 65276, 65313, 65338, 65345, 65370, 65382, 65470, 65474, 65479, 65482, 65487, 65490, 65495, 65498, 65500,]; - var unicodeES3IdentifierPart = [170, 170, 181, 181, 186, 186, 192, 214, 216, 246, 248, 543, 546, 563, 592, 685, 688, 696, 699, 705, 720, 721, 736, 740, 750, 750, 768, 846, 864, 866, 890, 890, 902, 902, 904, 906, 908, 908, 910, 929, 931, 974, 976, 983, 986, 1011, 1024, 1153, 1155, 1158, 1164, 1220, 1223, 1224, 1227, 1228, 1232, 1269, 1272, 1273, 1329, 1366, 1369, 1369, 1377, 1415, 1425, 1441, 1443, 1465, 1467, 1469, 1471, 1471, 1473, 1474, 1476, 1476, 1488, 1514, 1520, 1522, 1569, 1594, 1600, 1621, 1632, 1641, 1648, 1747, 1749, 1756, 1759, 1768, 1770, 1773, 1776, 1788, 1808, 1836, 1840, 1866, 1920, 1968, 2305, 2307, 2309, 2361, 2364, 2381, 2384, 2388, 2392, 2403, 2406, 2415, 2433, 2435, 2437, 2444, 2447, 2448, 2451, 2472, 2474, 2480, 2482, 2482, 2486, 2489, 2492, 2492, 2494, 2500, 2503, 2504, 2507, 2509, 2519, 2519, 2524, 2525, 2527, 2531, 2534, 2545, 2562, 2562, 2565, 2570, 2575, 2576, 2579, 2600, 2602, 2608, 2610, 2611, 2613, 2614, 2616, 2617, 2620, 2620, 2622, 2626, 2631, 2632, 2635, 2637, 2649, 2652, 2654, 2654, 2662, 2676, 2689, 2691, 2693, 2699, 2701, 2701, 2703, 2705, 2707, 2728, 2730, 2736, 2738, 2739, 2741, 2745, 2748, 2757, 2759, 2761, 2763, 2765, 2768, 2768, 2784, 2784, 2790, 2799, 2817, 2819, 2821, 2828, 2831, 2832, 2835, 2856, 2858, 2864, 2866, 2867, 2870, 2873, 2876, 2883, 2887, 2888, 2891, 2893, 2902, 2903, 2908, 2909, 2911, 2913, 2918, 2927, 2946, 2947, 2949, 2954, 2958, 2960, 2962, 2965, 2969, 2970, 2972, 2972, 2974, 2975, 2979, 2980, 2984, 2986, 2990, 2997, 2999, 3001, 3006, 3010, 3014, 3016, 3018, 3021, 3031, 3031, 3047, 3055, 3073, 3075, 3077, 3084, 3086, 3088, 3090, 3112, 3114, 3123, 3125, 3129, 3134, 3140, 3142, 3144, 3146, 3149, 3157, 3158, 3168, 3169, 3174, 3183, 3202, 3203, 3205, 3212, 3214, 3216, 3218, 3240, 3242, 3251, 3253, 3257, 3262, 3268, 3270, 3272, 3274, 3277, 3285, 3286, 3294, 3294, 3296, 3297, 3302, 3311, 3330, 3331, 3333, 3340, 3342, 3344, 3346, 3368, 3370, 3385, 3390, 3395, 3398, 3400, 3402, 3405, 3415, 3415, 3424, 3425, 3430, 3439, 3458, 3459, 3461, 3478, 3482, 3505, 3507, 3515, 3517, 3517, 3520, 3526, 3530, 3530, 3535, 3540, 3542, 3542, 3544, 3551, 3570, 3571, 3585, 3642, 3648, 3662, 3664, 3673, 3713, 3714, 3716, 3716, 3719, 3720, 3722, 3722, 3725, 3725, 3732, 3735, 3737, 3743, 3745, 3747, 3749, 3749, 3751, 3751, 3754, 3755, 3757, 3769, 3771, 3773, 3776, 3780, 3782, 3782, 3784, 3789, 3792, 3801, 3804, 3805, 3840, 3840, 3864, 3865, 3872, 3881, 3893, 3893, 3895, 3895, 3897, 3897, 3902, 3911, 3913, 3946, 3953, 3972, 3974, 3979, 3984, 3991, 3993, 4028, 4038, 4038, 4096, 4129, 4131, 4135, 4137, 4138, 4140, 4146, 4150, 4153, 4160, 4169, 4176, 4185, 4256, 4293, 4304, 4342, 4352, 4441, 4447, 4514, 4520, 4601, 4608, 4614, 4616, 4678, 4680, 4680, 4682, 4685, 4688, 4694, 4696, 4696, 4698, 4701, 4704, 4742, 4744, 4744, 4746, 4749, 4752, 4782, 4784, 4784, 4786, 4789, 4792, 4798, 4800, 4800, 4802, 4805, 4808, 4814, 4816, 4822, 4824, 4846, 4848, 4878, 4880, 4880, 4882, 4885, 4888, 4894, 4896, 4934, 4936, 4954, 4969, 4977, 5024, 5108, 5121, 5740, 5743, 5750, 5761, 5786, 5792, 5866, 6016, 6099, 6112, 6121, 6160, 6169, 6176, 6263, 6272, 6313, 7680, 7835, 7840, 7929, 7936, 7957, 7960, 7965, 7968, 8005, 8008, 8013, 8016, 8023, 8025, 8025, 8027, 8027, 8029, 8029, 8031, 8061, 8064, 8116, 8118, 8124, 8126, 8126, 8130, 8132, 8134, 8140, 8144, 8147, 8150, 8155, 8160, 8172, 8178, 8180, 8182, 8188, 8255, 8256, 8319, 8319, 8400, 8412, 8417, 8417, 8450, 8450, 8455, 8455, 8458, 8467, 8469, 8469, 8473, 8477, 8484, 8484, 8486, 8486, 8488, 8488, 8490, 8493, 8495, 8497, 8499, 8505, 8544, 8579, 12293, 12295, 12321, 12335, 12337, 12341, 12344, 12346, 12353, 12436, 12441, 12442, 12445, 12446, 12449, 12542, 12549, 12588, 12593, 12686, 12704, 12727, 13312, 19893, 19968, 40869, 40960, 42124, 44032, 55203, 63744, 64045, 64256, 64262, 64275, 64279, 64285, 64296, 64298, 64310, 64312, 64316, 64318, 64318, 64320, 64321, 64323, 64324, 64326, 64433, 64467, 64829, 64848, 64911, 64914, 64967, 65008, 65019, 65056, 65059, 65075, 65076, 65101, 65103, 65136, 65138, 65140, 65140, 65142, 65276, 65296, 65305, 65313, 65338, 65343, 65343, 65345, 65370, 65381, 65470, 65474, 65479, 65482, 65487, 65490, 65495, 65498, 65500,]; - var unicodeES5IdentifierStart = [170, 170, 181, 181, 186, 186, 192, 214, 216, 246, 248, 705, 710, 721, 736, 740, 748, 748, 750, 750, 880, 884, 886, 887, 890, 893, 902, 902, 904, 906, 908, 908, 910, 929, 931, 1013, 1015, 1153, 1162, 1319, 1329, 1366, 1369, 1369, 1377, 1415, 1488, 1514, 1520, 1522, 1568, 1610, 1646, 1647, 1649, 1747, 1749, 1749, 1765, 1766, 1774, 1775, 1786, 1788, 1791, 1791, 1808, 1808, 1810, 1839, 1869, 1957, 1969, 1969, 1994, 2026, 2036, 2037, 2042, 2042, 2048, 2069, 2074, 2074, 2084, 2084, 2088, 2088, 2112, 2136, 2208, 2208, 2210, 2220, 2308, 2361, 2365, 2365, 2384, 2384, 2392, 2401, 2417, 2423, 2425, 2431, 2437, 2444, 2447, 2448, 2451, 2472, 2474, 2480, 2482, 2482, 2486, 2489, 2493, 2493, 2510, 2510, 2524, 2525, 2527, 2529, 2544, 2545, 2565, 2570, 2575, 2576, 2579, 2600, 2602, 2608, 2610, 2611, 2613, 2614, 2616, 2617, 2649, 2652, 2654, 2654, 2674, 2676, 2693, 2701, 2703, 2705, 2707, 2728, 2730, 2736, 2738, 2739, 2741, 2745, 2749, 2749, 2768, 2768, 2784, 2785, 2821, 2828, 2831, 2832, 2835, 2856, 2858, 2864, 2866, 2867, 2869, 2873, 2877, 2877, 2908, 2909, 2911, 2913, 2929, 2929, 2947, 2947, 2949, 2954, 2958, 2960, 2962, 2965, 2969, 2970, 2972, 2972, 2974, 2975, 2979, 2980, 2984, 2986, 2990, 3001, 3024, 3024, 3077, 3084, 3086, 3088, 3090, 3112, 3114, 3123, 3125, 3129, 3133, 3133, 3160, 3161, 3168, 3169, 3205, 3212, 3214, 3216, 3218, 3240, 3242, 3251, 3253, 3257, 3261, 3261, 3294, 3294, 3296, 3297, 3313, 3314, 3333, 3340, 3342, 3344, 3346, 3386, 3389, 3389, 3406, 3406, 3424, 3425, 3450, 3455, 3461, 3478, 3482, 3505, 3507, 3515, 3517, 3517, 3520, 3526, 3585, 3632, 3634, 3635, 3648, 3654, 3713, 3714, 3716, 3716, 3719, 3720, 3722, 3722, 3725, 3725, 3732, 3735, 3737, 3743, 3745, 3747, 3749, 3749, 3751, 3751, 3754, 3755, 3757, 3760, 3762, 3763, 3773, 3773, 3776, 3780, 3782, 3782, 3804, 3807, 3840, 3840, 3904, 3911, 3913, 3948, 3976, 3980, 4096, 4138, 4159, 4159, 4176, 4181, 4186, 4189, 4193, 4193, 4197, 4198, 4206, 4208, 4213, 4225, 4238, 4238, 4256, 4293, 4295, 4295, 4301, 4301, 4304, 4346, 4348, 4680, 4682, 4685, 4688, 4694, 4696, 4696, 4698, 4701, 4704, 4744, 4746, 4749, 4752, 4784, 4786, 4789, 4792, 4798, 4800, 4800, 4802, 4805, 4808, 4822, 4824, 4880, 4882, 4885, 4888, 4954, 4992, 5007, 5024, 5108, 5121, 5740, 5743, 5759, 5761, 5786, 5792, 5866, 5870, 5872, 5888, 5900, 5902, 5905, 5920, 5937, 5952, 5969, 5984, 5996, 5998, 6000, 6016, 6067, 6103, 6103, 6108, 6108, 6176, 6263, 6272, 6312, 6314, 6314, 6320, 6389, 6400, 6428, 6480, 6509, 6512, 6516, 6528, 6571, 6593, 6599, 6656, 6678, 6688, 6740, 6823, 6823, 6917, 6963, 6981, 6987, 7043, 7072, 7086, 7087, 7098, 7141, 7168, 7203, 7245, 7247, 7258, 7293, 7401, 7404, 7406, 7409, 7413, 7414, 7424, 7615, 7680, 7957, 7960, 7965, 7968, 8005, 8008, 8013, 8016, 8023, 8025, 8025, 8027, 8027, 8029, 8029, 8031, 8061, 8064, 8116, 8118, 8124, 8126, 8126, 8130, 8132, 8134, 8140, 8144, 8147, 8150, 8155, 8160, 8172, 8178, 8180, 8182, 8188, 8305, 8305, 8319, 8319, 8336, 8348, 8450, 8450, 8455, 8455, 8458, 8467, 8469, 8469, 8473, 8477, 8484, 8484, 8486, 8486, 8488, 8488, 8490, 8493, 8495, 8505, 8508, 8511, 8517, 8521, 8526, 8526, 8544, 8584, 11264, 11310, 11312, 11358, 11360, 11492, 11499, 11502, 11506, 11507, 11520, 11557, 11559, 11559, 11565, 11565, 11568, 11623, 11631, 11631, 11648, 11670, 11680, 11686, 11688, 11694, 11696, 11702, 11704, 11710, 11712, 11718, 11720, 11726, 11728, 11734, 11736, 11742, 11823, 11823, 12293, 12295, 12321, 12329, 12337, 12341, 12344, 12348, 12353, 12438, 12445, 12447, 12449, 12538, 12540, 12543, 12549, 12589, 12593, 12686, 12704, 12730, 12784, 12799, 13312, 19893, 19968, 40908, 40960, 42124, 42192, 42237, 42240, 42508, 42512, 42527, 42538, 42539, 42560, 42606, 42623, 42647, 42656, 42735, 42775, 42783, 42786, 42888, 42891, 42894, 42896, 42899, 42912, 42922, 43000, 43009, 43011, 43013, 43015, 43018, 43020, 43042, 43072, 43123, 43138, 43187, 43250, 43255, 43259, 43259, 43274, 43301, 43312, 43334, 43360, 43388, 43396, 43442, 43471, 43471, 43520, 43560, 43584, 43586, 43588, 43595, 43616, 43638, 43642, 43642, 43648, 43695, 43697, 43697, 43701, 43702, 43705, 43709, 43712, 43712, 43714, 43714, 43739, 43741, 43744, 43754, 43762, 43764, 43777, 43782, 43785, 43790, 43793, 43798, 43808, 43814, 43816, 43822, 43968, 44002, 44032, 55203, 55216, 55238, 55243, 55291, 63744, 64109, 64112, 64217, 64256, 64262, 64275, 64279, 64285, 64285, 64287, 64296, 64298, 64310, 64312, 64316, 64318, 64318, 64320, 64321, 64323, 64324, 64326, 64433, 64467, 64829, 64848, 64911, 64914, 64967, 65008, 65019, 65136, 65140, 65142, 65276, 65313, 65338, 65345, 65370, 65382, 65470, 65474, 65479, 65482, 65487, 65490, 65495, 65498, 65500,]; - var unicodeES5IdentifierPart = [170, 170, 181, 181, 186, 186, 192, 214, 216, 246, 248, 705, 710, 721, 736, 740, 748, 748, 750, 750, 768, 884, 886, 887, 890, 893, 902, 902, 904, 906, 908, 908, 910, 929, 931, 1013, 1015, 1153, 1155, 1159, 1162, 1319, 1329, 1366, 1369, 1369, 1377, 1415, 1425, 1469, 1471, 1471, 1473, 1474, 1476, 1477, 1479, 1479, 1488, 1514, 1520, 1522, 1552, 1562, 1568, 1641, 1646, 1747, 1749, 1756, 1759, 1768, 1770, 1788, 1791, 1791, 1808, 1866, 1869, 1969, 1984, 2037, 2042, 2042, 2048, 2093, 2112, 2139, 2208, 2208, 2210, 2220, 2276, 2302, 2304, 2403, 2406, 2415, 2417, 2423, 2425, 2431, 2433, 2435, 2437, 2444, 2447, 2448, 2451, 2472, 2474, 2480, 2482, 2482, 2486, 2489, 2492, 2500, 2503, 2504, 2507, 2510, 2519, 2519, 2524, 2525, 2527, 2531, 2534, 2545, 2561, 2563, 2565, 2570, 2575, 2576, 2579, 2600, 2602, 2608, 2610, 2611, 2613, 2614, 2616, 2617, 2620, 2620, 2622, 2626, 2631, 2632, 2635, 2637, 2641, 2641, 2649, 2652, 2654, 2654, 2662, 2677, 2689, 2691, 2693, 2701, 2703, 2705, 2707, 2728, 2730, 2736, 2738, 2739, 2741, 2745, 2748, 2757, 2759, 2761, 2763, 2765, 2768, 2768, 2784, 2787, 2790, 2799, 2817, 2819, 2821, 2828, 2831, 2832, 2835, 2856, 2858, 2864, 2866, 2867, 2869, 2873, 2876, 2884, 2887, 2888, 2891, 2893, 2902, 2903, 2908, 2909, 2911, 2915, 2918, 2927, 2929, 2929, 2946, 2947, 2949, 2954, 2958, 2960, 2962, 2965, 2969, 2970, 2972, 2972, 2974, 2975, 2979, 2980, 2984, 2986, 2990, 3001, 3006, 3010, 3014, 3016, 3018, 3021, 3024, 3024, 3031, 3031, 3046, 3055, 3073, 3075, 3077, 3084, 3086, 3088, 3090, 3112, 3114, 3123, 3125, 3129, 3133, 3140, 3142, 3144, 3146, 3149, 3157, 3158, 3160, 3161, 3168, 3171, 3174, 3183, 3202, 3203, 3205, 3212, 3214, 3216, 3218, 3240, 3242, 3251, 3253, 3257, 3260, 3268, 3270, 3272, 3274, 3277, 3285, 3286, 3294, 3294, 3296, 3299, 3302, 3311, 3313, 3314, 3330, 3331, 3333, 3340, 3342, 3344, 3346, 3386, 3389, 3396, 3398, 3400, 3402, 3406, 3415, 3415, 3424, 3427, 3430, 3439, 3450, 3455, 3458, 3459, 3461, 3478, 3482, 3505, 3507, 3515, 3517, 3517, 3520, 3526, 3530, 3530, 3535, 3540, 3542, 3542, 3544, 3551, 3570, 3571, 3585, 3642, 3648, 3662, 3664, 3673, 3713, 3714, 3716, 3716, 3719, 3720, 3722, 3722, 3725, 3725, 3732, 3735, 3737, 3743, 3745, 3747, 3749, 3749, 3751, 3751, 3754, 3755, 3757, 3769, 3771, 3773, 3776, 3780, 3782, 3782, 3784, 3789, 3792, 3801, 3804, 3807, 3840, 3840, 3864, 3865, 3872, 3881, 3893, 3893, 3895, 3895, 3897, 3897, 3902, 3911, 3913, 3948, 3953, 3972, 3974, 3991, 3993, 4028, 4038, 4038, 4096, 4169, 4176, 4253, 4256, 4293, 4295, 4295, 4301, 4301, 4304, 4346, 4348, 4680, 4682, 4685, 4688, 4694, 4696, 4696, 4698, 4701, 4704, 4744, 4746, 4749, 4752, 4784, 4786, 4789, 4792, 4798, 4800, 4800, 4802, 4805, 4808, 4822, 4824, 4880, 4882, 4885, 4888, 4954, 4957, 4959, 4992, 5007, 5024, 5108, 5121, 5740, 5743, 5759, 5761, 5786, 5792, 5866, 5870, 5872, 5888, 5900, 5902, 5908, 5920, 5940, 5952, 5971, 5984, 5996, 5998, 6000, 6002, 6003, 6016, 6099, 6103, 6103, 6108, 6109, 6112, 6121, 6155, 6157, 6160, 6169, 6176, 6263, 6272, 6314, 6320, 6389, 6400, 6428, 6432, 6443, 6448, 6459, 6470, 6509, 6512, 6516, 6528, 6571, 6576, 6601, 6608, 6617, 6656, 6683, 6688, 6750, 6752, 6780, 6783, 6793, 6800, 6809, 6823, 6823, 6912, 6987, 6992, 7001, 7019, 7027, 7040, 7155, 7168, 7223, 7232, 7241, 7245, 7293, 7376, 7378, 7380, 7414, 7424, 7654, 7676, 7957, 7960, 7965, 7968, 8005, 8008, 8013, 8016, 8023, 8025, 8025, 8027, 8027, 8029, 8029, 8031, 8061, 8064, 8116, 8118, 8124, 8126, 8126, 8130, 8132, 8134, 8140, 8144, 8147, 8150, 8155, 8160, 8172, 8178, 8180, 8182, 8188, 8204, 8205, 8255, 8256, 8276, 8276, 8305, 8305, 8319, 8319, 8336, 8348, 8400, 8412, 8417, 8417, 8421, 8432, 8450, 8450, 8455, 8455, 8458, 8467, 8469, 8469, 8473, 8477, 8484, 8484, 8486, 8486, 8488, 8488, 8490, 8493, 8495, 8505, 8508, 8511, 8517, 8521, 8526, 8526, 8544, 8584, 11264, 11310, 11312, 11358, 11360, 11492, 11499, 11507, 11520, 11557, 11559, 11559, 11565, 11565, 11568, 11623, 11631, 11631, 11647, 11670, 11680, 11686, 11688, 11694, 11696, 11702, 11704, 11710, 11712, 11718, 11720, 11726, 11728, 11734, 11736, 11742, 11744, 11775, 11823, 11823, 12293, 12295, 12321, 12335, 12337, 12341, 12344, 12348, 12353, 12438, 12441, 12442, 12445, 12447, 12449, 12538, 12540, 12543, 12549, 12589, 12593, 12686, 12704, 12730, 12784, 12799, 13312, 19893, 19968, 40908, 40960, 42124, 42192, 42237, 42240, 42508, 42512, 42539, 42560, 42607, 42612, 42621, 42623, 42647, 42655, 42737, 42775, 42783, 42786, 42888, 42891, 42894, 42896, 42899, 42912, 42922, 43000, 43047, 43072, 43123, 43136, 43204, 43216, 43225, 43232, 43255, 43259, 43259, 43264, 43309, 43312, 43347, 43360, 43388, 43392, 43456, 43471, 43481, 43520, 43574, 43584, 43597, 43600, 43609, 43616, 43638, 43642, 43643, 43648, 43714, 43739, 43741, 43744, 43759, 43762, 43766, 43777, 43782, 43785, 43790, 43793, 43798, 43808, 43814, 43816, 43822, 43968, 44010, 44012, 44013, 44016, 44025, 44032, 55203, 55216, 55238, 55243, 55291, 63744, 64109, 64112, 64217, 64256, 64262, 64275, 64279, 64285, 64296, 64298, 64310, 64312, 64316, 64318, 64318, 64320, 64321, 64323, 64324, 64326, 64433, 64467, 64829, 64848, 64911, 64914, 64967, 65008, 65019, 65024, 65039, 65056, 65062, 65075, 65076, 65101, 65103, 65136, 65140, 65142, 65276, 65296, 65305, 65313, 65338, 65343, 65343, 65345, 65370, 65382, 65470, 65474, 65479, 65482, 65487, 65490, 65495, 65498, 65500,]; - function lookupInUnicodeMap(code, map) { - if (code < map[0]) { - return false; - } - var lo = 0; - var hi = map.length; - var mid; - while (lo + 1 < hi) { - mid = lo + (hi - lo) / 2; - mid -= mid % 2; - if (map[mid] <= code && code <= map[mid + 1]) { - return true; - } - if (code < map[mid]) { - hi = mid; - } - else { - lo = mid + 2; - } - } - return false; - } - function isUnicodeIdentifierStart(code, languageVersion) { - return languageVersion >= 1 ? - lookupInUnicodeMap(code, unicodeES5IdentifierStart) : - lookupInUnicodeMap(code, unicodeES3IdentifierStart); - } - ts.isUnicodeIdentifierStart = isUnicodeIdentifierStart; - function isUnicodeIdentifierPart(code, languageVersion) { - return languageVersion >= 1 ? - lookupInUnicodeMap(code, unicodeES5IdentifierPart) : - lookupInUnicodeMap(code, unicodeES3IdentifierPart); - } - function makeReverseMap(source) { - var result = []; - for (var name_2 in source) { - if (source.hasOwnProperty(name_2)) { - result[source[name_2]] = name_2; - } - } - return result; - } - var tokenStrings = makeReverseMap(textToToken); - function tokenToString(t) { - return tokenStrings[t]; - } - ts.tokenToString = tokenToString; - function stringToToken(s) { - return textToToken[s]; - } - ts.stringToToken = stringToToken; - function computeLineStarts(text) { - var result = new Array(); - var pos = 0; - var lineStart = 0; - while (pos < text.length) { - var ch = text.charCodeAt(pos++); - switch (ch) { - case 13: - if (text.charCodeAt(pos) === 10) { - pos++; - } - case 10: - result.push(lineStart); - lineStart = pos; - break; - default: - if (ch > 127 && isLineBreak(ch)) { - result.push(lineStart); - lineStart = pos; - } - break; - } - } - result.push(lineStart); - return result; - } - ts.computeLineStarts = computeLineStarts; - function getPositionOfLineAndCharacter(sourceFile, line, character) { - return computePositionOfLineAndCharacter(getLineStarts(sourceFile), line, character); - } - ts.getPositionOfLineAndCharacter = getPositionOfLineAndCharacter; - function computePositionOfLineAndCharacter(lineStarts, line, character) { - ts.Debug.assert(line >= 0 && line < lineStarts.length); - return lineStarts[line] + character; - } - ts.computePositionOfLineAndCharacter = computePositionOfLineAndCharacter; - function getLineStarts(sourceFile) { - return sourceFile.lineMap || (sourceFile.lineMap = computeLineStarts(sourceFile.text)); - } - ts.getLineStarts = getLineStarts; - function computeLineAndCharacterOfPosition(lineStarts, position) { - var lineNumber = ts.binarySearch(lineStarts, position); - if (lineNumber < 0) { - lineNumber = ~lineNumber - 1; - } - return { - line: lineNumber, - character: position - lineStarts[lineNumber] - }; - } - ts.computeLineAndCharacterOfPosition = computeLineAndCharacterOfPosition; - function getLineAndCharacterOfPosition(sourceFile, position) { - return computeLineAndCharacterOfPosition(getLineStarts(sourceFile), position); - } - ts.getLineAndCharacterOfPosition = getLineAndCharacterOfPosition; - var hasOwnProperty = Object.prototype.hasOwnProperty; - function isWhiteSpace(ch) { - return ch === 32 || - ch === 9 || - ch === 11 || - ch === 12 || - ch === 160 || - ch === 133 || - ch === 5760 || - ch >= 8192 && ch <= 8203 || - ch === 8239 || - ch === 8287 || - ch === 12288 || - ch === 65279; - } - ts.isWhiteSpace = isWhiteSpace; - function isLineBreak(ch) { - // ES5 7.3: - // The ECMAScript line terminator characters are listed in Table 3. - // Table 3 � Line Terminator Characters - // Code Unit Value Name Formal Name - // \u000A Line Feed - // \u000D Carriage Return - // \u2028 Line separator - // \u2029 Paragraph separator - // Only the characters in Table 3 are treated as line terminators. Other new line or line - // breaking characters are treated as white space but not as line terminators. - return ch === 10 || - ch === 13 || - ch === 8232 || - ch === 8233; - } - ts.isLineBreak = isLineBreak; - function isDigit(ch) { - return ch >= 48 && ch <= 57; - } - function isOctalDigit(ch) { - return ch >= 48 && ch <= 55; - } - ts.isOctalDigit = isOctalDigit; - function skipTrivia(text, pos, stopAfterLineBreak) { - while (true) { - var ch = text.charCodeAt(pos); - switch (ch) { - case 13: - if (text.charCodeAt(pos + 1) === 10) { - pos++; - } - case 10: - pos++; - if (stopAfterLineBreak) { - return pos; - } - continue; - case 9: - case 11: - case 12: - case 32: - pos++; - continue; - case 47: - if (text.charCodeAt(pos + 1) === 47) { - pos += 2; - while (pos < text.length) { - if (isLineBreak(text.charCodeAt(pos))) { - break; - } - pos++; - } - continue; - } - if (text.charCodeAt(pos + 1) === 42) { - pos += 2; - while (pos < text.length) { - if (text.charCodeAt(pos) === 42 && text.charCodeAt(pos + 1) === 47) { - pos += 2; - break; - } - pos++; - } - continue; - } - break; - case 60: - case 61: - case 62: - if (isConflictMarkerTrivia(text, pos)) { - pos = scanConflictMarkerTrivia(text, pos); - continue; - } - break; - default: - if (ch > 127 && (isWhiteSpace(ch) || isLineBreak(ch))) { - pos++; - continue; - } - break; - } - return pos; - } - } - ts.skipTrivia = skipTrivia; - var mergeConflictMarkerLength = "<<<<<<<".length; - function isConflictMarkerTrivia(text, pos) { - ts.Debug.assert(pos >= 0); - if (pos === 0 || isLineBreak(text.charCodeAt(pos - 1))) { - var ch = text.charCodeAt(pos); - if ((pos + mergeConflictMarkerLength) < text.length) { - for (var i = 0, n = mergeConflictMarkerLength; i < n; i++) { - if (text.charCodeAt(pos + i) !== ch) { - return false; - } - } - return ch === 61 || - text.charCodeAt(pos + mergeConflictMarkerLength) === 32; - } - } - return false; - } - function scanConflictMarkerTrivia(text, pos, error) { - if (error) { - error(ts.Diagnostics.Merge_conflict_marker_encountered, mergeConflictMarkerLength); - } - var ch = text.charCodeAt(pos); - var len = text.length; - if (ch === 60 || ch === 62) { - while (pos < len && !isLineBreak(text.charCodeAt(pos))) { - pos++; - } - } - else { - ts.Debug.assert(ch === 61); - while (pos < len) { - var ch_1 = text.charCodeAt(pos); - if (ch_1 === 62 && isConflictMarkerTrivia(text, pos)) { - break; - } - pos++; - } - } - return pos; - } - function getCommentRanges(text, pos, trailing) { - var result; - var collecting = trailing || pos === 0; - while (true) { - var ch = text.charCodeAt(pos); - switch (ch) { - case 13: - if (text.charCodeAt(pos + 1) === 10) { - pos++; - } - case 10: - pos++; - if (trailing) { - return result; - } - collecting = true; - if (result && result.length) { - result[result.length - 1].hasTrailingNewLine = true; - } - continue; - case 9: - case 11: - case 12: - case 32: - pos++; - continue; - case 47: - var nextChar = text.charCodeAt(pos + 1); - var hasTrailingNewLine = false; - if (nextChar === 47 || nextChar === 42) { - var startPos = pos; - pos += 2; - if (nextChar === 47) { - while (pos < text.length) { - if (isLineBreak(text.charCodeAt(pos))) { - hasTrailingNewLine = true; - break; - } - pos++; - } - } - else { - while (pos < text.length) { - if (text.charCodeAt(pos) === 42 && text.charCodeAt(pos + 1) === 47) { - pos += 2; - break; - } - pos++; - } - } - if (collecting) { - if (!result) { - result = []; - } - result.push({ pos: startPos, end: pos, hasTrailingNewLine: hasTrailingNewLine }); - } - continue; - } - break; - default: - if (ch > 127 && (isWhiteSpace(ch) || isLineBreak(ch))) { - if (result && result.length && isLineBreak(ch)) { - result[result.length - 1].hasTrailingNewLine = true; - } - pos++; - continue; - } - break; - } - return result; - } - } - function getLeadingCommentRanges(text, pos) { - return getCommentRanges(text, pos, false); - } - ts.getLeadingCommentRanges = getLeadingCommentRanges; - function getTrailingCommentRanges(text, pos) { - return getCommentRanges(text, pos, true); - } - ts.getTrailingCommentRanges = getTrailingCommentRanges; - function isIdentifierStart(ch, languageVersion) { - return ch >= 65 && ch <= 90 || ch >= 97 && ch <= 122 || - ch === 36 || ch === 95 || - ch > 127 && isUnicodeIdentifierStart(ch, languageVersion); - } - ts.isIdentifierStart = isIdentifierStart; - function isIdentifierPart(ch, languageVersion) { - return ch >= 65 && ch <= 90 || ch >= 97 && ch <= 122 || - ch >= 48 && ch <= 57 || ch === 36 || ch === 95 || - ch > 127 && isUnicodeIdentifierPart(ch, languageVersion); - } - ts.isIdentifierPart = isIdentifierPart; - function createScanner(languageVersion, skipTrivia, text, onError) { - var pos; - var len; - var startPos; - var tokenPos; - var token; - var tokenValue; - var precedingLineBreak; - var hasExtendedUnicodeEscape; - var tokenIsUnterminated; - function error(message, length) { - if (onError) { - onError(message, length || 0); - } - } - function isIdentifierStart(ch) { - return ch >= 65 && ch <= 90 || ch >= 97 && ch <= 122 || - ch === 36 || ch === 95 || - ch > 127 && isUnicodeIdentifierStart(ch, languageVersion); - } - function isIdentifierPart(ch) { - return ch >= 65 && ch <= 90 || ch >= 97 && ch <= 122 || - ch >= 48 && ch <= 57 || ch === 36 || ch === 95 || - ch > 127 && isUnicodeIdentifierPart(ch, languageVersion); - } - function scanNumber() { - var start = pos; - while (isDigit(text.charCodeAt(pos))) - pos++; - if (text.charCodeAt(pos) === 46) { - pos++; - while (isDigit(text.charCodeAt(pos))) - pos++; - } - var end = pos; - if (text.charCodeAt(pos) === 69 || text.charCodeAt(pos) === 101) { - pos++; - if (text.charCodeAt(pos) === 43 || text.charCodeAt(pos) === 45) - pos++; - if (isDigit(text.charCodeAt(pos))) { - pos++; - while (isDigit(text.charCodeAt(pos))) - pos++; - end = pos; - } - else { - error(ts.Diagnostics.Digit_expected); - } - } - return +(text.substring(start, end)); - } - function scanOctalDigits() { - var start = pos; - while (isOctalDigit(text.charCodeAt(pos))) { - pos++; - } - return +(text.substring(start, pos)); - } - function scanExactNumberOfHexDigits(count) { - return scanHexDigits(count, false); - } - function scanMinimumNumberOfHexDigits(count) { - return scanHexDigits(count, true); - } - function scanHexDigits(minCount, scanAsManyAsPossible) { - var digits = 0; - var value = 0; - while (digits < minCount || scanAsManyAsPossible) { - var ch = text.charCodeAt(pos); - if (ch >= 48 && ch <= 57) { - value = value * 16 + ch - 48; - } - else if (ch >= 65 && ch <= 70) { - value = value * 16 + ch - 65 + 10; - } - else if (ch >= 97 && ch <= 102) { - value = value * 16 + ch - 97 + 10; - } - else { - break; - } - pos++; - digits++; - } - if (digits < minCount) { - value = -1; - } - return value; - } - function scanString() { - var quote = text.charCodeAt(pos++); - var result = ""; - var start = pos; - while (true) { - if (pos >= len) { - result += text.substring(start, pos); - tokenIsUnterminated = true; - error(ts.Diagnostics.Unterminated_string_literal); - break; - } - var ch = text.charCodeAt(pos); - if (ch === quote) { - result += text.substring(start, pos); - pos++; - break; - } - if (ch === 92) { - result += text.substring(start, pos); - result += scanEscapeSequence(); - start = pos; - continue; - } - if (isLineBreak(ch)) { - result += text.substring(start, pos); - tokenIsUnterminated = true; - error(ts.Diagnostics.Unterminated_string_literal); - break; - } - pos++; - } - return result; - } - function scanTemplateAndSetTokenValue() { - var startedWithBacktick = text.charCodeAt(pos) === 96; - pos++; - var start = pos; - var contents = ""; - var resultingToken; - while (true) { - if (pos >= len) { - contents += text.substring(start, pos); - tokenIsUnterminated = true; - error(ts.Diagnostics.Unterminated_template_literal); - resultingToken = startedWithBacktick ? 10 : 13; - break; - } - var currChar = text.charCodeAt(pos); - if (currChar === 96) { - contents += text.substring(start, pos); - pos++; - resultingToken = startedWithBacktick ? 10 : 13; - break; - } - if (currChar === 36 && pos + 1 < len && text.charCodeAt(pos + 1) === 123) { - contents += text.substring(start, pos); - pos += 2; - resultingToken = startedWithBacktick ? 11 : 12; - break; - } - if (currChar === 92) { - contents += text.substring(start, pos); - contents += scanEscapeSequence(); - start = pos; - continue; - } - if (currChar === 13) { - contents += text.substring(start, pos); - pos++; - if (pos < len && text.charCodeAt(pos) === 10) { - pos++; - } - contents += "\n"; - start = pos; - continue; - } - pos++; - } - ts.Debug.assert(resultingToken !== undefined); - tokenValue = contents; - return resultingToken; - } - function scanEscapeSequence() { - pos++; - if (pos >= len) { - error(ts.Diagnostics.Unexpected_end_of_text); - return ""; - } - var ch = text.charCodeAt(pos++); - switch (ch) { - case 48: - return "\0"; - case 98: - return "\b"; - case 116: - return "\t"; - case 110: - return "\n"; - case 118: - return "\v"; - case 102: - return "\f"; - case 114: - return "\r"; - case 39: - return "\'"; - case 34: - return "\""; - case 117: - if (pos < len && text.charCodeAt(pos) === 123) { - hasExtendedUnicodeEscape = true; - pos++; - return scanExtendedUnicodeEscape(); - } - return scanHexadecimalEscape(4); - case 120: - return scanHexadecimalEscape(2); - case 13: - if (pos < len && text.charCodeAt(pos) === 10) { - pos++; - } - case 10: - case 8232: - case 8233: - return ""; - default: - return String.fromCharCode(ch); - } - } - function scanHexadecimalEscape(numDigits) { - var escapedValue = scanExactNumberOfHexDigits(numDigits); - if (escapedValue >= 0) { - return String.fromCharCode(escapedValue); - } - else { - error(ts.Diagnostics.Hexadecimal_digit_expected); - return ""; - } - } - function scanExtendedUnicodeEscape() { - var escapedValue = scanMinimumNumberOfHexDigits(1); - var isInvalidExtendedEscape = false; - if (escapedValue < 0) { - error(ts.Diagnostics.Hexadecimal_digit_expected); - isInvalidExtendedEscape = true; - } - else if (escapedValue > 0x10FFFF) { - error(ts.Diagnostics.An_extended_Unicode_escape_value_must_be_between_0x0_and_0x10FFFF_inclusive); - isInvalidExtendedEscape = true; - } - if (pos >= len) { - error(ts.Diagnostics.Unexpected_end_of_text); - isInvalidExtendedEscape = true; - } - else if (text.charCodeAt(pos) == 125) { - pos++; - } - else { - error(ts.Diagnostics.Unterminated_Unicode_escape_sequence); - isInvalidExtendedEscape = true; - } - if (isInvalidExtendedEscape) { - return ""; - } - return utf16EncodeAsString(escapedValue); - } - function utf16EncodeAsString(codePoint) { - ts.Debug.assert(0x0 <= codePoint && codePoint <= 0x10FFFF); - if (codePoint <= 65535) { - return String.fromCharCode(codePoint); - } - var codeUnit1 = Math.floor((codePoint - 65536) / 1024) + 0xD800; - var codeUnit2 = ((codePoint - 65536) % 1024) + 0xDC00; - return String.fromCharCode(codeUnit1, codeUnit2); - } - function peekUnicodeEscape() { - if (pos + 5 < len && text.charCodeAt(pos + 1) === 117) { - var start = pos; - pos += 2; - var value = scanExactNumberOfHexDigits(4); - pos = start; - return value; - } - return -1; - } - function scanIdentifierParts() { - var result = ""; - var start = pos; - while (pos < len) { - var ch = text.charCodeAt(pos); - if (isIdentifierPart(ch)) { - pos++; - } - else if (ch === 92) { - ch = peekUnicodeEscape(); - if (!(ch >= 0 && isIdentifierPart(ch))) { - break; - } - result += text.substring(start, pos); - result += String.fromCharCode(ch); - pos += 6; - start = pos; - } - else { - break; - } - } - result += text.substring(start, pos); - return result; - } - function getIdentifierToken() { - var len = tokenValue.length; - if (len >= 2 && len <= 11) { - var ch = tokenValue.charCodeAt(0); - if (ch >= 97 && ch <= 122 && hasOwnProperty.call(textToToken, tokenValue)) { - return token = textToToken[tokenValue]; - } - } - return token = 65; - } - function scanBinaryOrOctalDigits(base) { - ts.Debug.assert(base !== 2 || base !== 8, "Expected either base 2 or base 8"); - var value = 0; - var numberOfDigits = 0; - while (true) { - var ch = text.charCodeAt(pos); - var valueOfCh = ch - 48; - if (!isDigit(ch) || valueOfCh >= base) { - break; - } - value = value * base + valueOfCh; - pos++; - numberOfDigits++; - } - if (numberOfDigits === 0) { - return -1; - } - return value; - } - function scan() { - startPos = pos; - hasExtendedUnicodeEscape = false; - precedingLineBreak = false; - tokenIsUnterminated = false; - while (true) { - tokenPos = pos; - if (pos >= len) { - return token = 1; - } - var ch = text.charCodeAt(pos); - switch (ch) { - case 10: - case 13: - precedingLineBreak = true; - if (skipTrivia) { - pos++; - continue; - } - else { - if (ch === 13 && pos + 1 < len && text.charCodeAt(pos + 1) === 10) { - pos += 2; - } - else { - pos++; - } - return token = 4; - } - case 9: - case 11: - case 12: - case 32: - if (skipTrivia) { - pos++; - continue; - } - else { - while (pos < len && isWhiteSpace(text.charCodeAt(pos))) { - pos++; - } - return token = 5; - } - case 33: - if (text.charCodeAt(pos + 1) === 61) { - if (text.charCodeAt(pos + 2) === 61) { - return pos += 3, token = 31; - } - return pos += 2, token = 29; - } - return pos++, token = 46; - case 34: - case 39: - tokenValue = scanString(); - return token = 8; - case 96: - return token = scanTemplateAndSetTokenValue(); - case 37: - if (text.charCodeAt(pos + 1) === 61) { - return pos += 2, token = 58; - } - return pos++, token = 37; - case 38: - if (text.charCodeAt(pos + 1) === 38) { - return pos += 2, token = 48; - } - if (text.charCodeAt(pos + 1) === 61) { - return pos += 2, token = 62; - } - return pos++, token = 43; - case 40: - return pos++, token = 16; - case 41: - return pos++, token = 17; - case 42: - if (text.charCodeAt(pos + 1) === 61) { - return pos += 2, token = 56; - } - return pos++, token = 35; - case 43: - if (text.charCodeAt(pos + 1) === 43) { - return pos += 2, token = 38; - } - if (text.charCodeAt(pos + 1) === 61) { - return pos += 2, token = 54; - } - return pos++, token = 33; - case 44: - return pos++, token = 23; - case 45: - if (text.charCodeAt(pos + 1) === 45) { - return pos += 2, token = 39; - } - if (text.charCodeAt(pos + 1) === 61) { - return pos += 2, token = 55; - } - return pos++, token = 34; - case 46: - if (isDigit(text.charCodeAt(pos + 1))) { - tokenValue = "" + scanNumber(); - return token = 7; - } - if (text.charCodeAt(pos + 1) === 46 && text.charCodeAt(pos + 2) === 46) { - return pos += 3, token = 21; - } - return pos++, token = 20; - case 47: - if (text.charCodeAt(pos + 1) === 47) { - pos += 2; - while (pos < len) { - if (isLineBreak(text.charCodeAt(pos))) { - break; - } - pos++; - } - if (skipTrivia) { - continue; - } - else { - return token = 2; - } - } - if (text.charCodeAt(pos + 1) === 42) { - pos += 2; - var commentClosed = false; - while (pos < len) { - var ch_2 = text.charCodeAt(pos); - if (ch_2 === 42 && text.charCodeAt(pos + 1) === 47) { - pos += 2; - commentClosed = true; - break; - } - if (isLineBreak(ch_2)) { - precedingLineBreak = true; - } - pos++; - } - if (!commentClosed) { - error(ts.Diagnostics.Asterisk_Slash_expected); - } - if (skipTrivia) { - continue; - } - else { - tokenIsUnterminated = !commentClosed; - return token = 3; - } - } - if (text.charCodeAt(pos + 1) === 61) { - return pos += 2, token = 57; - } - return pos++, token = 36; - case 48: - if (pos + 2 < len && (text.charCodeAt(pos + 1) === 88 || text.charCodeAt(pos + 1) === 120)) { - pos += 2; - var value = scanMinimumNumberOfHexDigits(1); - if (value < 0) { - error(ts.Diagnostics.Hexadecimal_digit_expected); - value = 0; - } - tokenValue = "" + value; - return token = 7; - } - else if (pos + 2 < len && (text.charCodeAt(pos + 1) === 66 || text.charCodeAt(pos + 1) === 98)) { - pos += 2; - var value = scanBinaryOrOctalDigits(2); - if (value < 0) { - error(ts.Diagnostics.Binary_digit_expected); - value = 0; - } - tokenValue = "" + value; - return token = 7; - } - else if (pos + 2 < len && (text.charCodeAt(pos + 1) === 79 || text.charCodeAt(pos + 1) === 111)) { - pos += 2; - var value = scanBinaryOrOctalDigits(8); - if (value < 0) { - error(ts.Diagnostics.Octal_digit_expected); - value = 0; - } - tokenValue = "" + value; - return token = 7; - } - if (pos + 1 < len && isOctalDigit(text.charCodeAt(pos + 1))) { - tokenValue = "" + scanOctalDigits(); - return token = 7; - } - case 49: - case 50: - case 51: - case 52: - case 53: - case 54: - case 55: - case 56: - case 57: - tokenValue = "" + scanNumber(); - return token = 7; - case 58: - return pos++, token = 51; - case 59: - return pos++, token = 22; - case 60: - if (isConflictMarkerTrivia(text, pos)) { - pos = scanConflictMarkerTrivia(text, pos, error); - if (skipTrivia) { - continue; - } - else { - return token = 6; - } - } - if (text.charCodeAt(pos + 1) === 60) { - if (text.charCodeAt(pos + 2) === 61) { - return pos += 3, token = 59; - } - return pos += 2, token = 40; - } - if (text.charCodeAt(pos + 1) === 61) { - return pos += 2, token = 26; - } - return pos++, token = 24; - case 61: - if (isConflictMarkerTrivia(text, pos)) { - pos = scanConflictMarkerTrivia(text, pos, error); - if (skipTrivia) { - continue; - } - else { - return token = 6; - } - } - if (text.charCodeAt(pos + 1) === 61) { - if (text.charCodeAt(pos + 2) === 61) { - return pos += 3, token = 30; - } - return pos += 2, token = 28; - } - if (text.charCodeAt(pos + 1) === 62) { - return pos += 2, token = 32; - } - return pos++, token = 53; - case 62: - if (isConflictMarkerTrivia(text, pos)) { - pos = scanConflictMarkerTrivia(text, pos, error); - if (skipTrivia) { - continue; - } - else { - return token = 6; - } - } - return pos++, token = 25; - case 63: - return pos++, token = 50; - case 91: - return pos++, token = 18; - case 93: - return pos++, token = 19; - case 94: - if (text.charCodeAt(pos + 1) === 61) { - return pos += 2, token = 64; - } - return pos++, token = 45; - case 123: - return pos++, token = 14; - case 124: - if (text.charCodeAt(pos + 1) === 124) { - return pos += 2, token = 49; - } - if (text.charCodeAt(pos + 1) === 61) { - return pos += 2, token = 63; - } - return pos++, token = 44; - case 125: - return pos++, token = 15; - case 126: - return pos++, token = 47; - case 64: - return pos++, token = 52; - case 92: - var cookedChar = peekUnicodeEscape(); - if (cookedChar >= 0 && isIdentifierStart(cookedChar)) { - pos += 6; - tokenValue = String.fromCharCode(cookedChar) + scanIdentifierParts(); - return token = getIdentifierToken(); - } - error(ts.Diagnostics.Invalid_character); - return pos++, token = 0; - default: - if (isIdentifierStart(ch)) { - pos++; - while (pos < len && isIdentifierPart(ch = text.charCodeAt(pos))) - pos++; - tokenValue = text.substring(tokenPos, pos); - if (ch === 92) { - tokenValue += scanIdentifierParts(); - } - return token = getIdentifierToken(); - } - else if (isWhiteSpace(ch)) { - pos++; - continue; - } - else if (isLineBreak(ch)) { - precedingLineBreak = true; - pos++; - continue; - } - error(ts.Diagnostics.Invalid_character); - return pos++, token = 0; - } - } - } - function reScanGreaterToken() { - if (token === 25) { - if (text.charCodeAt(pos) === 62) { - if (text.charCodeAt(pos + 1) === 62) { - if (text.charCodeAt(pos + 2) === 61) { - return pos += 3, token = 61; - } - return pos += 2, token = 42; - } - if (text.charCodeAt(pos + 1) === 61) { - return pos += 2, token = 60; - } - return pos++, token = 41; - } - if (text.charCodeAt(pos) === 61) { - return pos++, token = 27; - } - } - return token; - } - function reScanSlashToken() { - if (token === 36 || token === 57) { - var p = tokenPos + 1; - var inEscape = false; - var inCharacterClass = false; - while (true) { - if (p >= len) { - tokenIsUnterminated = true; - error(ts.Diagnostics.Unterminated_regular_expression_literal); - break; - } - var ch = text.charCodeAt(p); - if (isLineBreak(ch)) { - tokenIsUnterminated = true; - error(ts.Diagnostics.Unterminated_regular_expression_literal); - break; - } - if (inEscape) { - inEscape = false; - } - else if (ch === 47 && !inCharacterClass) { - p++; - break; - } - else if (ch === 91) { - inCharacterClass = true; - } - else if (ch === 92) { - inEscape = true; - } - else if (ch === 93) { - inCharacterClass = false; - } - p++; - } - while (p < len && isIdentifierPart(text.charCodeAt(p))) { - p++; - } - pos = p; - tokenValue = text.substring(tokenPos, pos); - token = 9; - } - return token; - } - function reScanTemplateToken() { - ts.Debug.assert(token === 15, "'reScanTemplateToken' should only be called on a '}'"); - pos = tokenPos; - return token = scanTemplateAndSetTokenValue(); - } - function speculationHelper(callback, isLookahead) { - var savePos = pos; - var saveStartPos = startPos; - var saveTokenPos = tokenPos; - var saveToken = token; - var saveTokenValue = tokenValue; - var savePrecedingLineBreak = precedingLineBreak; - var result = callback(); - if (!result || isLookahead) { - pos = savePos; - startPos = saveStartPos; - tokenPos = saveTokenPos; - token = saveToken; - tokenValue = saveTokenValue; - precedingLineBreak = savePrecedingLineBreak; - } - return result; - } - function lookAhead(callback) { - return speculationHelper(callback, true); - } - function tryScan(callback) { - return speculationHelper(callback, false); - } - function setText(newText) { - text = newText || ""; - len = text.length; - setTextPos(0); - } - function setTextPos(textPos) { - pos = textPos; - startPos = textPos; - tokenPos = textPos; - token = 0; - precedingLineBreak = false; - } - setText(text); - return { - getStartPos: function () { return startPos; }, - getTextPos: function () { return pos; }, - getToken: function () { return token; }, - getTokenPos: function () { return tokenPos; }, - getTokenText: function () { return text.substring(tokenPos, pos); }, - getTokenValue: function () { return tokenValue; }, - hasExtendedUnicodeEscape: function () { return hasExtendedUnicodeEscape; }, - hasPrecedingLineBreak: function () { return precedingLineBreak; }, - isIdentifier: function () { return token === 65 || token > 101; }, - isReservedWord: function () { return token >= 66 && token <= 101; }, - isUnterminated: function () { return tokenIsUnterminated; }, - reScanGreaterToken: reScanGreaterToken, - reScanSlashToken: reScanSlashToken, - reScanTemplateToken: reScanTemplateToken, - scan: scan, - setText: setText, - setTextPos: setTextPos, - tryScan: tryScan, - lookAhead: lookAhead - }; - } - ts.createScanner = createScanner; -})(ts || (ts = {})); -/// -/// -/// -/// -var ts; -(function (ts) { - ts.optionDeclarations = [ - { - name: "charset", - type: "string" - }, - { - name: "codepage", - type: "number" - }, - { - name: "declaration", - shortName: "d", - type: "boolean", - description: ts.Diagnostics.Generates_corresponding_d_ts_file - }, - { - name: "diagnostics", - type: "boolean" - }, - { - name: "emitBOM", - type: "boolean" - }, - { - name: "help", - shortName: "h", - type: "boolean", - description: ts.Diagnostics.Print_this_message - }, - { - name: "listFiles", - type: "boolean" - }, - { - name: "locale", - type: "string" - }, - { - name: "mapRoot", - type: "string", - isFilePath: true, - description: ts.Diagnostics.Specifies_the_location_where_debugger_should_locate_map_files_instead_of_generated_locations, - paramType: ts.Diagnostics.LOCATION - }, - { - name: "module", - shortName: "m", - type: { - "commonjs": 1, - "amd": 2 - }, - description: ts.Diagnostics.Specify_module_code_generation_Colon_commonjs_or_amd, - paramType: ts.Diagnostics.KIND, - error: ts.Diagnostics.Argument_for_module_option_must_be_commonjs_or_amd - }, - { - name: "noEmit", - type: "boolean", - description: ts.Diagnostics.Do_not_emit_outputs - }, - { - name: "noEmitOnError", - type: "boolean", - description: ts.Diagnostics.Do_not_emit_outputs_if_any_type_checking_errors_were_reported - }, - { - name: "noImplicitAny", - type: "boolean", - description: ts.Diagnostics.Raise_error_on_expressions_and_declarations_with_an_implied_any_type - }, - { - name: "noLib", - type: "boolean" - }, - { - name: "noLibCheck", - type: "boolean" - }, - { - name: "noResolve", - type: "boolean" - }, - { - name: "out", - type: "string", - description: ts.Diagnostics.Concatenate_and_emit_output_to_single_file, - paramType: ts.Diagnostics.FILE - }, - { - name: "outDir", - type: "string", - isFilePath: true, - description: ts.Diagnostics.Redirect_output_structure_to_the_directory, - paramType: ts.Diagnostics.DIRECTORY - }, - { - name: "preserveConstEnums", - type: "boolean", - description: ts.Diagnostics.Do_not_erase_const_enum_declarations_in_generated_code - }, - { - name: "project", - shortName: "p", - type: "string", - isFilePath: true, - description: ts.Diagnostics.Compile_the_project_in_the_given_directory, - paramType: ts.Diagnostics.DIRECTORY - }, - { - name: "removeComments", - type: "boolean", - description: ts.Diagnostics.Do_not_emit_comments_to_output - }, - { - name: "sourceMap", - type: "boolean", - description: ts.Diagnostics.Generates_corresponding_map_file - }, - { - name: "sourceRoot", - type: "string", - isFilePath: true, - description: ts.Diagnostics.Specifies_the_location_where_debugger_should_locate_TypeScript_files_instead_of_source_locations, - paramType: ts.Diagnostics.LOCATION - }, - { - name: "suppressImplicitAnyIndexErrors", - type: "boolean", - description: ts.Diagnostics.Suppress_noImplicitAny_errors_for_indexing_objects_lacking_index_signatures - }, - { - name: "stripInternal", - type: "boolean", - description: ts.Diagnostics.Do_not_emit_declarations_for_code_that_has_an_internal_annotation, - experimental: true - }, - { - name: "preserveNewLines", - type: "boolean", - description: ts.Diagnostics.Preserve_new_lines_when_emitting_code, - experimental: true - }, - { - name: "cacheDownlevelForOfLength", - type: "boolean", - description: "Cache length access when downlevel emitting for-of statements", - experimental: true - }, - { - name: "target", - shortName: "t", - type: { "es3": 0, "es5": 1, "es6": 2 }, - description: ts.Diagnostics.Specify_ECMAScript_target_version_Colon_ES3_default_ES5_or_ES6_experimental, - paramType: ts.Diagnostics.VERSION, - error: ts.Diagnostics.Argument_for_target_option_must_be_es3_es5_or_es6 - }, - { - name: "version", - shortName: "v", - type: "boolean", - description: ts.Diagnostics.Print_the_compiler_s_version - }, - { - name: "watch", - shortName: "w", - type: "boolean", - description: ts.Diagnostics.Watch_input_files - } - ]; - function parseCommandLine(commandLine) { - var options = {}; - var fileNames = []; - var errors = []; - var shortOptionNames = {}; - var optionNameMap = {}; - ts.forEach(ts.optionDeclarations, function (option) { - optionNameMap[option.name.toLowerCase()] = option; - if (option.shortName) { - shortOptionNames[option.shortName] = option.name; - } - }); - parseStrings(commandLine); - return { - options: options, - fileNames: fileNames, - errors: errors - }; - function parseStrings(args) { - var i = 0; - while (i < args.length) { - var s = args[i++]; - if (s.charCodeAt(0) === 64) { - parseResponseFile(s.slice(1)); - } - else if (s.charCodeAt(0) === 45) { - s = s.slice(s.charCodeAt(1) === 45 ? 2 : 1).toLowerCase(); - if (ts.hasProperty(shortOptionNames, s)) { - s = shortOptionNames[s]; - } - if (ts.hasProperty(optionNameMap, s)) { - var opt = optionNameMap[s]; - if (!args[i] && opt.type !== "boolean") { - errors.push(ts.createCompilerDiagnostic(ts.Diagnostics.Compiler_option_0_expects_an_argument, opt.name)); - } - switch (opt.type) { - case "number": - options[opt.name] = parseInt(args[i++]); - break; - case "boolean": - options[opt.name] = true; - break; - case "string": - options[opt.name] = args[i++] || ""; - break; - default: - var map = opt.type; - var key = (args[i++] || "").toLowerCase(); - if (ts.hasProperty(map, key)) { - options[opt.name] = map[key]; - } - else { - errors.push(ts.createCompilerDiagnostic(opt.error)); - } - } - } - else { - errors.push(ts.createCompilerDiagnostic(ts.Diagnostics.Unknown_compiler_option_0, s)); - } - } - else { - fileNames.push(s); - } - } - } - function parseResponseFile(fileName) { - var text = ts.sys.readFile(fileName); - if (!text) { - errors.push(ts.createCompilerDiagnostic(ts.Diagnostics.File_0_not_found, fileName)); - return; - } - var args = []; - var pos = 0; - while (true) { - while (pos < text.length && text.charCodeAt(pos) <= 32) - pos++; - if (pos >= text.length) - break; - var start = pos; - if (text.charCodeAt(start) === 34) { - pos++; - while (pos < text.length && text.charCodeAt(pos) !== 34) - pos++; - if (pos < text.length) { - args.push(text.substring(start + 1, pos)); - pos++; - } - else { - errors.push(ts.createCompilerDiagnostic(ts.Diagnostics.Unterminated_quoted_string_in_response_file_0, fileName)); - } - } - else { - while (text.charCodeAt(pos) > 32) - pos++; - args.push(text.substring(start, pos)); - } - } - parseStrings(args); - } - } - ts.parseCommandLine = parseCommandLine; - function readConfigFile(fileName) { - try { - var text = ts.sys.readFile(fileName); - return /\S/.test(text) ? JSON.parse(text) : {}; - } - catch (e) { - } - } - ts.readConfigFile = readConfigFile; - function parseConfigFile(json, basePath) { - var errors = []; - return { - options: getCompilerOptions(), - fileNames: getFiles(), - errors: errors - }; - function getCompilerOptions() { - var options = {}; - var optionNameMap = {}; - ts.forEach(ts.optionDeclarations, function (option) { - optionNameMap[option.name] = option; - }); - var jsonOptions = json["compilerOptions"]; - if (jsonOptions) { - for (var id in jsonOptions) { - if (ts.hasProperty(optionNameMap, id)) { - var opt = optionNameMap[id]; - var optType = opt.type; - var value = jsonOptions[id]; - var expectedType = typeof optType === "string" ? optType : "string"; - if (typeof value === expectedType) { - if (typeof optType !== "string") { - var key = value.toLowerCase(); - if (ts.hasProperty(optType, key)) { - value = optType[key]; - } - else { - errors.push(ts.createCompilerDiagnostic(opt.error)); - value = 0; - } - } - if (opt.isFilePath) { - value = ts.normalizePath(ts.combinePaths(basePath, value)); - } - options[opt.name] = value; - } - else { - errors.push(ts.createCompilerDiagnostic(ts.Diagnostics.Compiler_option_0_requires_a_value_of_type_1, id, expectedType)); - } - } - else { - errors.push(ts.createCompilerDiagnostic(ts.Diagnostics.Unknown_compiler_option_0, id)); - } - } - } - return options; - } - function getFiles() { - var files = []; - if (ts.hasProperty(json, "files")) { - if (json["files"] instanceof Array) { - var files = ts.map(json["files"], function (s) { return ts.combinePaths(basePath, s); }); - } - } - else { - var sysFiles = ts.sys.readDirectory(basePath, ".ts"); - for (var i = 0; i < sysFiles.length; i++) { - var name = sysFiles[i]; - if (!ts.fileExtensionIs(name, ".d.ts") || !ts.contains(sysFiles, name.substr(0, name.length - 5) + ".ts")) { - files.push(name); - } - } - } - return files; - } - } - ts.parseConfigFile = parseConfigFile; -})(ts || (ts = {})); -/// -var ts; -(function (ts) { - function getDeclarationOfKind(symbol, kind) { - var declarations = symbol.declarations; - for (var _i = 0, _n = declarations.length; _i < _n; _i++) { - var declaration = declarations[_i]; - if (declaration.kind === kind) { - return declaration; - } - } - return undefined; - } - ts.getDeclarationOfKind = getDeclarationOfKind; - var stringWriters = []; - function getSingleLineStringWriter() { - if (stringWriters.length == 0) { - var str = ""; - var writeText = function (text) { return str += text; }; - return { - string: function () { return str; }, - writeKeyword: writeText, - writeOperator: writeText, - writePunctuation: writeText, - writeSpace: writeText, - writeStringLiteral: writeText, - writeParameter: writeText, - writeSymbol: writeText, - writeLine: function () { return str += " "; }, - increaseIndent: function () { }, - decreaseIndent: function () { }, - clear: function () { return str = ""; }, - trackSymbol: function () { } - }; - } - return stringWriters.pop(); - } - ts.getSingleLineStringWriter = getSingleLineStringWriter; - function releaseStringWriter(writer) { - writer.clear(); - stringWriters.push(writer); - } - ts.releaseStringWriter = releaseStringWriter; - function getFullWidth(node) { - return node.end - node.pos; - } - ts.getFullWidth = getFullWidth; - function containsParseError(node) { - aggregateChildData(node); - return (node.parserContextFlags & 64) !== 0; - } - ts.containsParseError = containsParseError; - function aggregateChildData(node) { - if (!(node.parserContextFlags & 128)) { - var thisNodeOrAnySubNodesHasError = ((node.parserContextFlags & 32) !== 0) || - ts.forEachChild(node, containsParseError); - if (thisNodeOrAnySubNodesHasError) { - node.parserContextFlags |= 64; - } - node.parserContextFlags |= 128; - } - } - function getSourceFileOfNode(node) { - while (node && node.kind !== 224) { - node = node.parent; - } - return node; - } - ts.getSourceFileOfNode = getSourceFileOfNode; - function getStartPositionOfLine(line, sourceFile) { - ts.Debug.assert(line >= 0); - return ts.getLineStarts(sourceFile)[line]; - } - ts.getStartPositionOfLine = getStartPositionOfLine; - function nodePosToString(node) { - var file = getSourceFileOfNode(node); - var loc = ts.getLineAndCharacterOfPosition(file, node.pos); - return file.fileName + "(" + (loc.line + 1) + "," + (loc.character + 1) + ")"; - } - ts.nodePosToString = nodePosToString; - function getStartPosOfNode(node) { - return node.pos; - } - ts.getStartPosOfNode = getStartPosOfNode; - function nodeIsMissing(node) { - if (!node) { - return true; - } - return node.pos === node.end && node.kind !== 1; - } - ts.nodeIsMissing = nodeIsMissing; - function nodeIsPresent(node) { - return !nodeIsMissing(node); - } - ts.nodeIsPresent = nodeIsPresent; - function getTokenPosOfNode(node, sourceFile) { - if (nodeIsMissing(node)) { - return node.pos; - } - return ts.skipTrivia((sourceFile || getSourceFileOfNode(node)).text, node.pos); - } - ts.getTokenPosOfNode = getTokenPosOfNode; - function getSourceTextOfNodeFromSourceFile(sourceFile, node) { - if (nodeIsMissing(node)) { - return ""; - } - var text = sourceFile.text; - return text.substring(ts.skipTrivia(text, node.pos), node.end); - } - ts.getSourceTextOfNodeFromSourceFile = getSourceTextOfNodeFromSourceFile; - function getTextOfNodeFromSourceText(sourceText, node) { - if (nodeIsMissing(node)) { - return ""; - } - return sourceText.substring(ts.skipTrivia(sourceText, node.pos), node.end); - } - ts.getTextOfNodeFromSourceText = getTextOfNodeFromSourceText; - function getTextOfNode(node) { - return getSourceTextOfNodeFromSourceFile(getSourceFileOfNode(node), node); - } - ts.getTextOfNode = getTextOfNode; - function escapeIdentifier(identifier) { - return identifier.length >= 2 && identifier.charCodeAt(0) === 95 && identifier.charCodeAt(1) === 95 ? "_" + identifier : identifier; - } - ts.escapeIdentifier = escapeIdentifier; - function unescapeIdentifier(identifier) { - return identifier.length >= 3 && identifier.charCodeAt(0) === 95 && identifier.charCodeAt(1) === 95 && identifier.charCodeAt(2) === 95 ? identifier.substr(1) : identifier; - } - ts.unescapeIdentifier = unescapeIdentifier; - function makeIdentifierFromModuleName(moduleName) { - return ts.getBaseFileName(moduleName).replace(/\W/g, "_"); - } - ts.makeIdentifierFromModuleName = makeIdentifierFromModuleName; - function isBlockOrCatchScoped(declaration) { - return (getCombinedNodeFlags(declaration) & 12288) !== 0 || - isCatchClauseVariableDeclaration(declaration); - } - ts.isBlockOrCatchScoped = isBlockOrCatchScoped; - function getEnclosingBlockScopeContainer(node) { - var current = node; - while (current) { - if (isFunctionLike(current)) { - return current; - } - switch (current.kind) { - case 224: - case 204: - case 220: - case 202: - case 183: - case 184: - case 185: - return current; - case 176: - if (!isFunctionLike(current.parent)) { - return current; - } - } - current = current.parent; - } - } - ts.getEnclosingBlockScopeContainer = getEnclosingBlockScopeContainer; - function isCatchClauseVariableDeclaration(declaration) { - return declaration && - declaration.kind === 195 && - declaration.parent && - declaration.parent.kind === 220; - } - ts.isCatchClauseVariableDeclaration = isCatchClauseVariableDeclaration; - function declarationNameToString(name) { - return getFullWidth(name) === 0 ? "(Missing)" : getTextOfNode(name); - } - ts.declarationNameToString = declarationNameToString; - function createDiagnosticForNode(node, message, arg0, arg1, arg2) { - var sourceFile = getSourceFileOfNode(node); - var span = getErrorSpanForNode(sourceFile, node); - return ts.createFileDiagnostic(sourceFile, span.start, span.length, message, arg0, arg1, arg2); - } - ts.createDiagnosticForNode = createDiagnosticForNode; - function createDiagnosticForNodeFromMessageChain(node, messageChain) { - var sourceFile = getSourceFileOfNode(node); - var span = getErrorSpanForNode(sourceFile, node); - return { - file: sourceFile, - start: span.start, - length: span.length, - code: messageChain.code, - category: messageChain.category, - messageText: messageChain.next ? messageChain : messageChain.messageText - }; - } - ts.createDiagnosticForNodeFromMessageChain = createDiagnosticForNodeFromMessageChain; - function getSpanOfTokenAtPosition(sourceFile, pos) { - var scanner = ts.createScanner(sourceFile.languageVersion, true, sourceFile.text); - scanner.setTextPos(pos); - scanner.scan(); - var start = scanner.getTokenPos(); - return createTextSpanFromBounds(start, scanner.getTextPos()); - } - ts.getSpanOfTokenAtPosition = getSpanOfTokenAtPosition; - function getErrorSpanForNode(sourceFile, node) { - var errorNode = node; - switch (node.kind) { - case 195: - case 152: - case 198: - case 199: - case 202: - case 201: - case 223: - case 197: - case 162: - errorNode = node.name; - break; - } - if (errorNode === undefined) { - return getSpanOfTokenAtPosition(sourceFile, node.pos); - } - var pos = nodeIsMissing(errorNode) - ? errorNode.pos - : ts.skipTrivia(sourceFile.text, errorNode.pos); - return createTextSpanFromBounds(pos, errorNode.end); - } - ts.getErrorSpanForNode = getErrorSpanForNode; - function isExternalModule(file) { - return file.externalModuleIndicator !== undefined; - } - ts.isExternalModule = isExternalModule; - function isDeclarationFile(file) { - return (file.flags & 2048) !== 0; - } - ts.isDeclarationFile = isDeclarationFile; - function isConstEnumDeclaration(node) { - return node.kind === 201 && isConst(node); - } - ts.isConstEnumDeclaration = isConstEnumDeclaration; - function walkUpBindingElementsAndPatterns(node) { - while (node && (node.kind === 152 || isBindingPattern(node))) { - node = node.parent; - } - return node; - } - function getCombinedNodeFlags(node) { - node = walkUpBindingElementsAndPatterns(node); - var flags = node.flags; - if (node.kind === 195) { - node = node.parent; - } - if (node && node.kind === 196) { - flags |= node.flags; - node = node.parent; - } - if (node && node.kind === 177) { - flags |= node.flags; - } - return flags; - } - ts.getCombinedNodeFlags = getCombinedNodeFlags; - function isConst(node) { - return !!(getCombinedNodeFlags(node) & 8192); - } - ts.isConst = isConst; - function isLet(node) { - return !!(getCombinedNodeFlags(node) & 4096); - } - ts.isLet = isLet; - function isPrologueDirective(node) { - return node.kind === 179 && node.expression.kind === 8; - } - ts.isPrologueDirective = isPrologueDirective; - function getLeadingCommentRangesOfNode(node, sourceFileOfNode) { - if (node.kind === 129 || node.kind === 128) { - return ts.concatenate(ts.getTrailingCommentRanges(sourceFileOfNode.text, node.pos), ts.getLeadingCommentRanges(sourceFileOfNode.text, node.pos)); - } - else { - return ts.getLeadingCommentRanges(sourceFileOfNode.text, node.pos); - } - } - ts.getLeadingCommentRangesOfNode = getLeadingCommentRangesOfNode; - function getJsDocComments(node, sourceFileOfNode) { - return ts.filter(getLeadingCommentRangesOfNode(node, sourceFileOfNode), isJsDocComment); - function isJsDocComment(comment) { - return sourceFileOfNode.text.charCodeAt(comment.pos + 1) === 42 && - sourceFileOfNode.text.charCodeAt(comment.pos + 2) === 42 && - sourceFileOfNode.text.charCodeAt(comment.pos + 3) !== 47; - } - } - ts.getJsDocComments = getJsDocComments; - ts.fullTripleSlashReferencePathRegEx = /^(\/\/\/\s*/; - function forEachReturnStatement(body, visitor) { - return traverse(body); - function traverse(node) { - switch (node.kind) { - case 188: - return visitor(node); - case 204: - case 176: - case 180: - case 181: - case 182: - case 183: - case 184: - case 185: - case 189: - case 190: - case 217: - case 218: - case 191: - case 193: - case 220: - return ts.forEachChild(node, traverse); - } - } - } - ts.forEachReturnStatement = forEachReturnStatement; - function isVariableLike(node) { - if (node) { - switch (node.kind) { - case 152: - case 223: - case 129: - case 221: - case 132: - case 131: - case 222: - case 195: - return true; - } - } - return false; - } - ts.isVariableLike = isVariableLike; - function isFunctionLike(node) { - if (node) { - switch (node.kind) { - case 135: - case 162: - case 197: - case 163: - case 134: - case 133: - case 136: - case 137: - case 138: - case 139: - case 140: - case 142: - case 143: - case 162: - case 163: - case 197: - return true; - } - } - return false; - } - ts.isFunctionLike = isFunctionLike; - function isFunctionBlock(node) { - return node && node.kind === 176 && isFunctionLike(node.parent); - } - ts.isFunctionBlock = isFunctionBlock; - function isObjectLiteralMethod(node) { - return node && node.kind === 134 && node.parent.kind === 154; - } - ts.isObjectLiteralMethod = isObjectLiteralMethod; - function getContainingFunction(node) { - while (true) { - node = node.parent; - if (!node || isFunctionLike(node)) { - return node; - } - } - } - ts.getContainingFunction = getContainingFunction; - function getThisContainer(node, includeArrowFunctions) { - while (true) { - node = node.parent; - if (!node) { - return undefined; - } - switch (node.kind) { - case 127: - if (node.parent.parent.kind === 198) { - return node; - } - node = node.parent; - break; - case 163: - if (!includeArrowFunctions) { - continue; - } - case 197: - case 162: - case 202: - case 132: - case 131: - case 134: - case 133: - case 135: - case 136: - case 137: - case 201: - case 224: - return node; - } - } - } - ts.getThisContainer = getThisContainer; - function getSuperContainer(node, includeFunctions) { - while (true) { - node = node.parent; - if (!node) - return node; - switch (node.kind) { - case 127: - if (node.parent.parent.kind === 198) { - return node; - } - node = node.parent; - break; - case 197: - case 162: - case 163: - if (!includeFunctions) { - continue; - } - case 132: - case 131: - case 134: - case 133: - case 135: - case 136: - case 137: - return node; - } - } - } - ts.getSuperContainer = getSuperContainer; - function getInvokedExpression(node) { - if (node.kind === 159) { - return node.tag; - } - return node.expression; - } - ts.getInvokedExpression = getInvokedExpression; - function nodeCanBeDecorated(node) { - switch (node.kind) { - case 198: - return true; - case 132: - return node.parent.kind === 198; - case 129: - return node.parent.body && node.parent.parent.kind === 198; - case 136: - case 137: - case 134: - return node.body && node.parent.kind === 198; - } - return false; - } - ts.nodeCanBeDecorated = nodeCanBeDecorated; - function nodeIsDecorated(node) { - switch (node.kind) { - case 198: - if (node.decorators) { - return true; - } - return false; - case 132: - case 129: - if (node.decorators) { - return true; - } - return false; - case 136: - if (node.body && node.decorators) { - return true; - } - return false; - case 134: - case 137: - if (node.body && node.decorators) { - return true; - } - return false; - } - return false; - } - ts.nodeIsDecorated = nodeIsDecorated; - function childIsDecorated(node) { - switch (node.kind) { - case 198: - return ts.forEach(node.members, nodeOrChildIsDecorated); - case 134: - case 137: - return ts.forEach(node.parameters, nodeIsDecorated); - } - return false; - } - ts.childIsDecorated = childIsDecorated; - function nodeOrChildIsDecorated(node) { - return nodeIsDecorated(node) || childIsDecorated(node); - } - ts.nodeOrChildIsDecorated = nodeOrChildIsDecorated; - function isExpression(node) { - switch (node.kind) { - case 93: - case 91: - case 89: - case 95: - case 80: - case 9: - case 153: - case 154: - case 155: - case 156: - case 157: - case 158: - case 159: - case 160: - case 161: - case 162: - case 163: - case 166: - case 164: - case 165: - case 167: - case 168: - case 169: - case 170: - case 173: - case 171: - case 10: - case 174: - return true; - case 126: - while (node.parent.kind === 126) { - node = node.parent; - } - return node.parent.kind === 144; - case 65: - if (node.parent.kind === 144) { - return true; - } - case 7: - case 8: - var parent_1 = node.parent; - switch (parent_1.kind) { - case 195: - case 129: - case 132: - case 131: - case 223: - case 221: - case 152: - return parent_1.initializer === node; - case 179: - case 180: - case 181: - case 182: - case 188: - case 189: - case 190: - case 217: - case 192: - case 190: - return parent_1.expression === node; - case 183: - var forStatement = parent_1; - return (forStatement.initializer === node && forStatement.initializer.kind !== 196) || - forStatement.condition === node || - forStatement.iterator === node; - case 184: - case 185: - var forInStatement = parent_1; - return (forInStatement.initializer === node && forInStatement.initializer.kind !== 196) || - forInStatement.expression === node; - case 160: - return node === parent_1.expression; - case 175: - return node === parent_1.expression; - case 127: - return node === parent_1.expression; - default: - if (isExpression(parent_1)) { - return true; - } - } - } - return false; - } - ts.isExpression = isExpression; - function isInstantiatedModule(node, preserveConstEnums) { - var moduleState = ts.getModuleInstanceState(node); - return moduleState === 1 || - (preserveConstEnums && moduleState === 2); - } - ts.isInstantiatedModule = isInstantiatedModule; - function isExternalModuleImportEqualsDeclaration(node) { - return node.kind === 205 && node.moduleReference.kind === 216; - } - ts.isExternalModuleImportEqualsDeclaration = isExternalModuleImportEqualsDeclaration; - function getExternalModuleImportEqualsDeclarationExpression(node) { - ts.Debug.assert(isExternalModuleImportEqualsDeclaration(node)); - return node.moduleReference.expression; - } - ts.getExternalModuleImportEqualsDeclarationExpression = getExternalModuleImportEqualsDeclarationExpression; - function isInternalModuleImportEqualsDeclaration(node) { - return node.kind === 205 && node.moduleReference.kind !== 216; - } - ts.isInternalModuleImportEqualsDeclaration = isInternalModuleImportEqualsDeclaration; - function getExternalModuleName(node) { - if (node.kind === 206) { - return node.moduleSpecifier; - } - if (node.kind === 205) { - var reference = node.moduleReference; - if (reference.kind === 216) { - return reference.expression; - } - } - if (node.kind === 212) { - return node.moduleSpecifier; - } - } - ts.getExternalModuleName = getExternalModuleName; - function hasDotDotDotToken(node) { - return node && node.kind === 129 && node.dotDotDotToken !== undefined; - } - ts.hasDotDotDotToken = hasDotDotDotToken; - function hasQuestionToken(node) { - if (node) { - switch (node.kind) { - case 129: - return node.questionToken !== undefined; - case 134: - case 133: - return node.questionToken !== undefined; - case 222: - case 221: - case 132: - case 131: - return node.questionToken !== undefined; - } - } - return false; - } - ts.hasQuestionToken = hasQuestionToken; - function hasRestParameters(s) { - return s.parameters.length > 0 && s.parameters[s.parameters.length - 1].dotDotDotToken !== undefined; - } - ts.hasRestParameters = hasRestParameters; - function isLiteralKind(kind) { - return 7 <= kind && kind <= 10; - } - ts.isLiteralKind = isLiteralKind; - function isTextualLiteralKind(kind) { - return kind === 8 || kind === 10; - } - ts.isTextualLiteralKind = isTextualLiteralKind; - function isTemplateLiteralKind(kind) { - return 10 <= kind && kind <= 13; - } - ts.isTemplateLiteralKind = isTemplateLiteralKind; - function isBindingPattern(node) { - return !!node && (node.kind === 151 || node.kind === 150); - } - ts.isBindingPattern = isBindingPattern; - function isInAmbientContext(node) { - while (node) { - if (node.flags & (2 | 2048)) { - return true; - } - node = node.parent; - } - return false; - } - ts.isInAmbientContext = isInAmbientContext; - function isDeclaration(node) { - switch (node.kind) { - case 163: - case 152: - case 198: - case 135: - case 201: - case 223: - case 214: - case 197: - case 162: - case 136: - case 207: - case 205: - case 210: - case 199: - case 134: - case 133: - case 202: - case 208: - case 129: - case 221: - case 132: - case 131: - case 137: - case 222: - case 200: - case 128: - case 195: - return true; - } - return false; - } - ts.isDeclaration = isDeclaration; - function isStatement(n) { - switch (n.kind) { - case 187: - case 186: - case 194: - case 181: - case 179: - case 178: - case 184: - case 185: - case 183: - case 180: - case 191: - case 188: - case 190: - case 94: - case 193: - case 177: - case 182: - case 189: - case 211: - return true; - default: - return false; - } - } - ts.isStatement = isStatement; - function isClassElement(n) { - switch (n.kind) { - case 135: - case 132: - case 134: - case 136: - case 137: - case 140: - return true; - default: - return false; - } - } - ts.isClassElement = isClassElement; - function isDeclarationName(name) { - if (name.kind !== 65 && name.kind !== 8 && name.kind !== 7) { - return false; - } - var parent = name.parent; - if (parent.kind === 210 || parent.kind === 214) { - if (parent.propertyName) { - return true; - } - } - if (isDeclaration(parent)) { - return parent.name === name; - } - return false; - } - ts.isDeclarationName = isDeclarationName; - function isAliasSymbolDeclaration(node) { - return node.kind === 205 || - node.kind === 207 && !!node.name || - node.kind === 208 || - node.kind === 210 || - node.kind === 214 || - node.kind === 211 && node.expression.kind === 65; - } - ts.isAliasSymbolDeclaration = isAliasSymbolDeclaration; - function getClassBaseTypeNode(node) { - var heritageClause = getHeritageClause(node.heritageClauses, 79); - return heritageClause && heritageClause.types.length > 0 ? heritageClause.types[0] : undefined; - } - ts.getClassBaseTypeNode = getClassBaseTypeNode; - function getClassImplementedTypeNodes(node) { - var heritageClause = getHeritageClause(node.heritageClauses, 103); - return heritageClause ? heritageClause.types : undefined; - } - ts.getClassImplementedTypeNodes = getClassImplementedTypeNodes; - function getInterfaceBaseTypeNodes(node) { - var heritageClause = getHeritageClause(node.heritageClauses, 79); - return heritageClause ? heritageClause.types : undefined; - } - ts.getInterfaceBaseTypeNodes = getInterfaceBaseTypeNodes; - function getHeritageClause(clauses, kind) { - if (clauses) { - for (var _i = 0, _n = clauses.length; _i < _n; _i++) { - var clause = clauses[_i]; - if (clause.token === kind) { - return clause; - } - } - } - return undefined; - } - ts.getHeritageClause = getHeritageClause; - function tryResolveScriptReference(host, sourceFile, reference) { - if (!host.getCompilerOptions().noResolve) { - var referenceFileName = ts.isRootedDiskPath(reference.fileName) ? reference.fileName : ts.combinePaths(ts.getDirectoryPath(sourceFile.fileName), reference.fileName); - referenceFileName = ts.getNormalizedAbsolutePath(referenceFileName, host.getCurrentDirectory()); - return host.getSourceFile(referenceFileName); - } - } - ts.tryResolveScriptReference = tryResolveScriptReference; - function getAncestor(node, kind) { - while (node) { - if (node.kind === kind) { - return node; - } - node = node.parent; - } - return undefined; - } - ts.getAncestor = getAncestor; - function getFileReferenceFromReferencePath(comment, commentRange) { - var simpleReferenceRegEx = /^\/\/\/\s*/gim; - if (simpleReferenceRegEx.exec(comment)) { - if (isNoDefaultLibRegEx.exec(comment)) { - return { - isNoDefaultLib: true - }; - } - else { - var matchResult = ts.fullTripleSlashReferencePathRegEx.exec(comment); - if (matchResult) { - var start = commentRange.pos; - var end = commentRange.end; - return { - fileReference: { - pos: start, - end: end, - fileName: matchResult[3] - }, - isNoDefaultLib: false - }; - } - else { - return { - diagnosticMessage: ts.Diagnostics.Invalid_reference_directive_syntax, - isNoDefaultLib: false - }; - } - } - } - return undefined; - } - ts.getFileReferenceFromReferencePath = getFileReferenceFromReferencePath; - function isKeyword(token) { - return 66 <= token && token <= 125; - } - ts.isKeyword = isKeyword; - function isTrivia(token) { - return 2 <= token && token <= 6; - } - ts.isTrivia = isTrivia; - function hasDynamicName(declaration) { - return declaration.name && - declaration.name.kind === 127 && - !isWellKnownSymbolSyntactically(declaration.name.expression); - } - ts.hasDynamicName = hasDynamicName; - function isWellKnownSymbolSyntactically(node) { - return node.kind === 155 && isESSymbolIdentifier(node.expression); - } - ts.isWellKnownSymbolSyntactically = isWellKnownSymbolSyntactically; - function getPropertyNameForPropertyNameNode(name) { - if (name.kind === 65 || name.kind === 8 || name.kind === 7) { - return name.text; - } - if (name.kind === 127) { - var nameExpression = name.expression; - if (isWellKnownSymbolSyntactically(nameExpression)) { - var rightHandSideName = nameExpression.name.text; - return getPropertyNameForKnownSymbolName(rightHandSideName); - } - } - return undefined; - } - ts.getPropertyNameForPropertyNameNode = getPropertyNameForPropertyNameNode; - function getPropertyNameForKnownSymbolName(symbolName) { - return "__@" + symbolName; - } - ts.getPropertyNameForKnownSymbolName = getPropertyNameForKnownSymbolName; - function isESSymbolIdentifier(node) { - return node.kind === 65 && node.text === "Symbol"; - } - ts.isESSymbolIdentifier = isESSymbolIdentifier; - function isModifier(token) { - switch (token) { - case 109: - case 107: - case 108: - case 110: - case 78: - case 115: - case 70: - case 73: - return true; - } - return false; - } - ts.isModifier = isModifier; - function textSpanEnd(span) { - return span.start + span.length; - } - ts.textSpanEnd = textSpanEnd; - function textSpanIsEmpty(span) { - return span.length === 0; - } - ts.textSpanIsEmpty = textSpanIsEmpty; - function textSpanContainsPosition(span, position) { - return position >= span.start && position < textSpanEnd(span); - } - ts.textSpanContainsPosition = textSpanContainsPosition; - function textSpanContainsTextSpan(span, other) { - return other.start >= span.start && textSpanEnd(other) <= textSpanEnd(span); - } - ts.textSpanContainsTextSpan = textSpanContainsTextSpan; - function textSpanOverlapsWith(span, other) { - var overlapStart = Math.max(span.start, other.start); - var overlapEnd = Math.min(textSpanEnd(span), textSpanEnd(other)); - return overlapStart < overlapEnd; - } - ts.textSpanOverlapsWith = textSpanOverlapsWith; - function textSpanOverlap(span1, span2) { - var overlapStart = Math.max(span1.start, span2.start); - var overlapEnd = Math.min(textSpanEnd(span1), textSpanEnd(span2)); - if (overlapStart < overlapEnd) { - return createTextSpanFromBounds(overlapStart, overlapEnd); - } - return undefined; - } - ts.textSpanOverlap = textSpanOverlap; - function textSpanIntersectsWithTextSpan(span, other) { - return other.start <= textSpanEnd(span) && textSpanEnd(other) >= span.start; - } - ts.textSpanIntersectsWithTextSpan = textSpanIntersectsWithTextSpan; - function textSpanIntersectsWith(span, start, length) { - var end = start + length; - return start <= textSpanEnd(span) && end >= span.start; - } - ts.textSpanIntersectsWith = textSpanIntersectsWith; - function textSpanIntersectsWithPosition(span, position) { - return position <= textSpanEnd(span) && position >= span.start; - } - ts.textSpanIntersectsWithPosition = textSpanIntersectsWithPosition; - function textSpanIntersection(span1, span2) { - var intersectStart = Math.max(span1.start, span2.start); - var intersectEnd = Math.min(textSpanEnd(span1), textSpanEnd(span2)); - if (intersectStart <= intersectEnd) { - return createTextSpanFromBounds(intersectStart, intersectEnd); - } - return undefined; - } - ts.textSpanIntersection = textSpanIntersection; - function createTextSpan(start, length) { - if (start < 0) { - throw new Error("start < 0"); - } - if (length < 0) { - throw new Error("length < 0"); - } - return { start: start, length: length }; - } - ts.createTextSpan = createTextSpan; - function createTextSpanFromBounds(start, end) { - return createTextSpan(start, end - start); - } - ts.createTextSpanFromBounds = createTextSpanFromBounds; - function textChangeRangeNewSpan(range) { - return createTextSpan(range.span.start, range.newLength); - } - ts.textChangeRangeNewSpan = textChangeRangeNewSpan; - function textChangeRangeIsUnchanged(range) { - return textSpanIsEmpty(range.span) && range.newLength === 0; - } - ts.textChangeRangeIsUnchanged = textChangeRangeIsUnchanged; - function createTextChangeRange(span, newLength) { - if (newLength < 0) { - throw new Error("newLength < 0"); - } - return { span: span, newLength: newLength }; - } - ts.createTextChangeRange = createTextChangeRange; - ts.unchangedTextChangeRange = createTextChangeRange(createTextSpan(0, 0), 0); - function collapseTextChangeRangesAcrossMultipleVersions(changes) { - if (changes.length === 0) { - return ts.unchangedTextChangeRange; - } - if (changes.length === 1) { - return changes[0]; - } - var change0 = changes[0]; - var oldStartN = change0.span.start; - var oldEndN = textSpanEnd(change0.span); - var newEndN = oldStartN + change0.newLength; - for (var i = 1; i < changes.length; i++) { - var nextChange = changes[i]; - var oldStart1 = oldStartN; - var oldEnd1 = oldEndN; - var newEnd1 = newEndN; - var oldStart2 = nextChange.span.start; - var oldEnd2 = textSpanEnd(nextChange.span); - var newEnd2 = oldStart2 + nextChange.newLength; - oldStartN = Math.min(oldStart1, oldStart2); - oldEndN = Math.max(oldEnd1, oldEnd1 + (oldEnd2 - newEnd1)); - newEndN = Math.max(newEnd2, newEnd2 + (newEnd1 - oldEnd2)); - } - return createTextChangeRange(createTextSpanFromBounds(oldStartN, oldEndN), newEndN - oldStartN); - } - ts.collapseTextChangeRangesAcrossMultipleVersions = collapseTextChangeRangesAcrossMultipleVersions; - function nodeStartsNewLexicalEnvironment(n) { - return isFunctionLike(n) || n.kind === 202 || n.kind === 224; - } - ts.nodeStartsNewLexicalEnvironment = nodeStartsNewLexicalEnvironment; - function nodeIsSynthesized(node) { - return node.pos === -1; - } - ts.nodeIsSynthesized = nodeIsSynthesized; - function createSynthesizedNode(kind, startsOnNewLine) { - var node = ts.createNode(kind); - node.pos = -1; - node.end = -1; - node.startsOnNewLine = startsOnNewLine; - return node; - } - ts.createSynthesizedNode = createSynthesizedNode; - function createDiagnosticCollection() { - var nonFileDiagnostics = []; - var fileDiagnostics = {}; - var diagnosticsModified = false; - var modificationCount = 0; - return { - add: add, - getGlobalDiagnostics: getGlobalDiagnostics, - getDiagnostics: getDiagnostics, - getModificationCount: getModificationCount - }; - function getModificationCount() { - return modificationCount; - } - function add(diagnostic) { - var diagnostics; - if (diagnostic.file) { - diagnostics = fileDiagnostics[diagnostic.file.fileName]; - if (!diagnostics) { - diagnostics = []; - fileDiagnostics[diagnostic.file.fileName] = diagnostics; - } - } - else { - diagnostics = nonFileDiagnostics; - } - diagnostics.push(diagnostic); - diagnosticsModified = true; - modificationCount++; - } - function getGlobalDiagnostics() { - sortAndDeduplicate(); - return nonFileDiagnostics; - } - function getDiagnostics(fileName) { - sortAndDeduplicate(); - if (fileName) { - return fileDiagnostics[fileName] || []; - } - var allDiagnostics = []; - function pushDiagnostic(d) { - allDiagnostics.push(d); - } - ts.forEach(nonFileDiagnostics, pushDiagnostic); - for (var key in fileDiagnostics) { - if (ts.hasProperty(fileDiagnostics, key)) { - ts.forEach(fileDiagnostics[key], pushDiagnostic); - } - } - return ts.sortAndDeduplicateDiagnostics(allDiagnostics); - } - function sortAndDeduplicate() { - if (!diagnosticsModified) { - return; - } - diagnosticsModified = false; - nonFileDiagnostics = ts.sortAndDeduplicateDiagnostics(nonFileDiagnostics); - for (var key in fileDiagnostics) { - if (ts.hasProperty(fileDiagnostics, key)) { - fileDiagnostics[key] = ts.sortAndDeduplicateDiagnostics(fileDiagnostics[key]); - } - } - } - } - ts.createDiagnosticCollection = createDiagnosticCollection; - var escapedCharsRegExp = /[\\\"\u0000-\u001f\t\v\f\b\r\n\u2028\u2029\u0085]/g; - var escapedCharsMap = { - "\0": "\\0", - "\t": "\\t", - "\v": "\\v", - "\f": "\\f", - "\b": "\\b", - "\r": "\\r", - "\n": "\\n", - "\\": "\\\\", - "\"": "\\\"", - "\u2028": "\\u2028", - "\u2029": "\\u2029", - "\u0085": "\\u0085" - }; - function escapeString(s) { - s = escapedCharsRegExp.test(s) ? s.replace(escapedCharsRegExp, getReplacement) : s; - return s; - function getReplacement(c) { - return escapedCharsMap[c] || get16BitUnicodeEscapeSequence(c.charCodeAt(0)); - } - } - ts.escapeString = escapeString; - function get16BitUnicodeEscapeSequence(charCode) { - var hexCharCode = charCode.toString(16).toUpperCase(); - var paddedHexCode = ("0000" + hexCharCode).slice(-4); - return "\\u" + paddedHexCode; - } - var nonAsciiCharacters = /[^\u0000-\u007F]/g; - function escapeNonAsciiCharacters(s) { - return nonAsciiCharacters.test(s) ? - s.replace(nonAsciiCharacters, function (c) { return get16BitUnicodeEscapeSequence(c.charCodeAt(0)); }) : - s; - } - ts.escapeNonAsciiCharacters = escapeNonAsciiCharacters; - var indentStrings = ["", " "]; - function getIndentString(level) { - if (indentStrings[level] === undefined) { - indentStrings[level] = getIndentString(level - 1) + indentStrings[1]; - } - return indentStrings[level]; - } - ts.getIndentString = getIndentString; - function getIndentSize() { - return indentStrings[1].length; - } - ts.getIndentSize = getIndentSize; - function createTextWriter(newLine) { - var output = ""; - var indent = 0; - var lineStart = true; - var lineCount = 0; - var linePos = 0; - function write(s) { - if (s && s.length) { - if (lineStart) { - output += getIndentString(indent); - lineStart = false; - } - output += s; - } - } - function rawWrite(s) { - if (s !== undefined) { - if (lineStart) { - lineStart = false; - } - output += s; - } - } - function writeLiteral(s) { - if (s && s.length) { - write(s); - var lineStartsOfS = ts.computeLineStarts(s); - if (lineStartsOfS.length > 1) { - lineCount = lineCount + lineStartsOfS.length - 1; - linePos = output.length - s.length + lineStartsOfS[lineStartsOfS.length - 1]; - } - } - } - function writeLine() { - if (!lineStart) { - output += newLine; - lineCount++; - linePos = output.length; - lineStart = true; - } - } - function writeTextOfNode(sourceFile, node) { - write(getSourceTextOfNodeFromSourceFile(sourceFile, node)); - } - return { - write: write, - rawWrite: rawWrite, - writeTextOfNode: writeTextOfNode, - writeLiteral: writeLiteral, - writeLine: writeLine, - increaseIndent: function () { return indent++; }, - decreaseIndent: function () { return indent--; }, - getIndent: function () { return indent; }, - getTextPos: function () { return output.length; }, - getLine: function () { return lineCount + 1; }, - getColumn: function () { return lineStart ? indent * getIndentSize() + 1 : output.length - linePos + 1; }, - getText: function () { return output; } - }; - } - ts.createTextWriter = createTextWriter; - function getOwnEmitOutputFilePath(sourceFile, host, extension) { - var compilerOptions = host.getCompilerOptions(); - var emitOutputFilePathWithoutExtension; - if (compilerOptions.outDir) { - emitOutputFilePathWithoutExtension = ts.removeFileExtension(getSourceFilePathInNewDir(sourceFile, host, compilerOptions.outDir)); - } - else { - emitOutputFilePathWithoutExtension = ts.removeFileExtension(sourceFile.fileName); - } - return emitOutputFilePathWithoutExtension + extension; - } - ts.getOwnEmitOutputFilePath = getOwnEmitOutputFilePath; - function getSourceFilePathInNewDir(sourceFile, host, newDirPath) { - var sourceFilePath = ts.getNormalizedAbsolutePath(sourceFile.fileName, host.getCurrentDirectory()); - sourceFilePath = sourceFilePath.replace(host.getCommonSourceDirectory(), ""); - return ts.combinePaths(newDirPath, sourceFilePath); - } - ts.getSourceFilePathInNewDir = getSourceFilePathInNewDir; - function writeFile(host, diagnostics, fileName, data, writeByteOrderMark) { - host.writeFile(fileName, data, writeByteOrderMark, function (hostErrorMessage) { - diagnostics.push(ts.createCompilerDiagnostic(ts.Diagnostics.Could_not_write_file_0_Colon_1, fileName, hostErrorMessage)); - }); - } - ts.writeFile = writeFile; - function getLineOfLocalPosition(currentSourceFile, pos) { - return ts.getLineAndCharacterOfPosition(currentSourceFile, pos).line; - } - ts.getLineOfLocalPosition = getLineOfLocalPosition; - function getFirstConstructorWithBody(node) { - return ts.forEach(node.members, function (member) { - if (member.kind === 135 && nodeIsPresent(member.body)) { - return member; - } - }); - } - ts.getFirstConstructorWithBody = getFirstConstructorWithBody; - function shouldEmitToOwnFile(sourceFile, compilerOptions) { - if (!isDeclarationFile(sourceFile)) { - if ((isExternalModule(sourceFile) || !compilerOptions.out) && !ts.fileExtensionIs(sourceFile.fileName, ".js")) { - return true; - } - return false; - } - return false; - } - ts.shouldEmitToOwnFile = shouldEmitToOwnFile; - function getAllAccessorDeclarations(declarations, accessor) { - var firstAccessor; - var secondAccessor; - var getAccessor; - var setAccessor; - if (hasDynamicName(accessor)) { - firstAccessor = accessor; - if (accessor.kind === 136) { - getAccessor = accessor; - } - else if (accessor.kind === 137) { - setAccessor = accessor; - } - else { - ts.Debug.fail("Accessor has wrong kind"); - } - } - else { - ts.forEach(declarations, function (member) { - if ((member.kind === 136 || member.kind === 137) - && (member.flags & 128) === (accessor.flags & 128)) { - var memberName = getPropertyNameForPropertyNameNode(member.name); - var accessorName = getPropertyNameForPropertyNameNode(accessor.name); - if (memberName === accessorName) { - if (!firstAccessor) { - firstAccessor = member; - } - else if (!secondAccessor) { - secondAccessor = member; - } - if (member.kind === 136 && !getAccessor) { - getAccessor = member; - } - if (member.kind === 137 && !setAccessor) { - setAccessor = member; - } - } - } - }); - } - return { - firstAccessor: firstAccessor, - secondAccessor: secondAccessor, - getAccessor: getAccessor, - setAccessor: setAccessor - }; - } - ts.getAllAccessorDeclarations = getAllAccessorDeclarations; - function emitNewLineBeforeLeadingComments(currentSourceFile, writer, node, leadingComments) { - if (leadingComments && leadingComments.length && node.pos !== leadingComments[0].pos && - getLineOfLocalPosition(currentSourceFile, node.pos) !== getLineOfLocalPosition(currentSourceFile, leadingComments[0].pos)) { - writer.writeLine(); - } - } - ts.emitNewLineBeforeLeadingComments = emitNewLineBeforeLeadingComments; - function emitComments(currentSourceFile, writer, comments, trailingSeparator, newLine, writeComment) { - var emitLeadingSpace = !trailingSeparator; - ts.forEach(comments, function (comment) { - if (emitLeadingSpace) { - writer.write(" "); - emitLeadingSpace = false; - } - writeComment(currentSourceFile, writer, comment, newLine); - if (comment.hasTrailingNewLine) { - writer.writeLine(); - } - else if (trailingSeparator) { - writer.write(" "); - } - else { - emitLeadingSpace = true; - } - }); - } - ts.emitComments = emitComments; - function writeCommentRange(currentSourceFile, writer, comment, newLine) { - if (currentSourceFile.text.charCodeAt(comment.pos + 1) === 42) { - var firstCommentLineAndCharacter = ts.getLineAndCharacterOfPosition(currentSourceFile, comment.pos); - var lineCount = ts.getLineStarts(currentSourceFile).length; - var firstCommentLineIndent; - for (var pos = comment.pos, currentLine = firstCommentLineAndCharacter.line; pos < comment.end; currentLine++) { - var nextLineStart = (currentLine + 1) === lineCount - ? currentSourceFile.text.length + 1 - : getStartPositionOfLine(currentLine + 1, currentSourceFile); - if (pos !== comment.pos) { - if (firstCommentLineIndent === undefined) { - firstCommentLineIndent = calculateIndent(getStartPositionOfLine(firstCommentLineAndCharacter.line, currentSourceFile), comment.pos); - } - var currentWriterIndentSpacing = writer.getIndent() * getIndentSize(); - var spacesToEmit = currentWriterIndentSpacing - firstCommentLineIndent + calculateIndent(pos, nextLineStart); - if (spacesToEmit > 0) { - var numberOfSingleSpacesToEmit = spacesToEmit % getIndentSize(); - var indentSizeSpaceString = getIndentString((spacesToEmit - numberOfSingleSpacesToEmit) / getIndentSize()); - writer.rawWrite(indentSizeSpaceString); - while (numberOfSingleSpacesToEmit) { - writer.rawWrite(" "); - numberOfSingleSpacesToEmit--; - } - } - else { - writer.rawWrite(""); - } - } - writeTrimmedCurrentLine(pos, nextLineStart); - pos = nextLineStart; - } - } - else { - writer.write(currentSourceFile.text.substring(comment.pos, comment.end)); - } - function writeTrimmedCurrentLine(pos, nextLineStart) { - var end = Math.min(comment.end, nextLineStart - 1); - var currentLineText = currentSourceFile.text.substring(pos, end).replace(/^\s+|\s+$/g, ''); - if (currentLineText) { - writer.write(currentLineText); - if (end !== comment.end) { - writer.writeLine(); - } - } - else { - writer.writeLiteral(newLine); - } - } - function calculateIndent(pos, end) { - var currentLineIndent = 0; - for (; pos < end && ts.isWhiteSpace(currentSourceFile.text.charCodeAt(pos)); pos++) { - if (currentSourceFile.text.charCodeAt(pos) === 9) { - currentLineIndent += getIndentSize() - (currentLineIndent % getIndentSize()); - } - else { - currentLineIndent++; - } - } - return currentLineIndent; - } - } - ts.writeCommentRange = writeCommentRange; -})(ts || (ts = {})); -/// -/// -var ts; -(function (ts) { - var nodeConstructors = new Array(226); - ts.parseTime = 0; - function getNodeConstructor(kind) { - return nodeConstructors[kind] || (nodeConstructors[kind] = ts.objectAllocator.getNodeConstructor(kind)); - } - ts.getNodeConstructor = getNodeConstructor; - function createNode(kind) { - return new (getNodeConstructor(kind))(); - } - ts.createNode = createNode; - function visitNode(cbNode, node) { - if (node) { - return cbNode(node); - } - } - function visitNodeArray(cbNodes, nodes) { - if (nodes) { - return cbNodes(nodes); - } - } - function visitEachNode(cbNode, nodes) { - if (nodes) { - for (var _i = 0, _n = nodes.length; _i < _n; _i++) { - var node = nodes[_i]; - var result = cbNode(node); - if (result) { - return result; - } - } - } - } - function forEachChild(node, cbNode, cbNodeArray) { - if (!node) { - return; - } - var visitNodes = cbNodeArray ? visitNodeArray : visitEachNode; - var cbNodes = cbNodeArray || cbNode; - switch (node.kind) { - case 126: - return visitNode(cbNode, node.left) || - visitNode(cbNode, node.right); - case 128: - return visitNode(cbNode, node.name) || - visitNode(cbNode, node.constraint) || - visitNode(cbNode, node.expression); - case 129: - case 132: - case 131: - case 221: - case 222: - case 195: - case 152: - return visitNodes(cbNodes, node.decorators) || - visitNodes(cbNodes, node.modifiers) || - visitNode(cbNode, node.propertyName) || - visitNode(cbNode, node.dotDotDotToken) || - visitNode(cbNode, node.name) || - visitNode(cbNode, node.questionToken) || - visitNode(cbNode, node.type) || - visitNode(cbNode, node.initializer); - case 142: - case 143: - case 138: - case 139: - case 140: - return visitNodes(cbNodes, node.decorators) || - visitNodes(cbNodes, node.modifiers) || - visitNodes(cbNodes, node.typeParameters) || - visitNodes(cbNodes, node.parameters) || - visitNode(cbNode, node.type); - case 134: - case 133: - case 135: - case 136: - case 137: - case 162: - case 197: - case 163: - return visitNodes(cbNodes, node.decorators) || - visitNodes(cbNodes, node.modifiers) || - visitNode(cbNode, node.asteriskToken) || - visitNode(cbNode, node.name) || - visitNode(cbNode, node.questionToken) || - visitNodes(cbNodes, node.typeParameters) || - visitNodes(cbNodes, node.parameters) || - visitNode(cbNode, node.type) || - visitNode(cbNode, node.equalsGreaterThanToken) || - visitNode(cbNode, node.body); - case 141: - return visitNode(cbNode, node.typeName) || - visitNodes(cbNodes, node.typeArguments); - case 144: - return visitNode(cbNode, node.exprName); - case 145: - return visitNodes(cbNodes, node.members); - case 146: - return visitNode(cbNode, node.elementType); - case 147: - return visitNodes(cbNodes, node.elementTypes); - case 148: - return visitNodes(cbNodes, node.types); - case 149: - return visitNode(cbNode, node.type); - case 150: - case 151: - return visitNodes(cbNodes, node.elements); - case 153: - return visitNodes(cbNodes, node.elements); - case 154: - return visitNodes(cbNodes, node.properties); - case 155: - return visitNode(cbNode, node.expression) || - visitNode(cbNode, node.dotToken) || - visitNode(cbNode, node.name); - case 156: - return visitNode(cbNode, node.expression) || - visitNode(cbNode, node.argumentExpression); - case 157: - case 158: - return visitNode(cbNode, node.expression) || - visitNodes(cbNodes, node.typeArguments) || - visitNodes(cbNodes, node.arguments); - case 159: - return visitNode(cbNode, node.tag) || - visitNode(cbNode, node.template); - case 160: - return visitNode(cbNode, node.type) || - visitNode(cbNode, node.expression); - case 161: - return visitNode(cbNode, node.expression); - case 164: - return visitNode(cbNode, node.expression); - case 165: - return visitNode(cbNode, node.expression); - case 166: - return visitNode(cbNode, node.expression); - case 167: - return visitNode(cbNode, node.operand); - case 172: - return visitNode(cbNode, node.asteriskToken) || - visitNode(cbNode, node.expression); - case 168: - return visitNode(cbNode, node.operand); - case 169: - return visitNode(cbNode, node.left) || - visitNode(cbNode, node.operatorToken) || - visitNode(cbNode, node.right); - case 170: - return visitNode(cbNode, node.condition) || - visitNode(cbNode, node.questionToken) || - visitNode(cbNode, node.whenTrue) || - visitNode(cbNode, node.colonToken) || - visitNode(cbNode, node.whenFalse); - case 173: - return visitNode(cbNode, node.expression); - case 176: - case 203: - return visitNodes(cbNodes, node.statements); - case 224: - return visitNodes(cbNodes, node.statements) || - visitNode(cbNode, node.endOfFileToken); - case 177: - return visitNodes(cbNodes, node.decorators) || - visitNodes(cbNodes, node.modifiers) || - visitNode(cbNode, node.declarationList); - case 196: - return visitNodes(cbNodes, node.declarations); - case 179: - return visitNode(cbNode, node.expression); - case 180: - return visitNode(cbNode, node.expression) || - visitNode(cbNode, node.thenStatement) || - visitNode(cbNode, node.elseStatement); - case 181: - return visitNode(cbNode, node.statement) || - visitNode(cbNode, node.expression); - case 182: - return visitNode(cbNode, node.expression) || - visitNode(cbNode, node.statement); - case 183: - return visitNode(cbNode, node.initializer) || - visitNode(cbNode, node.condition) || - visitNode(cbNode, node.iterator) || - visitNode(cbNode, node.statement); - case 184: - return visitNode(cbNode, node.initializer) || - visitNode(cbNode, node.expression) || - visitNode(cbNode, node.statement); - case 185: - return visitNode(cbNode, node.initializer) || - visitNode(cbNode, node.expression) || - visitNode(cbNode, node.statement); - case 186: - case 187: - return visitNode(cbNode, node.label); - case 188: - return visitNode(cbNode, node.expression); - case 189: - return visitNode(cbNode, node.expression) || - visitNode(cbNode, node.statement); - case 190: - return visitNode(cbNode, node.expression) || - visitNode(cbNode, node.caseBlock); - case 204: - return visitNodes(cbNodes, node.clauses); - case 217: - return visitNode(cbNode, node.expression) || - visitNodes(cbNodes, node.statements); - case 218: - return visitNodes(cbNodes, node.statements); - case 191: - return visitNode(cbNode, node.label) || - visitNode(cbNode, node.statement); - case 192: - return visitNode(cbNode, node.expression); - case 193: - return visitNode(cbNode, node.tryBlock) || - visitNode(cbNode, node.catchClause) || - visitNode(cbNode, node.finallyBlock); - case 220: - return visitNode(cbNode, node.variableDeclaration) || - visitNode(cbNode, node.block); - case 130: - return visitNode(cbNode, node.expression); - case 198: - return visitNodes(cbNodes, node.decorators) || - visitNodes(cbNodes, node.modifiers) || - visitNode(cbNode, node.name) || - visitNodes(cbNodes, node.typeParameters) || - visitNodes(cbNodes, node.heritageClauses) || - visitNodes(cbNodes, node.members); - case 199: - return visitNodes(cbNodes, node.decorators) || - visitNodes(cbNodes, node.modifiers) || - visitNode(cbNode, node.name) || - visitNodes(cbNodes, node.typeParameters) || - visitNodes(cbNodes, node.heritageClauses) || - visitNodes(cbNodes, node.members); - case 200: - return visitNodes(cbNodes, node.decorators) || - visitNodes(cbNodes, node.modifiers) || - visitNode(cbNode, node.name) || - visitNode(cbNode, node.type); - case 201: - return visitNodes(cbNodes, node.decorators) || - visitNodes(cbNodes, node.modifiers) || - visitNode(cbNode, node.name) || - visitNodes(cbNodes, node.members); - case 223: - return visitNode(cbNode, node.name) || - visitNode(cbNode, node.initializer); - case 202: - return visitNodes(cbNodes, node.decorators) || - visitNodes(cbNodes, node.modifiers) || - visitNode(cbNode, node.name) || - visitNode(cbNode, node.body); - case 205: - return visitNodes(cbNodes, node.decorators) || - visitNodes(cbNodes, node.modifiers) || - visitNode(cbNode, node.name) || - visitNode(cbNode, node.moduleReference); - case 206: - return visitNodes(cbNodes, node.decorators) || - visitNodes(cbNodes, node.modifiers) || - visitNode(cbNode, node.importClause) || - visitNode(cbNode, node.moduleSpecifier); - case 207: - return visitNode(cbNode, node.name) || - visitNode(cbNode, node.namedBindings); - case 208: - return visitNode(cbNode, node.name); - case 209: - case 213: - return visitNodes(cbNodes, node.elements); - case 212: - return visitNodes(cbNodes, node.decorators) || - visitNodes(cbNodes, node.modifiers) || - visitNode(cbNode, node.exportClause) || - visitNode(cbNode, node.moduleSpecifier); - case 210: - case 214: - return visitNode(cbNode, node.propertyName) || - visitNode(cbNode, node.name); - case 211: - return visitNodes(cbNodes, node.decorators) || - visitNodes(cbNodes, node.modifiers) || - visitNode(cbNode, node.expression) || - visitNode(cbNode, node.type); - case 171: - return visitNode(cbNode, node.head) || visitNodes(cbNodes, node.templateSpans); - case 175: - return visitNode(cbNode, node.expression) || visitNode(cbNode, node.literal); - case 127: - return visitNode(cbNode, node.expression); - case 219: - return visitNodes(cbNodes, node.types); - case 216: - return visitNode(cbNode, node.expression); - case 215: - return visitNodes(cbNodes, node.decorators); - } - } - ts.forEachChild = forEachChild; - var ParsingContext; - (function (ParsingContext) { - ParsingContext[ParsingContext["SourceElements"] = 0] = "SourceElements"; - ParsingContext[ParsingContext["ModuleElements"] = 1] = "ModuleElements"; - ParsingContext[ParsingContext["BlockStatements"] = 2] = "BlockStatements"; - ParsingContext[ParsingContext["SwitchClauses"] = 3] = "SwitchClauses"; - ParsingContext[ParsingContext["SwitchClauseStatements"] = 4] = "SwitchClauseStatements"; - ParsingContext[ParsingContext["TypeMembers"] = 5] = "TypeMembers"; - ParsingContext[ParsingContext["ClassMembers"] = 6] = "ClassMembers"; - ParsingContext[ParsingContext["EnumMembers"] = 7] = "EnumMembers"; - ParsingContext[ParsingContext["TypeReferences"] = 8] = "TypeReferences"; - ParsingContext[ParsingContext["VariableDeclarations"] = 9] = "VariableDeclarations"; - ParsingContext[ParsingContext["ObjectBindingElements"] = 10] = "ObjectBindingElements"; - ParsingContext[ParsingContext["ArrayBindingElements"] = 11] = "ArrayBindingElements"; - ParsingContext[ParsingContext["ArgumentExpressions"] = 12] = "ArgumentExpressions"; - ParsingContext[ParsingContext["ObjectLiteralMembers"] = 13] = "ObjectLiteralMembers"; - ParsingContext[ParsingContext["ArrayLiteralMembers"] = 14] = "ArrayLiteralMembers"; - ParsingContext[ParsingContext["Parameters"] = 15] = "Parameters"; - ParsingContext[ParsingContext["TypeParameters"] = 16] = "TypeParameters"; - ParsingContext[ParsingContext["TypeArguments"] = 17] = "TypeArguments"; - ParsingContext[ParsingContext["TupleElementTypes"] = 18] = "TupleElementTypes"; - ParsingContext[ParsingContext["HeritageClauses"] = 19] = "HeritageClauses"; - ParsingContext[ParsingContext["ImportOrExportSpecifiers"] = 20] = "ImportOrExportSpecifiers"; - ParsingContext[ParsingContext["Count"] = 21] = "Count"; - })(ParsingContext || (ParsingContext = {})); - var Tristate; - (function (Tristate) { - Tristate[Tristate["False"] = 0] = "False"; - Tristate[Tristate["True"] = 1] = "True"; - Tristate[Tristate["Unknown"] = 2] = "Unknown"; - })(Tristate || (Tristate = {})); - function parsingContextErrors(context) { - switch (context) { - case 0: return ts.Diagnostics.Declaration_or_statement_expected; - case 1: return ts.Diagnostics.Declaration_or_statement_expected; - case 2: return ts.Diagnostics.Statement_expected; - case 3: return ts.Diagnostics.case_or_default_expected; - case 4: return ts.Diagnostics.Statement_expected; - case 5: return ts.Diagnostics.Property_or_signature_expected; - case 6: return ts.Diagnostics.Unexpected_token_A_constructor_method_accessor_or_property_was_expected; - case 7: return ts.Diagnostics.Enum_member_expected; - case 8: return ts.Diagnostics.Type_reference_expected; - case 9: return ts.Diagnostics.Variable_declaration_expected; - case 10: return ts.Diagnostics.Property_destructuring_pattern_expected; - case 11: return ts.Diagnostics.Array_element_destructuring_pattern_expected; - case 12: return ts.Diagnostics.Argument_expression_expected; - case 13: return ts.Diagnostics.Property_assignment_expected; - case 14: return ts.Diagnostics.Expression_or_comma_expected; - case 15: return ts.Diagnostics.Parameter_declaration_expected; - case 16: return ts.Diagnostics.Type_parameter_declaration_expected; - case 17: return ts.Diagnostics.Type_argument_expected; - case 18: return ts.Diagnostics.Type_expected; - case 19: return ts.Diagnostics.Unexpected_token_expected; - case 20: return ts.Diagnostics.Identifier_expected; - } - } - ; - function modifierToFlag(token) { - switch (token) { - case 110: return 128; - case 109: return 16; - case 108: return 64; - case 107: return 32; - case 78: return 1; - case 115: return 2; - case 70: return 8192; - case 73: return 256; - } - return 0; - } - ts.modifierToFlag = modifierToFlag; - function fixupParentReferences(sourceFile) { - // normally parent references are set during binding. However, for clients that only need - // a syntax tree, and no semantic features, then the binding process is an unnecessary - // overhead. This functions allows us to set all the parents, without all the expense of - // binding. - var parent = sourceFile; - forEachChild(sourceFile, visitNode); - return; - function visitNode(n) { - if (n.parent !== parent) { - n.parent = parent; - var saveParent = parent; - parent = n; - forEachChild(n, visitNode); - parent = saveParent; - } - } - } - function shouldCheckNode(node) { - switch (node.kind) { - case 8: - case 7: - case 65: - return true; - } - return false; - } - function moveElementEntirelyPastChangeRange(element, isArray, delta, oldText, newText, aggressiveChecks) { - if (isArray) { - visitArray(element); - } - else { - visitNode(element); - } - return; - function visitNode(node) { - if (aggressiveChecks && shouldCheckNode(node)) { - var text = oldText.substring(node.pos, node.end); - } - node._children = undefined; - node.pos += delta; - node.end += delta; - if (aggressiveChecks && shouldCheckNode(node)) { - ts.Debug.assert(text === newText.substring(node.pos, node.end)); - } - forEachChild(node, visitNode, visitArray); - checkNodePositions(node, aggressiveChecks); - } - function visitArray(array) { - array._children = undefined; - array.pos += delta; - array.end += delta; - for (var _i = 0, _n = array.length; _i < _n; _i++) { - var node = array[_i]; - visitNode(node); - } - } - } - function adjustIntersectingElement(element, changeStart, changeRangeOldEnd, changeRangeNewEnd, delta) { - ts.Debug.assert(element.end >= changeStart, "Adjusting an element that was entirely before the change range"); - ts.Debug.assert(element.pos <= changeRangeOldEnd, "Adjusting an element that was entirely after the change range"); - ts.Debug.assert(element.pos <= element.end); - element.pos = Math.min(element.pos, changeRangeNewEnd); - if (element.end >= changeRangeOldEnd) { - element.end += delta; - } - else { - element.end = Math.min(element.end, changeRangeNewEnd); - } - ts.Debug.assert(element.pos <= element.end); - if (element.parent) { - ts.Debug.assert(element.pos >= element.parent.pos); - ts.Debug.assert(element.end <= element.parent.end); - } - } - function checkNodePositions(node, aggressiveChecks) { - if (aggressiveChecks) { - var pos = node.pos; - forEachChild(node, function (child) { - ts.Debug.assert(child.pos >= pos); - pos = child.end; - }); - ts.Debug.assert(pos <= node.end); - } - } - function updateTokenPositionsAndMarkElements(sourceFile, changeStart, changeRangeOldEnd, changeRangeNewEnd, delta, oldText, newText, aggressiveChecks) { - visitNode(sourceFile); - return; - function visitNode(child) { - ts.Debug.assert(child.pos <= child.end); - if (child.pos > changeRangeOldEnd) { - moveElementEntirelyPastChangeRange(child, false, delta, oldText, newText, aggressiveChecks); - return; - } - var fullEnd = child.end; - if (fullEnd >= changeStart) { - child.intersectsChange = true; - child._children = undefined; - adjustIntersectingElement(child, changeStart, changeRangeOldEnd, changeRangeNewEnd, delta); - forEachChild(child, visitNode, visitArray); - checkNodePositions(child, aggressiveChecks); - return; - } - ts.Debug.assert(fullEnd < changeStart); - } - function visitArray(array) { - ts.Debug.assert(array.pos <= array.end); - if (array.pos > changeRangeOldEnd) { - moveElementEntirelyPastChangeRange(array, true, delta, oldText, newText, aggressiveChecks); - return; - } - var fullEnd = array.end; - if (fullEnd >= changeStart) { - array.intersectsChange = true; - array._children = undefined; - adjustIntersectingElement(array, changeStart, changeRangeOldEnd, changeRangeNewEnd, delta); - for (var _i = 0, _n = array.length; _i < _n; _i++) { - var node = array[_i]; - visitNode(node); - } - return; - } - ts.Debug.assert(fullEnd < changeStart); - } - } - function extendToAffectedRange(sourceFile, changeRange) { - var maxLookahead = 1; - var start = changeRange.span.start; - for (var i = 0; start > 0 && i <= maxLookahead; i++) { - var nearestNode = findNearestNodeStartingBeforeOrAtPosition(sourceFile, start); - ts.Debug.assert(nearestNode.pos <= start); - var position = nearestNode.pos; - start = Math.max(0, position - 1); - } - var finalSpan = ts.createTextSpanFromBounds(start, ts.textSpanEnd(changeRange.span)); - var finalLength = changeRange.newLength + (changeRange.span.start - start); - return ts.createTextChangeRange(finalSpan, finalLength); - } - function findNearestNodeStartingBeforeOrAtPosition(sourceFile, position) { - var bestResult = sourceFile; - var lastNodeEntirelyBeforePosition; - forEachChild(sourceFile, visit); - if (lastNodeEntirelyBeforePosition) { - var lastChildOfLastEntireNodeBeforePosition = getLastChild(lastNodeEntirelyBeforePosition); - if (lastChildOfLastEntireNodeBeforePosition.pos > bestResult.pos) { - bestResult = lastChildOfLastEntireNodeBeforePosition; - } - } - return bestResult; - function getLastChild(node) { - while (true) { - var lastChild = getLastChildWorker(node); - if (lastChild) { - node = lastChild; - } - else { - return node; - } - } - } - function getLastChildWorker(node) { - var last = undefined; - forEachChild(node, function (child) { - if (ts.nodeIsPresent(child)) { - last = child; - } - }); - return last; - } - function visit(child) { - if (ts.nodeIsMissing(child)) { - return; - } - if (child.pos <= position) { - if (child.pos >= bestResult.pos) { - bestResult = child; - } - if (position < child.end) { - forEachChild(child, visit); - return true; - } - else { - ts.Debug.assert(child.end <= position); - lastNodeEntirelyBeforePosition = child; - } - } - else { - ts.Debug.assert(child.pos > position); - return true; - } - } - } - function checkChangeRange(sourceFile, newText, textChangeRange, aggressiveChecks) { - var oldText = sourceFile.text; - if (textChangeRange) { - ts.Debug.assert((oldText.length - textChangeRange.span.length + textChangeRange.newLength) === newText.length); - if (aggressiveChecks || ts.Debug.shouldAssert(3)) { - var oldTextPrefix = oldText.substr(0, textChangeRange.span.start); - var newTextPrefix = newText.substr(0, textChangeRange.span.start); - ts.Debug.assert(oldTextPrefix === newTextPrefix); - var oldTextSuffix = oldText.substring(ts.textSpanEnd(textChangeRange.span), oldText.length); - var newTextSuffix = newText.substring(ts.textSpanEnd(ts.textChangeRangeNewSpan(textChangeRange)), newText.length); - ts.Debug.assert(oldTextSuffix === newTextSuffix); - } - } - } - function updateSourceFile(sourceFile, newText, textChangeRange, aggressiveChecks) { - aggressiveChecks = aggressiveChecks || ts.Debug.shouldAssert(2); - checkChangeRange(sourceFile, newText, textChangeRange, aggressiveChecks); - if (ts.textChangeRangeIsUnchanged(textChangeRange)) { - return sourceFile; - } - if (sourceFile.statements.length === 0) { - return parseSourceFile(sourceFile.fileName, newText, sourceFile.languageVersion, undefined, true); - } - var incrementalSourceFile = sourceFile; - ts.Debug.assert(!incrementalSourceFile.hasBeenIncrementallyParsed); - incrementalSourceFile.hasBeenIncrementallyParsed = true; - var oldText = sourceFile.text; - var syntaxCursor = createSyntaxCursor(sourceFile); - var changeRange = extendToAffectedRange(sourceFile, textChangeRange); - checkChangeRange(sourceFile, newText, changeRange, aggressiveChecks); - ts.Debug.assert(changeRange.span.start <= textChangeRange.span.start); - ts.Debug.assert(ts.textSpanEnd(changeRange.span) === ts.textSpanEnd(textChangeRange.span)); - ts.Debug.assert(ts.textSpanEnd(ts.textChangeRangeNewSpan(changeRange)) === ts.textSpanEnd(ts.textChangeRangeNewSpan(textChangeRange))); - var delta = ts.textChangeRangeNewSpan(changeRange).length - changeRange.span.length; - updateTokenPositionsAndMarkElements(incrementalSourceFile, changeRange.span.start, ts.textSpanEnd(changeRange.span), ts.textSpanEnd(ts.textChangeRangeNewSpan(changeRange)), delta, oldText, newText, aggressiveChecks); - var result = parseSourceFile(sourceFile.fileName, newText, sourceFile.languageVersion, syntaxCursor, true); - return result; - } - ts.updateSourceFile = updateSourceFile; - function isEvalOrArgumentsIdentifier(node) { - return node.kind === 65 && - (node.text === "eval" || node.text === "arguments"); - } - ts.isEvalOrArgumentsIdentifier = isEvalOrArgumentsIdentifier; - function isUseStrictPrologueDirective(sourceFile, node) { - ts.Debug.assert(ts.isPrologueDirective(node)); - var nodeText = ts.getSourceTextOfNodeFromSourceFile(sourceFile, node.expression); - return nodeText === '"use strict"' || nodeText === "'use strict'"; - } - var InvalidPosition; - (function (InvalidPosition) { - InvalidPosition[InvalidPosition["Value"] = -1] = "Value"; - })(InvalidPosition || (InvalidPosition = {})); - function createSyntaxCursor(sourceFile) { - var currentArray = sourceFile.statements; - var currentArrayIndex = 0; - ts.Debug.assert(currentArrayIndex < currentArray.length); - var current = currentArray[currentArrayIndex]; - var lastQueriedPosition = -1; - return { - currentNode: function (position) { - if (position !== lastQueriedPosition) { - if (current && current.end === position && currentArrayIndex < (currentArray.length - 1)) { - currentArrayIndex++; - current = currentArray[currentArrayIndex]; - } - if (!current || current.pos !== position) { - findHighestListElementThatStartsAtPosition(position); - } - } - lastQueriedPosition = position; - ts.Debug.assert(!current || current.pos === position); - return current; - } - }; - function findHighestListElementThatStartsAtPosition(position) { - currentArray = undefined; - currentArrayIndex = -1; - current = undefined; - forEachChild(sourceFile, visitNode, visitArray); - return; - function visitNode(node) { - if (position >= node.pos && position < node.end) { - forEachChild(node, visitNode, visitArray); - return true; - } - return false; - } - function visitArray(array) { - if (position >= array.pos && position < array.end) { - for (var i = 0, n = array.length; i < n; i++) { - var child = array[i]; - if (child) { - if (child.pos === position) { - currentArray = array; - currentArrayIndex = i; - current = child; - return true; - } - else { - if (child.pos < position && position < child.end) { - forEachChild(child, visitNode, visitArray); - return true; - } - } - } - } - } - return false; - } - } - } - function createSourceFile(fileName, sourceText, languageVersion, setParentNodes) { - if (setParentNodes === void 0) { setParentNodes = false; } - var start = new Date().getTime(); - var result = parseSourceFile(fileName, sourceText, languageVersion, undefined, setParentNodes); - ts.parseTime += new Date().getTime() - start; - return result; - } - ts.createSourceFile = createSourceFile; - function parseSourceFile(fileName, sourceText, languageVersion, syntaxCursor, setParentNodes) { - if (setParentNodes === void 0) { setParentNodes = false; } - var disallowInAndDecoratorContext = 2 | 16; - var parsingContext = 0; - var identifiers = {}; - var identifierCount = 0; - var nodeCount = 0; - var token; - var sourceFile = createNode(224, 0); - sourceFile.pos = 0; - sourceFile.end = sourceText.length; - sourceFile.text = sourceText; - sourceFile.parseDiagnostics = []; - sourceFile.bindDiagnostics = []; - sourceFile.languageVersion = languageVersion; - sourceFile.fileName = ts.normalizePath(fileName); - sourceFile.flags = ts.fileExtensionIs(sourceFile.fileName, ".d.ts") ? 2048 : 0; - var contextFlags = 0; - var parseErrorBeforeNextFinishedNode = false; - var scanner = ts.createScanner(languageVersion, true, sourceText, scanError); - token = nextToken(); - processReferenceComments(sourceFile); - sourceFile.statements = parseList(0, true, parseSourceElement); - ts.Debug.assert(token === 1); - sourceFile.endOfFileToken = parseTokenNode(); - setExternalModuleIndicator(sourceFile); - sourceFile.nodeCount = nodeCount; - sourceFile.identifierCount = identifierCount; - sourceFile.identifiers = identifiers; - if (setParentNodes) { - fixupParentReferences(sourceFile); - } - syntaxCursor = undefined; - return sourceFile; - function setContextFlag(val, flag) { - if (val) { - contextFlags |= flag; - } - else { - contextFlags &= ~flag; - } - } - function setStrictModeContext(val) { - setContextFlag(val, 1); - } - function setDisallowInContext(val) { - setContextFlag(val, 2); - } - function setYieldContext(val) { - setContextFlag(val, 4); - } - function setGeneratorParameterContext(val) { - setContextFlag(val, 8); - } - function setDecoratorContext(val) { - setContextFlag(val, 16); - } - function doOutsideOfContext(flags, func) { - var currentContextFlags = contextFlags & flags; - if (currentContextFlags) { - setContextFlag(false, currentContextFlags); - var result = func(); - setContextFlag(true, currentContextFlags); - return result; - } - return func(); - } - function allowInAnd(func) { - if (contextFlags & 2) { - setDisallowInContext(false); - var result = func(); - setDisallowInContext(true); - return result; - } - return func(); - } - function disallowInAnd(func) { - if (contextFlags & 2) { - return func(); - } - setDisallowInContext(true); - var result = func(); - setDisallowInContext(false); - return result; - } - function doInYieldContext(func) { - if (contextFlags & 4) { - return func(); - } - setYieldContext(true); - var result = func(); - setYieldContext(false); - return result; - } - function doOutsideOfYieldContext(func) { - if (contextFlags & 4) { - setYieldContext(false); - var result = func(); - setYieldContext(true); - return result; - } - return func(); - } - function doInDecoratorContext(func) { - if (contextFlags & 16) { - return func(); - } - setDecoratorContext(true); - var result = func(); - setDecoratorContext(false); - return result; - } - function inYieldContext() { - return (contextFlags & 4) !== 0; - } - function inStrictModeContext() { - return (contextFlags & 1) !== 0; - } - function inGeneratorParameterContext() { - return (contextFlags & 8) !== 0; - } - function inDisallowInContext() { - return (contextFlags & 2) !== 0; - } - function inDecoratorContext() { - return (contextFlags & 16) !== 0; - } - function parseErrorAtCurrentToken(message, arg0) { - var start = scanner.getTokenPos(); - var length = scanner.getTextPos() - start; - parseErrorAtPosition(start, length, message, arg0); - } - function parseErrorAtPosition(start, length, message, arg0) { - var lastError = ts.lastOrUndefined(sourceFile.parseDiagnostics); - if (!lastError || start !== lastError.start) { - sourceFile.parseDiagnostics.push(ts.createFileDiagnostic(sourceFile, start, length, message, arg0)); - } - parseErrorBeforeNextFinishedNode = true; - } - function scanError(message, length) { - var pos = scanner.getTextPos(); - parseErrorAtPosition(pos, length || 0, message); - } - function getNodePos() { - return scanner.getStartPos(); - } - function getNodeEnd() { - return scanner.getStartPos(); - } - function nextToken() { - return token = scanner.scan(); - } - function getTokenPos(pos) { - return ts.skipTrivia(sourceText, pos); - } - function reScanGreaterToken() { - return token = scanner.reScanGreaterToken(); - } - function reScanSlashToken() { - return token = scanner.reScanSlashToken(); - } - function reScanTemplateToken() { - return token = scanner.reScanTemplateToken(); - } - function speculationHelper(callback, isLookAhead) { - var saveToken = token; - var saveParseDiagnosticsLength = sourceFile.parseDiagnostics.length; - var saveParseErrorBeforeNextFinishedNode = parseErrorBeforeNextFinishedNode; - var saveContextFlags = contextFlags; - var result = isLookAhead - ? scanner.lookAhead(callback) - : scanner.tryScan(callback); - ts.Debug.assert(saveContextFlags === contextFlags); - if (!result || isLookAhead) { - token = saveToken; - sourceFile.parseDiagnostics.length = saveParseDiagnosticsLength; - parseErrorBeforeNextFinishedNode = saveParseErrorBeforeNextFinishedNode; - } - return result; - } - function lookAhead(callback) { - return speculationHelper(callback, true); - } - function tryParse(callback) { - return speculationHelper(callback, false); - } - function isIdentifier() { - if (token === 65) { - return true; - } - if (token === 111 && inYieldContext()) { - return false; - } - return inStrictModeContext() ? token > 111 : token > 101; - } - function parseExpected(kind, diagnosticMessage) { - if (token === kind) { - nextToken(); - return true; - } - if (diagnosticMessage) { - parseErrorAtCurrentToken(diagnosticMessage); - } - else { - parseErrorAtCurrentToken(ts.Diagnostics._0_expected, ts.tokenToString(kind)); - } - return false; - } - function parseOptional(t) { - if (token === t) { - nextToken(); - return true; - } - return false; - } - function parseOptionalToken(t) { - if (token === t) { - return parseTokenNode(); - } - return undefined; - } - function parseExpectedToken(t, reportAtCurrentPosition, diagnosticMessage, arg0) { - return parseOptionalToken(t) || - createMissingNode(t, reportAtCurrentPosition, diagnosticMessage, arg0); - } - function parseTokenNode() { - var node = createNode(token); - nextToken(); - return finishNode(node); - } - function canParseSemicolon() { - if (token === 22) { - return true; - } - return token === 15 || token === 1 || scanner.hasPrecedingLineBreak(); - } - function parseSemicolon() { - if (canParseSemicolon()) { - if (token === 22) { - nextToken(); - } - return true; - } - else { - return parseExpected(22); - } - } - function createNode(kind, pos) { - nodeCount++; - var node = new (nodeConstructors[kind] || (nodeConstructors[kind] = ts.objectAllocator.getNodeConstructor(kind)))(); - if (!(pos >= 0)) { - pos = scanner.getStartPos(); - } - node.pos = pos; - node.end = pos; - return node; - } - function finishNode(node) { - node.end = scanner.getStartPos(); - if (contextFlags) { - node.parserContextFlags = contextFlags; - } - if (parseErrorBeforeNextFinishedNode) { - parseErrorBeforeNextFinishedNode = false; - node.parserContextFlags |= 32; - } - return node; - } - function createMissingNode(kind, reportAtCurrentPosition, diagnosticMessage, arg0) { - if (reportAtCurrentPosition) { - parseErrorAtPosition(scanner.getStartPos(), 0, diagnosticMessage, arg0); - } - else { - parseErrorAtCurrentToken(diagnosticMessage, arg0); - } - var result = createNode(kind, scanner.getStartPos()); - result.text = ""; - return finishNode(result); - } - function internIdentifier(text) { - text = ts.escapeIdentifier(text); - return ts.hasProperty(identifiers, text) ? identifiers[text] : (identifiers[text] = text); - } - function createIdentifier(isIdentifier, diagnosticMessage) { - identifierCount++; - if (isIdentifier) { - var node = createNode(65); - node.text = internIdentifier(scanner.getTokenValue()); - nextToken(); - return finishNode(node); - } - return createMissingNode(65, false, diagnosticMessage || ts.Diagnostics.Identifier_expected); - } - function parseIdentifier(diagnosticMessage) { - return createIdentifier(isIdentifier(), diagnosticMessage); - } - function parseIdentifierName() { - return createIdentifier(isIdentifierOrKeyword()); - } - function isLiteralPropertyName() { - return isIdentifierOrKeyword() || - token === 8 || - token === 7; - } - function parsePropertyName() { - if (token === 8 || token === 7) { - return parseLiteralNode(true); - } - if (token === 18) { - return parseComputedPropertyName(); - } - return parseIdentifierName(); - } - function parseComputedPropertyName() { - var node = createNode(127); - parseExpected(18); - var yieldContext = inYieldContext(); - if (inGeneratorParameterContext()) { - setYieldContext(false); - } - node.expression = allowInAnd(parseExpression); - if (inGeneratorParameterContext()) { - setYieldContext(yieldContext); - } - parseExpected(19); - return finishNode(node); - } - function parseContextualModifier(t) { - return token === t && tryParse(nextTokenCanFollowModifier); - } - function nextTokenCanFollowModifier() { - nextToken(); - return canFollowModifier(); - } - function parseAnyContextualModifier() { - return ts.isModifier(token) && tryParse(nextTokenCanFollowContextualModifier); - } - function nextTokenCanFollowContextualModifier() { - if (token === 70) { - return nextToken() === 77; - } - if (token === 78) { - nextToken(); - if (token === 73) { - return lookAhead(nextTokenIsClassOrFunction); - } - return token !== 35 && token !== 14 && canFollowModifier(); - } - if (token === 73) { - return nextTokenIsClassOrFunction(); - } - nextToken(); - return canFollowModifier(); - } - function canFollowModifier() { - return token === 18 - || token === 14 - || token === 35 - || isLiteralPropertyName(); - } - function nextTokenIsClassOrFunction() { - nextToken(); - return token === 69 || token === 83; - } - function isListElement(parsingContext, inErrorRecovery) { - var node = currentNode(parsingContext); - if (node) { - return true; - } - switch (parsingContext) { - case 0: - case 1: - return isSourceElement(inErrorRecovery); - case 2: - case 4: - return isStartOfStatement(inErrorRecovery); - case 3: - return token === 67 || token === 73; - case 5: - return isStartOfTypeMember(); - case 6: - return lookAhead(isClassMemberStart); - case 7: - return token === 18 || isLiteralPropertyName(); - case 13: - return token === 18 || token === 35 || isLiteralPropertyName(); - case 10: - return isLiteralPropertyName(); - case 8: - return isIdentifier() && !isNotHeritageClauseTypeName(); - case 9: - return isIdentifierOrPattern(); - case 11: - return token === 23 || token === 21 || isIdentifierOrPattern(); - case 16: - return isIdentifier(); - case 12: - case 14: - return token === 23 || token === 21 || isStartOfExpression(); - case 15: - return isStartOfParameter(); - case 17: - case 18: - return token === 23 || isStartOfType(); - case 19: - return isHeritageClause(); - case 20: - return isIdentifierOrKeyword(); - } - ts.Debug.fail("Non-exhaustive case in 'isListElement'."); - } - function nextTokenIsIdentifier() { - nextToken(); - return isIdentifier(); - } - function isNotHeritageClauseTypeName() { - if (token === 103 || - token === 79) { - return lookAhead(nextTokenIsIdentifier); - } - return false; - } - function isListTerminator(kind) { - if (token === 1) { - return true; - } - switch (kind) { - case 1: - case 2: - case 3: - case 5: - case 6: - case 7: - case 13: - case 10: - case 20: - return token === 15; - case 4: - return token === 15 || token === 67 || token === 73; - case 8: - return token === 14 || token === 79 || token === 103; - case 9: - return isVariableDeclaratorListTerminator(); - case 16: - return token === 25 || token === 16 || token === 14 || token === 79 || token === 103; - case 12: - return token === 17 || token === 22; - case 14: - case 18: - case 11: - return token === 19; - case 15: - return token === 17 || token === 19; - case 17: - return token === 25 || token === 16; - case 19: - return token === 14 || token === 15; - } - } - function isVariableDeclaratorListTerminator() { - if (canParseSemicolon()) { - return true; - } - if (isInOrOfKeyword(token)) { - return true; - } - if (token === 32) { - return true; - } - return false; - } - function isInSomeParsingContext() { - for (var kind = 0; kind < 21; kind++) { - if (parsingContext & (1 << kind)) { - if (isListElement(kind, true) || isListTerminator(kind)) { - return true; - } - } - } - return false; - } - function parseList(kind, checkForStrictMode, parseElement) { - var saveParsingContext = parsingContext; - parsingContext |= 1 << kind; - var result = []; - result.pos = getNodePos(); - var savedStrictModeContext = inStrictModeContext(); - while (!isListTerminator(kind)) { - if (isListElement(kind, false)) { - var element = parseListElement(kind, parseElement); - result.push(element); - if (checkForStrictMode && !inStrictModeContext()) { - if (ts.isPrologueDirective(element)) { - if (isUseStrictPrologueDirective(sourceFile, element)) { - setStrictModeContext(true); - checkForStrictMode = false; - } - } - else { - checkForStrictMode = false; - } - } - continue; - } - if (abortParsingListOrMoveToNextToken(kind)) { - break; - } - } - setStrictModeContext(savedStrictModeContext); - result.end = getNodeEnd(); - parsingContext = saveParsingContext; - return result; - } - function parseListElement(parsingContext, parseElement) { - var node = currentNode(parsingContext); - if (node) { - return consumeNode(node); - } - return parseElement(); - } - function currentNode(parsingContext) { - if (parseErrorBeforeNextFinishedNode) { - return undefined; - } - if (!syntaxCursor) { - return undefined; - } - var node = syntaxCursor.currentNode(scanner.getStartPos()); - if (ts.nodeIsMissing(node)) { - return undefined; - } - if (node.intersectsChange) { - return undefined; - } - if (ts.containsParseError(node)) { - return undefined; - } - var nodeContextFlags = node.parserContextFlags & 63; - if (nodeContextFlags !== contextFlags) { - return undefined; - } - if (!canReuseNode(node, parsingContext)) { - return undefined; - } - return node; - } - function consumeNode(node) { - scanner.setTextPos(node.end); - nextToken(); - return node; - } - function canReuseNode(node, parsingContext) { - switch (parsingContext) { - case 1: - return isReusableModuleElement(node); - case 6: - return isReusableClassMember(node); - case 3: - return isReusableSwitchClause(node); - case 2: - case 4: - return isReusableStatement(node); - case 7: - return isReusableEnumMember(node); - case 5: - return isReusableTypeMember(node); - case 9: - return isReusableVariableDeclaration(node); - case 15: - return isReusableParameter(node); - case 19: - case 8: - case 16: - case 18: - case 17: - case 12: - case 13: - } - return false; - } - function isReusableModuleElement(node) { - if (node) { - switch (node.kind) { - case 206: - case 205: - case 212: - case 211: - case 198: - case 199: - case 202: - case 201: - return true; - } - return isReusableStatement(node); - } - return false; - } - function isReusableClassMember(node) { - if (node) { - switch (node.kind) { - case 135: - case 140: - case 134: - case 136: - case 137: - case 132: - return true; - } - } - return false; - } - function isReusableSwitchClause(node) { - if (node) { - switch (node.kind) { - case 217: - case 218: - return true; - } - } - return false; - } - function isReusableStatement(node) { - if (node) { - switch (node.kind) { - case 197: - case 177: - case 176: - case 180: - case 179: - case 192: - case 188: - case 190: - case 187: - case 186: - case 184: - case 185: - case 183: - case 182: - case 189: - case 178: - case 193: - case 191: - case 181: - case 194: - return true; - } - } - return false; - } - function isReusableEnumMember(node) { - return node.kind === 223; - } - function isReusableTypeMember(node) { - if (node) { - switch (node.kind) { - case 139: - case 133: - case 140: - case 131: - case 138: - return true; - } - } - return false; - } - function isReusableVariableDeclaration(node) { - if (node.kind !== 195) { - return false; - } - var variableDeclarator = node; - return variableDeclarator.initializer === undefined; - } - function isReusableParameter(node) { - if (node.kind !== 129) { - return false; - } - var parameter = node; - return parameter.initializer === undefined; - } - function abortParsingListOrMoveToNextToken(kind) { - parseErrorAtCurrentToken(parsingContextErrors(kind)); - if (isInSomeParsingContext()) { - return true; - } - nextToken(); - return false; - } - function parseDelimitedList(kind, parseElement, considerSemicolonAsDelimeter) { - var saveParsingContext = parsingContext; - parsingContext |= 1 << kind; - var result = []; - result.pos = getNodePos(); - var commaStart = -1; - while (true) { - if (isListElement(kind, false)) { - result.push(parseListElement(kind, parseElement)); - commaStart = scanner.getTokenPos(); - if (parseOptional(23)) { - continue; - } - commaStart = -1; - if (isListTerminator(kind)) { - break; - } - parseExpected(23); - if (considerSemicolonAsDelimeter && token === 22 && !scanner.hasPrecedingLineBreak()) { - nextToken(); - } - continue; - } - if (isListTerminator(kind)) { - break; - } - if (abortParsingListOrMoveToNextToken(kind)) { - break; - } - } - if (commaStart >= 0) { - result.hasTrailingComma = true; - } - result.end = getNodeEnd(); - parsingContext = saveParsingContext; - return result; - } - function createMissingList() { - var pos = getNodePos(); - var result = []; - result.pos = pos; - result.end = pos; - return result; - } - function parseBracketedList(kind, parseElement, open, close) { - if (parseExpected(open)) { - var result = parseDelimitedList(kind, parseElement); - parseExpected(close); - return result; - } - return createMissingList(); - } - function parseEntityName(allowReservedWords, diagnosticMessage) { - var entity = parseIdentifier(diagnosticMessage); - while (parseOptional(20)) { - var node = createNode(126, entity.pos); - node.left = entity; - node.right = parseRightSideOfDot(allowReservedWords); - entity = finishNode(node); - } - return entity; - } - function parseRightSideOfDot(allowIdentifierNames) { - if (scanner.hasPrecedingLineBreak() && scanner.isReservedWord()) { - var matchesPattern = lookAhead(nextTokenIsIdentifierOrKeywordOnSameLine); - if (matchesPattern) { - return createMissingNode(65, true, ts.Diagnostics.Identifier_expected); - } - } - return allowIdentifierNames ? parseIdentifierName() : parseIdentifier(); - } - function parseTemplateExpression() { - var template = createNode(171); - template.head = parseLiteralNode(); - ts.Debug.assert(template.head.kind === 11, "Template head has wrong token kind"); - var templateSpans = []; - templateSpans.pos = getNodePos(); - do { - templateSpans.push(parseTemplateSpan()); - } while (templateSpans[templateSpans.length - 1].literal.kind === 12); - templateSpans.end = getNodeEnd(); - template.templateSpans = templateSpans; - return finishNode(template); - } - function parseTemplateSpan() { - var span = createNode(175); - span.expression = allowInAnd(parseExpression); - var literal; - if (token === 15) { - reScanTemplateToken(); - literal = parseLiteralNode(); - } - else { - literal = parseExpectedToken(13, false, ts.Diagnostics._0_expected, ts.tokenToString(15)); - } - span.literal = literal; - return finishNode(span); - } - function parseLiteralNode(internName) { - var node = createNode(token); - var text = scanner.getTokenValue(); - node.text = internName ? internIdentifier(text) : text; - if (scanner.hasExtendedUnicodeEscape()) { - node.hasExtendedUnicodeEscape = true; - } - if (scanner.isUnterminated()) { - node.isUnterminated = true; - } - var tokenPos = scanner.getTokenPos(); - nextToken(); - finishNode(node); - if (node.kind === 7 - && sourceText.charCodeAt(tokenPos) === 48 - && ts.isOctalDigit(sourceText.charCodeAt(tokenPos + 1))) { - node.flags |= 16384; - } - return node; - } - function parseTypeReference() { - var node = createNode(141); - node.typeName = parseEntityName(false, ts.Diagnostics.Type_expected); - if (!scanner.hasPrecedingLineBreak() && token === 24) { - node.typeArguments = parseBracketedList(17, parseType, 24, 25); - } - return finishNode(node); - } - function parseTypeQuery() { - var node = createNode(144); - parseExpected(97); - node.exprName = parseEntityName(true); - return finishNode(node); - } - function parseTypeParameter() { - var node = createNode(128); - node.name = parseIdentifier(); - if (parseOptional(79)) { - if (isStartOfType() || !isStartOfExpression()) { - node.constraint = parseType(); - } - else { - node.expression = parseUnaryExpressionOrHigher(); - } - } - return finishNode(node); - } - function parseTypeParameters() { - if (token === 24) { - return parseBracketedList(16, parseTypeParameter, 24, 25); - } - } - function parseParameterType() { - if (parseOptional(51)) { - return token === 8 - ? parseLiteralNode(true) - : parseType(); - } - return undefined; - } - function isStartOfParameter() { - return token === 21 || isIdentifierOrPattern() || ts.isModifier(token) || token === 52; - } - function setModifiers(node, modifiers) { - if (modifiers) { - node.flags |= modifiers.flags; - node.modifiers = modifiers; - } - } - function parseParameter() { - var node = createNode(129); - node.decorators = parseDecorators(); - setModifiers(node, parseModifiers()); - node.dotDotDotToken = parseOptionalToken(21); - node.name = inGeneratorParameterContext() ? doInYieldContext(parseIdentifierOrPattern) : parseIdentifierOrPattern(); - if (ts.getFullWidth(node.name) === 0 && node.flags === 0 && ts.isModifier(token)) { - nextToken(); - } - node.questionToken = parseOptionalToken(50); - node.type = parseParameterType(); - node.initializer = inGeneratorParameterContext() ? doOutsideOfYieldContext(parseParameterInitializer) : parseParameterInitializer(); - return finishNode(node); - } - function parseParameterInitializer() { - return parseInitializer(true); - } - function fillSignature(returnToken, yieldAndGeneratorParameterContext, requireCompleteParameterList, signature) { - var returnTokenRequired = returnToken === 32; - signature.typeParameters = parseTypeParameters(); - signature.parameters = parseParameterList(yieldAndGeneratorParameterContext, requireCompleteParameterList); - if (returnTokenRequired) { - parseExpected(returnToken); - signature.type = parseType(); - } - else if (parseOptional(returnToken)) { - signature.type = parseType(); - } - } - function parseParameterList(yieldAndGeneratorParameterContext, requireCompleteParameterList) { - if (parseExpected(16)) { - var savedYieldContext = inYieldContext(); - var savedGeneratorParameterContext = inGeneratorParameterContext(); - setYieldContext(yieldAndGeneratorParameterContext); - setGeneratorParameterContext(yieldAndGeneratorParameterContext); - var result = parseDelimitedList(15, parseParameter); - setYieldContext(savedYieldContext); - setGeneratorParameterContext(savedGeneratorParameterContext); - if (!parseExpected(17) && requireCompleteParameterList) { - return undefined; - } - return result; - } - return requireCompleteParameterList ? undefined : createMissingList(); - } - function parseTypeMemberSemicolon() { - if (parseOptional(23)) { - return; - } - parseSemicolon(); - } - function parseSignatureMember(kind) { - var node = createNode(kind); - if (kind === 139) { - parseExpected(88); - } - fillSignature(51, false, false, node); - parseTypeMemberSemicolon(); - return finishNode(node); - } - function isIndexSignature() { - if (token !== 18) { - return false; - } - return lookAhead(isUnambiguouslyIndexSignature); - } - function isUnambiguouslyIndexSignature() { - nextToken(); - if (token === 21 || token === 19) { - return true; - } - if (ts.isModifier(token)) { - nextToken(); - if (isIdentifier()) { - return true; - } - } - else if (!isIdentifier()) { - return false; - } - else { - nextToken(); - } - if (token === 51 || token === 23) { - return true; - } - if (token !== 50) { - return false; - } - nextToken(); - return token === 51 || token === 23 || token === 19; - } - function parseIndexSignatureDeclaration(fullStart, decorators, modifiers) { - var node = createNode(140, fullStart); - node.decorators = decorators; - setModifiers(node, modifiers); - node.parameters = parseBracketedList(15, parseParameter, 18, 19); - node.type = parseTypeAnnotation(); - parseTypeMemberSemicolon(); - return finishNode(node); - } - function parsePropertyOrMethodSignature() { - var fullStart = scanner.getStartPos(); - var name = parsePropertyName(); - var questionToken = parseOptionalToken(50); - if (token === 16 || token === 24) { - var method = createNode(133, fullStart); - method.name = name; - method.questionToken = questionToken; - fillSignature(51, false, false, method); - parseTypeMemberSemicolon(); - return finishNode(method); - } - else { - var property = createNode(131, fullStart); - property.name = name; - property.questionToken = questionToken; - property.type = parseTypeAnnotation(); - parseTypeMemberSemicolon(); - return finishNode(property); - } - } - function isStartOfTypeMember() { - switch (token) { - case 16: - case 24: - case 18: - return true; - default: - if (ts.isModifier(token)) { - var result = lookAhead(isStartOfIndexSignatureDeclaration); - if (result) { - return result; - } - } - return isLiteralPropertyName() && lookAhead(isTypeMemberWithLiteralPropertyName); - } - } - function isStartOfIndexSignatureDeclaration() { - while (ts.isModifier(token)) { - nextToken(); - } - return isIndexSignature(); - } - function isTypeMemberWithLiteralPropertyName() { - nextToken(); - return token === 16 || - token === 24 || - token === 50 || - token === 51 || - canParseSemicolon(); - } - function parseTypeMember() { - switch (token) { - case 16: - case 24: - return parseSignatureMember(138); - case 18: - return isIndexSignature() - ? parseIndexSignatureDeclaration(scanner.getStartPos(), undefined, undefined) - : parsePropertyOrMethodSignature(); - case 88: - if (lookAhead(isStartOfConstructSignature)) { - return parseSignatureMember(139); - } - case 8: - case 7: - return parsePropertyOrMethodSignature(); - default: - if (ts.isModifier(token)) { - var result = tryParse(parseIndexSignatureWithModifiers); - if (result) { - return result; - } - } - if (isIdentifierOrKeyword()) { - return parsePropertyOrMethodSignature(); - } - } - } - function parseIndexSignatureWithModifiers() { - var fullStart = scanner.getStartPos(); - var decorators = parseDecorators(); - var modifiers = parseModifiers(); - return isIndexSignature() - ? parseIndexSignatureDeclaration(fullStart, decorators, modifiers) - : undefined; - } - function isStartOfConstructSignature() { - nextToken(); - return token === 16 || token === 24; - } - function parseTypeLiteral() { - var node = createNode(145); - node.members = parseObjectTypeMembers(); - return finishNode(node); - } - function parseObjectTypeMembers() { - var members; - if (parseExpected(14)) { - members = parseList(5, false, parseTypeMember); - parseExpected(15); - } - else { - members = createMissingList(); - } - return members; - } - function parseTupleType() { - var node = createNode(147); - node.elementTypes = parseBracketedList(18, parseType, 18, 19); - return finishNode(node); - } - function parseParenthesizedType() { - var node = createNode(149); - parseExpected(16); - node.type = parseType(); - parseExpected(17); - return finishNode(node); - } - function parseFunctionOrConstructorType(kind) { - var node = createNode(kind); - if (kind === 143) { - parseExpected(88); - } - fillSignature(32, false, false, node); - return finishNode(node); - } - function parseKeywordAndNoDot() { - var node = parseTokenNode(); - return token === 20 ? undefined : node; - } - function parseNonArrayType() { - switch (token) { - case 112: - case 121: - case 119: - case 113: - case 122: - var node = tryParse(parseKeywordAndNoDot); - return node || parseTypeReference(); - case 99: - return parseTokenNode(); - case 97: - return parseTypeQuery(); - case 14: - return parseTypeLiteral(); - case 18: - return parseTupleType(); - case 16: - return parseParenthesizedType(); - default: - return parseTypeReference(); - } - } - function isStartOfType() { - switch (token) { - case 112: - case 121: - case 119: - case 113: - case 122: - case 99: - case 97: - case 14: - case 18: - case 24: - case 88: - return true; - case 16: - return lookAhead(isStartOfParenthesizedOrFunctionType); - default: - return isIdentifier(); - } - } - function isStartOfParenthesizedOrFunctionType() { - nextToken(); - return token === 17 || isStartOfParameter() || isStartOfType(); - } - function parseArrayTypeOrHigher() { - var type = parseNonArrayType(); - while (!scanner.hasPrecedingLineBreak() && parseOptional(18)) { - parseExpected(19); - var node = createNode(146, type.pos); - node.elementType = type; - type = finishNode(node); - } - return type; - } - function parseUnionTypeOrHigher() { - var type = parseArrayTypeOrHigher(); - if (token === 44) { - var types = [type]; - types.pos = type.pos; - while (parseOptional(44)) { - types.push(parseArrayTypeOrHigher()); - } - types.end = getNodeEnd(); - var node = createNode(148, type.pos); - node.types = types; - type = finishNode(node); - } - return type; - } - function isStartOfFunctionType() { - if (token === 24) { - return true; - } - return token === 16 && lookAhead(isUnambiguouslyStartOfFunctionType); - } - function isUnambiguouslyStartOfFunctionType() { - nextToken(); - if (token === 17 || token === 21) { - return true; - } - if (isIdentifier() || ts.isModifier(token)) { - nextToken(); - if (token === 51 || token === 23 || - token === 50 || token === 53 || - isIdentifier() || ts.isModifier(token)) { - return true; - } - if (token === 17) { - nextToken(); - if (token === 32) { - return true; - } - } - } - return false; - } - function parseType() { - var savedYieldContext = inYieldContext(); - var savedGeneratorParameterContext = inGeneratorParameterContext(); - setYieldContext(false); - setGeneratorParameterContext(false); - var result = parseTypeWorker(); - setYieldContext(savedYieldContext); - setGeneratorParameterContext(savedGeneratorParameterContext); - return result; - } - function parseTypeWorker() { - if (isStartOfFunctionType()) { - return parseFunctionOrConstructorType(142); - } - if (token === 88) { - return parseFunctionOrConstructorType(143); - } - return parseUnionTypeOrHigher(); - } - function parseTypeAnnotation() { - return parseOptional(51) ? parseType() : undefined; - } - function isStartOfExpression() { - switch (token) { - case 93: - case 91: - case 89: - case 95: - case 80: - case 7: - case 8: - case 10: - case 11: - case 16: - case 18: - case 14: - case 83: - case 88: - case 36: - case 57: - case 33: - case 34: - case 47: - case 46: - case 74: - case 97: - case 99: - case 38: - case 39: - case 24: - case 65: - case 111: - return true; - default: - if (isBinaryOperator()) { - return true; - } - return isIdentifier(); - } - } - function isStartOfExpressionStatement() { - return token !== 14 && token !== 83 && token !== 52 && isStartOfExpression(); - } - function parseExpression() { - // Expression[in]: - // AssignmentExpression[in] - // Expression[in] , AssignmentExpression[in] - var saveDecoratorContext = inDecoratorContext(); - if (saveDecoratorContext) { - setDecoratorContext(false); - } - var expr = parseAssignmentExpressionOrHigher(); - var operatorToken; - while ((operatorToken = parseOptionalToken(23))) { - expr = makeBinaryExpression(expr, operatorToken, parseAssignmentExpressionOrHigher()); - } - if (saveDecoratorContext) { - setDecoratorContext(true); - } - return expr; - } - function parseInitializer(inParameter) { - if (token !== 53) { - if (scanner.hasPrecedingLineBreak() || (inParameter && token === 14) || !isStartOfExpression()) { - return undefined; - } - } - parseExpected(53); - return parseAssignmentExpressionOrHigher(); - } - function parseAssignmentExpressionOrHigher() { - // AssignmentExpression[in,yield]: - // 1) ConditionalExpression[?in,?yield] - // 2) LeftHandSideExpression = AssignmentExpression[?in,?yield] - // 3) LeftHandSideExpression AssignmentOperator AssignmentExpression[?in,?yield] - // 4) ArrowFunctionExpression[?in,?yield] - // 5) [+Yield] YieldExpression[?In] - // - // Note: for ease of implementation we treat productions '2' and '3' as the same thing. - // (i.e. they're both BinaryExpressions with an assignment operator in it). - if (isYieldExpression()) { - return parseYieldExpression(); - } - var arrowExpression = tryParseParenthesizedArrowFunctionExpression(); - if (arrowExpression) { - return arrowExpression; - } - var expr = parseBinaryExpressionOrHigher(0); - if (expr.kind === 65 && token === 32) { - return parseSimpleArrowFunctionExpression(expr); - } - if (isLeftHandSideExpression(expr) && isAssignmentOperator(reScanGreaterToken())) { - return makeBinaryExpression(expr, parseTokenNode(), parseAssignmentExpressionOrHigher()); - } - return parseConditionalExpressionRest(expr); - } - function isYieldExpression() { - if (token === 111) { - if (inYieldContext()) { - return true; - } - if (inStrictModeContext()) { - return true; - } - return lookAhead(nextTokenIsIdentifierOnSameLine); - } - return false; - } - function nextTokenIsIdentifierOnSameLine() { - nextToken(); - return !scanner.hasPrecedingLineBreak() && isIdentifier(); - } - function nextTokenIsIdentifierOrStartOfDestructuringOnTheSameLine() { - nextToken(); - return !scanner.hasPrecedingLineBreak() && - (isIdentifier() || token === 14 || token === 18); - } - function parseYieldExpression() { - var node = createNode(172); - nextToken(); - if (!scanner.hasPrecedingLineBreak() && - (token === 35 || isStartOfExpression())) { - node.asteriskToken = parseOptionalToken(35); - node.expression = parseAssignmentExpressionOrHigher(); - return finishNode(node); - } - else { - return finishNode(node); - } - } - function parseSimpleArrowFunctionExpression(identifier) { - ts.Debug.assert(token === 32, "parseSimpleArrowFunctionExpression should only have been called if we had a =>"); - var node = createNode(163, identifier.pos); - var parameter = createNode(129, identifier.pos); - parameter.name = identifier; - finishNode(parameter); - node.parameters = [parameter]; - node.parameters.pos = parameter.pos; - node.parameters.end = parameter.end; - node.equalsGreaterThanToken = parseExpectedToken(32, false, ts.Diagnostics._0_expected, "=>"); - node.body = parseArrowFunctionExpressionBody(); - return finishNode(node); - } - function tryParseParenthesizedArrowFunctionExpression() { - var triState = isParenthesizedArrowFunctionExpression(); - if (triState === 0) { - return undefined; - } - var arrowFunction = triState === 1 - ? parseParenthesizedArrowFunctionExpressionHead(true) - : tryParse(parsePossibleParenthesizedArrowFunctionExpressionHead); - if (!arrowFunction) { - return undefined; - } - var lastToken = token; - arrowFunction.equalsGreaterThanToken = parseExpectedToken(32, false, ts.Diagnostics._0_expected, "=>"); - arrowFunction.body = (lastToken === 32 || lastToken === 14) - ? parseArrowFunctionExpressionBody() - : parseIdentifier(); - return finishNode(arrowFunction); - } - function isParenthesizedArrowFunctionExpression() { - if (token === 16 || token === 24) { - return lookAhead(isParenthesizedArrowFunctionExpressionWorker); - } - if (token === 32) { - return 1; - } - return 0; - } - function isParenthesizedArrowFunctionExpressionWorker() { - var first = token; - var second = nextToken(); - if (first === 16) { - if (second === 17) { - var third = nextToken(); - switch (third) { - case 32: - case 51: - case 14: - return 1; - default: - return 0; - } - } - if (second === 21) { - return 1; - } - if (!isIdentifier()) { - return 0; - } - if (nextToken() === 51) { - return 1; - } - return 2; - } - else { - ts.Debug.assert(first === 24); - if (!isIdentifier()) { - return 0; - } - return 2; - } - } - function parsePossibleParenthesizedArrowFunctionExpressionHead() { - return parseParenthesizedArrowFunctionExpressionHead(false); - } - function parseParenthesizedArrowFunctionExpressionHead(allowAmbiguity) { - var node = createNode(163); - fillSignature(51, false, !allowAmbiguity, node); - if (!node.parameters) { - return undefined; - } - if (!allowAmbiguity && token !== 32 && token !== 14) { - return undefined; - } - return node; - } - function parseArrowFunctionExpressionBody() { - if (token === 14) { - return parseFunctionBlock(false, false); - } - if (isStartOfStatement(true) && !isStartOfExpressionStatement() && token !== 83) { - return parseFunctionBlock(false, true); - } - return parseAssignmentExpressionOrHigher(); - } - function parseConditionalExpressionRest(leftOperand) { - var questionToken = parseOptionalToken(50); - if (!questionToken) { - return leftOperand; - } - var node = createNode(170, leftOperand.pos); - node.condition = leftOperand; - node.questionToken = questionToken; - node.whenTrue = doOutsideOfContext(disallowInAndDecoratorContext, parseAssignmentExpressionOrHigher); - node.colonToken = parseExpectedToken(51, false, ts.Diagnostics._0_expected, ts.tokenToString(51)); - node.whenFalse = parseAssignmentExpressionOrHigher(); - return finishNode(node); - } - function parseBinaryExpressionOrHigher(precedence) { - var leftOperand = parseUnaryExpressionOrHigher(); - return parseBinaryExpressionRest(precedence, leftOperand); - } - function isInOrOfKeyword(t) { - return t === 86 || t === 125; - } - function parseBinaryExpressionRest(precedence, leftOperand) { - while (true) { - reScanGreaterToken(); - var newPrecedence = getBinaryOperatorPrecedence(); - if (newPrecedence <= precedence) { - break; - } - if (token === 86 && inDisallowInContext()) { - break; - } - leftOperand = makeBinaryExpression(leftOperand, parseTokenNode(), parseBinaryExpressionOrHigher(newPrecedence)); - } - return leftOperand; - } - function isBinaryOperator() { - if (inDisallowInContext() && token === 86) { - return false; - } - return getBinaryOperatorPrecedence() > 0; - } - function getBinaryOperatorPrecedence() { - switch (token) { - case 49: - return 1; - case 48: - return 2; - case 44: - return 3; - case 45: - return 4; - case 43: - return 5; - case 28: - case 29: - case 30: - case 31: - return 6; - case 24: - case 25: - case 26: - case 27: - case 87: - case 86: - return 7; - case 40: - case 41: - case 42: - return 8; - case 33: - case 34: - return 9; - case 35: - case 36: - case 37: - return 10; - } - return -1; - } - function makeBinaryExpression(left, operatorToken, right) { - var node = createNode(169, left.pos); - node.left = left; - node.operatorToken = operatorToken; - node.right = right; - return finishNode(node); - } - function parsePrefixUnaryExpression() { - var node = createNode(167); - node.operator = token; - nextToken(); - node.operand = parseUnaryExpressionOrHigher(); - return finishNode(node); - } - function parseDeleteExpression() { - var node = createNode(164); - nextToken(); - node.expression = parseUnaryExpressionOrHigher(); - return finishNode(node); - } - function parseTypeOfExpression() { - var node = createNode(165); - nextToken(); - node.expression = parseUnaryExpressionOrHigher(); - return finishNode(node); - } - function parseVoidExpression() { - var node = createNode(166); - nextToken(); - node.expression = parseUnaryExpressionOrHigher(); - return finishNode(node); - } - function parseUnaryExpressionOrHigher() { - switch (token) { - case 33: - case 34: - case 47: - case 46: - case 38: - case 39: - return parsePrefixUnaryExpression(); - case 74: - return parseDeleteExpression(); - case 97: - return parseTypeOfExpression(); - case 99: - return parseVoidExpression(); - case 24: - return parseTypeAssertion(); - default: - return parsePostfixExpressionOrHigher(); - } - } - function parsePostfixExpressionOrHigher() { - var expression = parseLeftHandSideExpressionOrHigher(); - ts.Debug.assert(isLeftHandSideExpression(expression)); - if ((token === 38 || token === 39) && !scanner.hasPrecedingLineBreak()) { - var node = createNode(168, expression.pos); - node.operand = expression; - node.operator = token; - nextToken(); - return finishNode(node); - } - return expression; - } - function parseLeftHandSideExpressionOrHigher() { - var expression = token === 91 - ? parseSuperExpression() - : parseMemberExpressionOrHigher(); - return parseCallExpressionRest(expression); - } - function parseMemberExpressionOrHigher() { - var expression = parsePrimaryExpression(); - return parseMemberExpressionRest(expression); - } - function parseSuperExpression() { - var expression = parseTokenNode(); - if (token === 16 || token === 20) { - return expression; - } - var node = createNode(155, expression.pos); - node.expression = expression; - node.dotToken = parseExpectedToken(20, false, ts.Diagnostics.super_must_be_followed_by_an_argument_list_or_member_access); - node.name = parseRightSideOfDot(true); - return finishNode(node); - } - function parseTypeAssertion() { - var node = createNode(160); - parseExpected(24); - node.type = parseType(); - parseExpected(25); - node.expression = parseUnaryExpressionOrHigher(); - return finishNode(node); - } - function parseMemberExpressionRest(expression) { - while (true) { - var dotToken = parseOptionalToken(20); - if (dotToken) { - var propertyAccess = createNode(155, expression.pos); - propertyAccess.expression = expression; - propertyAccess.dotToken = dotToken; - propertyAccess.name = parseRightSideOfDot(true); - expression = finishNode(propertyAccess); - continue; - } - if (!inDecoratorContext() && parseOptional(18)) { - var indexedAccess = createNode(156, expression.pos); - indexedAccess.expression = expression; - if (token !== 19) { - indexedAccess.argumentExpression = allowInAnd(parseExpression); - if (indexedAccess.argumentExpression.kind === 8 || indexedAccess.argumentExpression.kind === 7) { - var literal = indexedAccess.argumentExpression; - literal.text = internIdentifier(literal.text); - } - } - parseExpected(19); - expression = finishNode(indexedAccess); - continue; - } - if (token === 10 || token === 11) { - var tagExpression = createNode(159, expression.pos); - tagExpression.tag = expression; - tagExpression.template = token === 10 - ? parseLiteralNode() - : parseTemplateExpression(); - expression = finishNode(tagExpression); - continue; - } - return expression; - } - } - function parseCallExpressionRest(expression) { - while (true) { - expression = parseMemberExpressionRest(expression); - if (token === 24) { - var typeArguments = tryParse(parseTypeArgumentsInExpression); - if (!typeArguments) { - return expression; - } - var callExpr = createNode(157, expression.pos); - callExpr.expression = expression; - callExpr.typeArguments = typeArguments; - callExpr.arguments = parseArgumentList(); - expression = finishNode(callExpr); - continue; - } - else if (token === 16) { - var callExpr = createNode(157, expression.pos); - callExpr.expression = expression; - callExpr.arguments = parseArgumentList(); - expression = finishNode(callExpr); - continue; - } - return expression; - } - } - function parseArgumentList() { - parseExpected(16); - var result = parseDelimitedList(12, parseArgumentExpression); - parseExpected(17); - return result; - } - function parseTypeArgumentsInExpression() { - if (!parseOptional(24)) { - return undefined; - } - var typeArguments = parseDelimitedList(17, parseType); - if (!parseExpected(25)) { - return undefined; - } - return typeArguments && canFollowTypeArgumentsInExpression() - ? typeArguments - : undefined; - } - function canFollowTypeArgumentsInExpression() { - switch (token) { - case 16: - case 20: - case 17: - case 19: - case 51: - case 22: - case 23: - case 50: - case 28: - case 30: - case 29: - case 31: - case 48: - case 49: - case 45: - case 43: - case 44: - case 15: - case 1: - return true; - default: - return false; - } - } - function parsePrimaryExpression() { - switch (token) { - case 7: - case 8: - case 10: - return parseLiteralNode(); - case 93: - case 91: - case 89: - case 95: - case 80: - return parseTokenNode(); - case 16: - return parseParenthesizedExpression(); - case 18: - return parseArrayLiteralExpression(); - case 14: - return parseObjectLiteralExpression(); - case 83: - return parseFunctionExpression(); - case 88: - return parseNewExpression(); - case 36: - case 57: - if (reScanSlashToken() === 9) { - return parseLiteralNode(); - } - break; - case 11: - return parseTemplateExpression(); - } - return parseIdentifier(ts.Diagnostics.Expression_expected); - } - function parseParenthesizedExpression() { - var node = createNode(161); - parseExpected(16); - node.expression = allowInAnd(parseExpression); - parseExpected(17); - return finishNode(node); - } - function parseSpreadElement() { - var node = createNode(173); - parseExpected(21); - node.expression = parseAssignmentExpressionOrHigher(); - return finishNode(node); - } - function parseArgumentOrArrayLiteralElement() { - return token === 21 ? parseSpreadElement() : - token === 23 ? createNode(174) : - parseAssignmentExpressionOrHigher(); - } - function parseArgumentExpression() { - return doOutsideOfContext(disallowInAndDecoratorContext, parseArgumentOrArrayLiteralElement); - } - function parseArrayLiteralExpression() { - var node = createNode(153); - parseExpected(18); - if (scanner.hasPrecedingLineBreak()) - node.flags |= 512; - node.elements = parseDelimitedList(14, parseArgumentOrArrayLiteralElement); - parseExpected(19); - return finishNode(node); - } - function tryParseAccessorDeclaration(fullStart, decorators, modifiers) { - if (parseContextualModifier(116)) { - return parseAccessorDeclaration(136, fullStart, decorators, modifiers); - } - else if (parseContextualModifier(120)) { - return parseAccessorDeclaration(137, fullStart, decorators, modifiers); - } - return undefined; - } - function parseObjectLiteralElement() { - var fullStart = scanner.getStartPos(); - var decorators = parseDecorators(); - var modifiers = parseModifiers(); - var accessor = tryParseAccessorDeclaration(fullStart, decorators, modifiers); - if (accessor) { - return accessor; - } - var asteriskToken = parseOptionalToken(35); - var tokenIsIdentifier = isIdentifier(); - var nameToken = token; - var propertyName = parsePropertyName(); - var questionToken = parseOptionalToken(50); - if (asteriskToken || token === 16 || token === 24) { - return parseMethodDeclaration(fullStart, decorators, modifiers, asteriskToken, propertyName, questionToken); - } - if ((token === 23 || token === 15) && tokenIsIdentifier) { - var shorthandDeclaration = createNode(222, fullStart); - shorthandDeclaration.name = propertyName; - shorthandDeclaration.questionToken = questionToken; - return finishNode(shorthandDeclaration); - } - else { - var propertyAssignment = createNode(221, fullStart); - propertyAssignment.name = propertyName; - propertyAssignment.questionToken = questionToken; - parseExpected(51); - propertyAssignment.initializer = allowInAnd(parseAssignmentExpressionOrHigher); - return finishNode(propertyAssignment); - } - } - function parseObjectLiteralExpression() { - var node = createNode(154); - parseExpected(14); - if (scanner.hasPrecedingLineBreak()) { - node.flags |= 512; - } - node.properties = parseDelimitedList(13, parseObjectLiteralElement, true); - parseExpected(15); - return finishNode(node); - } - function parseFunctionExpression() { - var saveDecoratorContext = inDecoratorContext(); - if (saveDecoratorContext) { - setDecoratorContext(false); - } - var node = createNode(162); - parseExpected(83); - node.asteriskToken = parseOptionalToken(35); - node.name = node.asteriskToken ? doInYieldContext(parseOptionalIdentifier) : parseOptionalIdentifier(); - fillSignature(51, !!node.asteriskToken, false, node); - node.body = parseFunctionBlock(!!node.asteriskToken, false); - if (saveDecoratorContext) { - setDecoratorContext(true); - } - return finishNode(node); - } - function parseOptionalIdentifier() { - return isIdentifier() ? parseIdentifier() : undefined; - } - function parseNewExpression() { - var node = createNode(158); - parseExpected(88); - node.expression = parseMemberExpressionOrHigher(); - node.typeArguments = tryParse(parseTypeArgumentsInExpression); - if (node.typeArguments || token === 16) { - node.arguments = parseArgumentList(); - } - return finishNode(node); - } - function parseBlock(ignoreMissingOpenBrace, checkForStrictMode, diagnosticMessage) { - var node = createNode(176); - if (parseExpected(14, diagnosticMessage) || ignoreMissingOpenBrace) { - node.statements = parseList(2, checkForStrictMode, parseStatement); - parseExpected(15); - } - else { - node.statements = createMissingList(); - } - return finishNode(node); - } - function parseFunctionBlock(allowYield, ignoreMissingOpenBrace, diagnosticMessage) { - var savedYieldContext = inYieldContext(); - setYieldContext(allowYield); - var saveDecoratorContext = inDecoratorContext(); - if (saveDecoratorContext) { - setDecoratorContext(false); - } - var block = parseBlock(ignoreMissingOpenBrace, true, diagnosticMessage); - if (saveDecoratorContext) { - setDecoratorContext(true); - } - setYieldContext(savedYieldContext); - return block; - } - function parseEmptyStatement() { - var node = createNode(178); - parseExpected(22); - return finishNode(node); - } - function parseIfStatement() { - var node = createNode(180); - parseExpected(84); - parseExpected(16); - node.expression = allowInAnd(parseExpression); - parseExpected(17); - node.thenStatement = parseStatement(); - node.elseStatement = parseOptional(76) ? parseStatement() : undefined; - return finishNode(node); - } - function parseDoStatement() { - var node = createNode(181); - parseExpected(75); - node.statement = parseStatement(); - parseExpected(100); - parseExpected(16); - node.expression = allowInAnd(parseExpression); - parseExpected(17); - parseOptional(22); - return finishNode(node); - } - function parseWhileStatement() { - var node = createNode(182); - parseExpected(100); - parseExpected(16); - node.expression = allowInAnd(parseExpression); - parseExpected(17); - node.statement = parseStatement(); - return finishNode(node); - } - function parseForOrForInOrForOfStatement() { - var pos = getNodePos(); - parseExpected(82); - parseExpected(16); - var initializer = undefined; - if (token !== 22) { - if (token === 98 || token === 105 || token === 70) { - initializer = parseVariableDeclarationList(true); - } - else { - initializer = disallowInAnd(parseExpression); - } - } - var forOrForInOrForOfStatement; - if (parseOptional(86)) { - var forInStatement = createNode(184, pos); - forInStatement.initializer = initializer; - forInStatement.expression = allowInAnd(parseExpression); - parseExpected(17); - forOrForInOrForOfStatement = forInStatement; - } - else if (parseOptional(125)) { - var forOfStatement = createNode(185, pos); - forOfStatement.initializer = initializer; - forOfStatement.expression = allowInAnd(parseAssignmentExpressionOrHigher); - parseExpected(17); - forOrForInOrForOfStatement = forOfStatement; - } - else { - var forStatement = createNode(183, pos); - forStatement.initializer = initializer; - parseExpected(22); - if (token !== 22 && token !== 17) { - forStatement.condition = allowInAnd(parseExpression); - } - parseExpected(22); - if (token !== 17) { - forStatement.iterator = allowInAnd(parseExpression); - } - parseExpected(17); - forOrForInOrForOfStatement = forStatement; - } - forOrForInOrForOfStatement.statement = parseStatement(); - return finishNode(forOrForInOrForOfStatement); - } - function parseBreakOrContinueStatement(kind) { - var node = createNode(kind); - parseExpected(kind === 187 ? 66 : 71); - if (!canParseSemicolon()) { - node.label = parseIdentifier(); - } - parseSemicolon(); - return finishNode(node); - } - function parseReturnStatement() { - var node = createNode(188); - parseExpected(90); - if (!canParseSemicolon()) { - node.expression = allowInAnd(parseExpression); - } - parseSemicolon(); - return finishNode(node); - } - function parseWithStatement() { - var node = createNode(189); - parseExpected(101); - parseExpected(16); - node.expression = allowInAnd(parseExpression); - parseExpected(17); - node.statement = parseStatement(); - return finishNode(node); - } - function parseCaseClause() { - var node = createNode(217); - parseExpected(67); - node.expression = allowInAnd(parseExpression); - parseExpected(51); - node.statements = parseList(4, false, parseStatement); - return finishNode(node); - } - function parseDefaultClause() { - var node = createNode(218); - parseExpected(73); - parseExpected(51); - node.statements = parseList(4, false, parseStatement); - return finishNode(node); - } - function parseCaseOrDefaultClause() { - return token === 67 ? parseCaseClause() : parseDefaultClause(); - } - function parseSwitchStatement() { - var node = createNode(190); - parseExpected(92); - parseExpected(16); - node.expression = allowInAnd(parseExpression); - parseExpected(17); - var caseBlock = createNode(204, scanner.getStartPos()); - parseExpected(14); - caseBlock.clauses = parseList(3, false, parseCaseOrDefaultClause); - parseExpected(15); - node.caseBlock = finishNode(caseBlock); - return finishNode(node); - } - function parseThrowStatement() { - // ThrowStatement[Yield] : - // throw [no LineTerminator here]Expression[In, ?Yield]; - var node = createNode(192); - parseExpected(94); - node.expression = scanner.hasPrecedingLineBreak() ? undefined : allowInAnd(parseExpression); - parseSemicolon(); - return finishNode(node); - } - function parseTryStatement() { - var node = createNode(193); - parseExpected(96); - node.tryBlock = parseBlock(false, false); - node.catchClause = token === 68 ? parseCatchClause() : undefined; - if (!node.catchClause || token === 81) { - parseExpected(81); - node.finallyBlock = parseBlock(false, false); - } - return finishNode(node); - } - function parseCatchClause() { - var result = createNode(220); - parseExpected(68); - if (parseExpected(16)) { - result.variableDeclaration = parseVariableDeclaration(); - } - parseExpected(17); - result.block = parseBlock(false, false); - return finishNode(result); - } - function parseDebuggerStatement() { - var node = createNode(194); - parseExpected(72); - parseSemicolon(); - return finishNode(node); - } - function parseExpressionOrLabeledStatement() { - var fullStart = scanner.getStartPos(); - var expression = allowInAnd(parseExpression); - if (expression.kind === 65 && parseOptional(51)) { - var labeledStatement = createNode(191, fullStart); - labeledStatement.label = expression; - labeledStatement.statement = parseStatement(); - return finishNode(labeledStatement); - } - else { - var expressionStatement = createNode(179, fullStart); - expressionStatement.expression = expression; - parseSemicolon(); - return finishNode(expressionStatement); - } - } - function isStartOfStatement(inErrorRecovery) { - if (ts.isModifier(token)) { - var result = lookAhead(parseVariableStatementOrFunctionDeclarationWithDecoratorsOrModifiers); - if (result) { - return true; - } - } - switch (token) { - case 22: - return !inErrorRecovery; - case 14: - case 98: - case 105: - case 83: - case 84: - case 75: - case 100: - case 82: - case 71: - case 66: - case 90: - case 101: - case 92: - case 94: - case 96: - case 72: - case 68: - case 81: - return true; - case 70: - var isConstEnum = lookAhead(nextTokenIsEnumKeyword); - return !isConstEnum; - case 104: - case 69: - case 117: - case 77: - case 123: - if (isDeclarationStart()) { - return false; - } - case 109: - case 107: - case 108: - case 110: - if (lookAhead(nextTokenIsIdentifierOrKeywordOnSameLine)) { - return false; - } - default: - return isStartOfExpression(); - } - } - function nextTokenIsEnumKeyword() { - nextToken(); - return token === 77; - } - function nextTokenIsIdentifierOrKeywordOnSameLine() { - nextToken(); - return isIdentifierOrKeyword() && !scanner.hasPrecedingLineBreak(); - } - function parseStatement() { - switch (token) { - case 14: - return parseBlock(false, false); - case 98: - case 70: - return parseVariableStatement(scanner.getStartPos(), undefined, undefined); - case 83: - return parseFunctionDeclaration(scanner.getStartPos(), undefined, undefined); - case 22: - return parseEmptyStatement(); - case 84: - return parseIfStatement(); - case 75: - return parseDoStatement(); - case 100: - return parseWhileStatement(); - case 82: - return parseForOrForInOrForOfStatement(); - case 71: - return parseBreakOrContinueStatement(186); - case 66: - return parseBreakOrContinueStatement(187); - case 90: - return parseReturnStatement(); - case 101: - return parseWithStatement(); - case 92: - return parseSwitchStatement(); - case 94: - return parseThrowStatement(); - case 96: - case 68: - case 81: - return parseTryStatement(); - case 72: - return parseDebuggerStatement(); - case 105: - if (isLetDeclaration()) { - return parseVariableStatement(scanner.getStartPos(), undefined, undefined); - } - default: - if (ts.isModifier(token) || token === 52) { - var result = tryParse(parseVariableStatementOrFunctionDeclarationWithDecoratorsOrModifiers); - if (result) { - return result; - } - } - return parseExpressionOrLabeledStatement(); - } - } - function parseVariableStatementOrFunctionDeclarationWithDecoratorsOrModifiers() { - var start = scanner.getStartPos(); - var decorators = parseDecorators(); - var modifiers = parseModifiers(); - switch (token) { - case 70: - var nextTokenIsEnum = lookAhead(nextTokenIsEnumKeyword); - if (nextTokenIsEnum) { - return undefined; - } - return parseVariableStatement(start, decorators, modifiers); - case 105: - if (!isLetDeclaration()) { - return undefined; - } - return parseVariableStatement(start, decorators, modifiers); - case 98: - return parseVariableStatement(start, decorators, modifiers); - case 83: - return parseFunctionDeclaration(start, decorators, modifiers); - } - return undefined; - } - function parseFunctionBlockOrSemicolon(isGenerator, diagnosticMessage) { - if (token !== 14 && canParseSemicolon()) { - parseSemicolon(); - return; - } - return parseFunctionBlock(isGenerator, false, diagnosticMessage); - } - function parseArrayBindingElement() { - if (token === 23) { - return createNode(174); - } - var node = createNode(152); - node.dotDotDotToken = parseOptionalToken(21); - node.name = parseIdentifierOrPattern(); - node.initializer = parseInitializer(false); - return finishNode(node); - } - function parseObjectBindingElement() { - var node = createNode(152); - var id = parsePropertyName(); - if (id.kind === 65 && token !== 51) { - node.name = id; - } - else { - parseExpected(51); - node.propertyName = id; - node.name = parseIdentifierOrPattern(); - } - node.initializer = parseInitializer(false); - return finishNode(node); - } - function parseObjectBindingPattern() { - var node = createNode(150); - parseExpected(14); - node.elements = parseDelimitedList(10, parseObjectBindingElement); - parseExpected(15); - return finishNode(node); - } - function parseArrayBindingPattern() { - var node = createNode(151); - parseExpected(18); - node.elements = parseDelimitedList(11, parseArrayBindingElement); - parseExpected(19); - return finishNode(node); - } - function isIdentifierOrPattern() { - return token === 14 || token === 18 || isIdentifier(); - } - function parseIdentifierOrPattern() { - if (token === 18) { - return parseArrayBindingPattern(); - } - if (token === 14) { - return parseObjectBindingPattern(); - } - return parseIdentifier(); - } - function parseVariableDeclaration() { - var node = createNode(195); - node.name = parseIdentifierOrPattern(); - node.type = parseTypeAnnotation(); - if (!isInOrOfKeyword(token)) { - node.initializer = parseInitializer(false); - } - return finishNode(node); - } - function parseVariableDeclarationList(inForStatementInitializer) { - var node = createNode(196); - switch (token) { - case 98: - break; - case 105: - node.flags |= 4096; - break; - case 70: - node.flags |= 8192; - break; - default: - ts.Debug.fail(); - } - nextToken(); - if (token === 125 && lookAhead(canFollowContextualOfKeyword)) { - node.declarations = createMissingList(); - } - else { - var savedDisallowIn = inDisallowInContext(); - setDisallowInContext(inForStatementInitializer); - node.declarations = parseDelimitedList(9, parseVariableDeclaration); - setDisallowInContext(savedDisallowIn); - } - return finishNode(node); - } - function canFollowContextualOfKeyword() { - return nextTokenIsIdentifier() && nextToken() === 17; - } - function parseVariableStatement(fullStart, decorators, modifiers) { - var node = createNode(177, fullStart); - node.decorators = decorators; - setModifiers(node, modifiers); - node.declarationList = parseVariableDeclarationList(false); - parseSemicolon(); - return finishNode(node); - } - function parseFunctionDeclaration(fullStart, decorators, modifiers) { - var node = createNode(197, fullStart); - node.decorators = decorators; - setModifiers(node, modifiers); - parseExpected(83); - node.asteriskToken = parseOptionalToken(35); - node.name = node.flags & 256 ? parseOptionalIdentifier() : parseIdentifier(); - fillSignature(51, !!node.asteriskToken, false, node); - node.body = parseFunctionBlockOrSemicolon(!!node.asteriskToken, ts.Diagnostics.or_expected); - return finishNode(node); - } - function parseConstructorDeclaration(pos, decorators, modifiers) { - var node = createNode(135, pos); - node.decorators = decorators; - setModifiers(node, modifiers); - parseExpected(114); - fillSignature(51, false, false, node); - node.body = parseFunctionBlockOrSemicolon(false, ts.Diagnostics.or_expected); - return finishNode(node); - } - function parseMethodDeclaration(fullStart, decorators, modifiers, asteriskToken, name, questionToken, diagnosticMessage) { - var method = createNode(134, fullStart); - method.decorators = decorators; - setModifiers(method, modifiers); - method.asteriskToken = asteriskToken; - method.name = name; - method.questionToken = questionToken; - fillSignature(51, !!asteriskToken, false, method); - method.body = parseFunctionBlockOrSemicolon(!!asteriskToken, diagnosticMessage); - return finishNode(method); - } - function parsePropertyDeclaration(fullStart, decorators, modifiers, name, questionToken) { - var property = createNode(132, fullStart); - property.decorators = decorators; - setModifiers(property, modifiers); - property.name = name; - property.questionToken = questionToken; - property.type = parseTypeAnnotation(); - property.initializer = allowInAnd(parseNonParameterInitializer); - parseSemicolon(); - return finishNode(property); - } - function parsePropertyOrMethodDeclaration(fullStart, decorators, modifiers) { - var asteriskToken = parseOptionalToken(35); - var name = parsePropertyName(); - var questionToken = parseOptionalToken(50); - if (asteriskToken || token === 16 || token === 24) { - return parseMethodDeclaration(fullStart, decorators, modifiers, asteriskToken, name, questionToken, ts.Diagnostics.or_expected); - } - else { - return parsePropertyDeclaration(fullStart, decorators, modifiers, name, questionToken); - } - } - function parseNonParameterInitializer() { - return parseInitializer(false); - } - function parseAccessorDeclaration(kind, fullStart, decorators, modifiers) { - var node = createNode(kind, fullStart); - node.decorators = decorators; - setModifiers(node, modifiers); - node.name = parsePropertyName(); - fillSignature(51, false, false, node); - node.body = parseFunctionBlockOrSemicolon(false); - return finishNode(node); - } - function isClassMemberStart() { - var idToken; - if (token === 52) { - return true; - } - while (ts.isModifier(token)) { - idToken = token; - nextToken(); - } - if (token === 35) { - return true; - } - if (isLiteralPropertyName()) { - idToken = token; - nextToken(); - } - if (token === 18) { - return true; - } - if (idToken !== undefined) { - if (!ts.isKeyword(idToken) || idToken === 120 || idToken === 116) { - return true; - } - switch (token) { - case 16: - case 24: - case 51: - case 53: - case 50: - return true; - default: - return canParseSemicolon(); - } - } - return false; - } - function parseDecorators() { - var decorators; - while (true) { - var decoratorStart = getNodePos(); - if (!parseOptional(52)) { - break; - } - if (!decorators) { - decorators = []; - decorators.pos = scanner.getStartPos(); - } - var decorator = createNode(130, decoratorStart); - decorator.expression = doInDecoratorContext(parseLeftHandSideExpressionOrHigher); - decorators.push(finishNode(decorator)); - } - if (decorators) { - decorators.end = getNodeEnd(); - } - return decorators; - } - function parseModifiers() { - var flags = 0; - var modifiers; - while (true) { - var modifierStart = scanner.getStartPos(); - var modifierKind = token; - if (!parseAnyContextualModifier()) { - break; - } - if (!modifiers) { - modifiers = []; - modifiers.pos = modifierStart; - } - flags |= modifierToFlag(modifierKind); - modifiers.push(finishNode(createNode(modifierKind, modifierStart))); - } - if (modifiers) { - modifiers.flags = flags; - modifiers.end = scanner.getStartPos(); - } - return modifiers; - } - function parseClassElement() { - var fullStart = getNodePos(); - var decorators = parseDecorators(); - var modifiers = parseModifiers(); - var accessor = tryParseAccessorDeclaration(fullStart, decorators, modifiers); - if (accessor) { - return accessor; - } - if (token === 114) { - return parseConstructorDeclaration(fullStart, decorators, modifiers); - } - if (isIndexSignature()) { - return parseIndexSignatureDeclaration(fullStart, decorators, modifiers); - } - if (isIdentifierOrKeyword() || - token === 8 || - token === 7 || - token === 35 || - token === 18) { - return parsePropertyOrMethodDeclaration(fullStart, decorators, modifiers); - } - if (decorators) { - var name_3 = createMissingNode(65, true, ts.Diagnostics.Declaration_expected); - return parsePropertyDeclaration(fullStart, decorators, modifiers, name_3, undefined); - } - ts.Debug.fail("Should not have attempted to parse class member declaration."); - } - function parseClassDeclaration(fullStart, decorators, modifiers) { - var savedStrictModeContext = inStrictModeContext(); - if (languageVersion >= 2) { - setStrictModeContext(true); - } - var node = createNode(198, fullStart); - node.decorators = decorators; - setModifiers(node, modifiers); - parseExpected(69); - node.name = node.flags & 256 ? parseOptionalIdentifier() : parseIdentifier(); - node.typeParameters = parseTypeParameters(); - node.heritageClauses = parseHeritageClauses(true); - if (parseExpected(14)) { - node.members = inGeneratorParameterContext() - ? doOutsideOfYieldContext(parseClassMembers) - : parseClassMembers(); - parseExpected(15); - } - else { - node.members = createMissingList(); - } - var finishedNode = finishNode(node); - setStrictModeContext(savedStrictModeContext); - return finishedNode; - } - function parseHeritageClauses(isClassHeritageClause) { - // ClassTail[Yield,GeneratorParameter] : See 14.5 - // [~GeneratorParameter]ClassHeritage[?Yield]opt { ClassBody[?Yield]opt } - // [+GeneratorParameter] ClassHeritageopt { ClassBodyopt } - if (isHeritageClause()) { - return isClassHeritageClause && inGeneratorParameterContext() - ? doOutsideOfYieldContext(parseHeritageClausesWorker) - : parseHeritageClausesWorker(); - } - return undefined; - } - function parseHeritageClausesWorker() { - return parseList(19, false, parseHeritageClause); - } - function parseHeritageClause() { - if (token === 79 || token === 103) { - var node = createNode(219); - node.token = token; - nextToken(); - node.types = parseDelimitedList(8, parseTypeReference); - return finishNode(node); - } - return undefined; - } - function isHeritageClause() { - return token === 79 || token === 103; - } - function parseClassMembers() { - return parseList(6, false, parseClassElement); - } - function parseInterfaceDeclaration(fullStart, decorators, modifiers) { - var node = createNode(199, fullStart); - node.decorators = decorators; - setModifiers(node, modifiers); - parseExpected(104); - node.name = parseIdentifier(); - node.typeParameters = parseTypeParameters(); - node.heritageClauses = parseHeritageClauses(false); - node.members = parseObjectTypeMembers(); - return finishNode(node); - } - function parseTypeAliasDeclaration(fullStart, decorators, modifiers) { - var node = createNode(200, fullStart); - node.decorators = decorators; - setModifiers(node, modifiers); - parseExpected(123); - node.name = parseIdentifier(); - parseExpected(53); - node.type = parseType(); - parseSemicolon(); - return finishNode(node); - } - function parseEnumMember() { - var node = createNode(223, scanner.getStartPos()); - node.name = parsePropertyName(); - node.initializer = allowInAnd(parseNonParameterInitializer); - return finishNode(node); - } - function parseEnumDeclaration(fullStart, decorators, modifiers) { - var node = createNode(201, fullStart); - node.decorators = decorators; - setModifiers(node, modifiers); - parseExpected(77); - node.name = parseIdentifier(); - if (parseExpected(14)) { - node.members = parseDelimitedList(7, parseEnumMember); - parseExpected(15); - } - else { - node.members = createMissingList(); - } - return finishNode(node); - } - function parseModuleBlock() { - var node = createNode(203, scanner.getStartPos()); - if (parseExpected(14)) { - node.statements = parseList(1, false, parseModuleElement); - parseExpected(15); - } - else { - node.statements = createMissingList(); - } - return finishNode(node); - } - function parseInternalModuleTail(fullStart, decorators, modifiers, flags) { - var node = createNode(202, fullStart); - node.decorators = decorators; - setModifiers(node, modifiers); - node.flags |= flags; - node.name = parseIdentifier(); - node.body = parseOptional(20) - ? parseInternalModuleTail(getNodePos(), undefined, undefined, 1) - : parseModuleBlock(); - return finishNode(node); - } - function parseAmbientExternalModuleDeclaration(fullStart, decorators, modifiers) { - var node = createNode(202, fullStart); - node.decorators = decorators; - setModifiers(node, modifiers); - node.name = parseLiteralNode(true); - node.body = parseModuleBlock(); - return finishNode(node); - } - function parseModuleDeclaration(fullStart, decorators, modifiers) { - parseExpected(117); - return token === 8 - ? parseAmbientExternalModuleDeclaration(fullStart, decorators, modifiers) - : parseInternalModuleTail(fullStart, decorators, modifiers, modifiers ? modifiers.flags : 0); - } - function isExternalModuleReference() { - return token === 118 && - lookAhead(nextTokenIsOpenParen); - } - function nextTokenIsOpenParen() { - return nextToken() === 16; - } - function nextTokenIsCommaOrFromKeyword() { - nextToken(); - return token === 23 || - token === 124; - } - function parseImportDeclarationOrImportEqualsDeclaration(fullStart, decorators, modifiers) { - parseExpected(85); - var afterImportPos = scanner.getStartPos(); - var identifier; - if (isIdentifier()) { - identifier = parseIdentifier(); - if (token !== 23 && token !== 124) { - var importEqualsDeclaration = createNode(205, fullStart); - importEqualsDeclaration.decorators = decorators; - setModifiers(importEqualsDeclaration, modifiers); - importEqualsDeclaration.name = identifier; - parseExpected(53); - importEqualsDeclaration.moduleReference = parseModuleReference(); - parseSemicolon(); - return finishNode(importEqualsDeclaration); - } - } - var importDeclaration = createNode(206, fullStart); - importDeclaration.decorators = decorators; - setModifiers(importDeclaration, modifiers); - if (identifier || - token === 35 || - token === 14) { - importDeclaration.importClause = parseImportClause(identifier, afterImportPos); - parseExpected(124); - } - importDeclaration.moduleSpecifier = parseModuleSpecifier(); - parseSemicolon(); - return finishNode(importDeclaration); - } - function parseImportClause(identifier, fullStart) { - //ImportClause: - // ImportedDefaultBinding - // NameSpaceImport - // NamedImports - // ImportedDefaultBinding, NameSpaceImport - // ImportedDefaultBinding, NamedImports - var importClause = createNode(207, fullStart); - if (identifier) { - importClause.name = identifier; - } - if (!importClause.name || - parseOptional(23)) { - importClause.namedBindings = token === 35 ? parseNamespaceImport() : parseNamedImportsOrExports(209); - } - return finishNode(importClause); - } - function parseModuleReference() { - return isExternalModuleReference() - ? parseExternalModuleReference() - : parseEntityName(false); - } - function parseExternalModuleReference() { - var node = createNode(216); - parseExpected(118); - parseExpected(16); - node.expression = parseModuleSpecifier(); - parseExpected(17); - return finishNode(node); - } - function parseModuleSpecifier() { - var result = parseExpression(); - if (result.kind === 8) { - internIdentifier(result.text); - } - return result; - } - function parseNamespaceImport() { - var namespaceImport = createNode(208); - parseExpected(35); - parseExpected(102); - namespaceImport.name = parseIdentifier(); - return finishNode(namespaceImport); - } - function parseNamedImportsOrExports(kind) { - var node = createNode(kind); - node.elements = parseBracketedList(20, kind === 209 ? parseImportSpecifier : parseExportSpecifier, 14, 15); - return finishNode(node); - } - function parseExportSpecifier() { - return parseImportOrExportSpecifier(214); - } - function parseImportSpecifier() { - return parseImportOrExportSpecifier(210); - } - function parseImportOrExportSpecifier(kind) { - var node = createNode(kind); - var checkIdentifierIsKeyword = ts.isKeyword(token) && !isIdentifier(); - var checkIdentifierStart = scanner.getTokenPos(); - var checkIdentifierEnd = scanner.getTextPos(); - var identifierName = parseIdentifierName(); - if (token === 102) { - node.propertyName = identifierName; - parseExpected(102); - checkIdentifierIsKeyword = ts.isKeyword(token) && !isIdentifier(); - checkIdentifierStart = scanner.getTokenPos(); - checkIdentifierEnd = scanner.getTextPos(); - node.name = parseIdentifierName(); - } - else { - node.name = identifierName; - } - if (kind === 210 && checkIdentifierIsKeyword) { - parseErrorAtPosition(checkIdentifierStart, checkIdentifierEnd - checkIdentifierStart, ts.Diagnostics.Identifier_expected); - } - return finishNode(node); - } - function parseExportDeclaration(fullStart, decorators, modifiers) { - var node = createNode(212, fullStart); - node.decorators = decorators; - setModifiers(node, modifiers); - if (parseOptional(35)) { - parseExpected(124); - node.moduleSpecifier = parseModuleSpecifier(); - } - else { - node.exportClause = parseNamedImportsOrExports(213); - if (parseOptional(124)) { - node.moduleSpecifier = parseModuleSpecifier(); - } - } - parseSemicolon(); - return finishNode(node); - } - function parseExportAssignment(fullStart, decorators, modifiers) { - var node = createNode(211, fullStart); - node.decorators = decorators; - setModifiers(node, modifiers); - if (parseOptional(53)) { - node.isExportEquals = true; - node.expression = parseAssignmentExpressionOrHigher(); - } - else { - parseExpected(73); - if (parseOptional(51)) { - node.type = parseType(); - } - else { - node.expression = parseAssignmentExpressionOrHigher(); - } - } - parseSemicolon(); - return finishNode(node); - } - function isLetDeclaration() { - return inStrictModeContext() || lookAhead(nextTokenIsIdentifierOrStartOfDestructuringOnTheSameLine); - } - function isDeclarationStart(followsModifier) { - switch (token) { - case 98: - case 70: - case 83: - return true; - case 105: - return isLetDeclaration(); - case 69: - case 104: - case 77: - case 123: - return lookAhead(nextTokenIsIdentifierOrKeyword); - case 85: - return lookAhead(nextTokenCanFollowImportKeyword); - case 117: - return lookAhead(nextTokenIsIdentifierOrKeywordOrStringLiteral); - case 78: - return lookAhead(nextTokenCanFollowExportKeyword); - case 115: - case 109: - case 107: - case 108: - case 110: - return lookAhead(nextTokenIsDeclarationStart); - case 52: - return !followsModifier; - } - } - function isIdentifierOrKeyword() { - return token >= 65; - } - function nextTokenIsIdentifierOrKeyword() { - nextToken(); - return isIdentifierOrKeyword(); - } - function nextTokenIsIdentifierOrKeywordOrStringLiteral() { - nextToken(); - return isIdentifierOrKeyword() || token === 8; - } - function nextTokenCanFollowImportKeyword() { - nextToken(); - return isIdentifierOrKeyword() || token === 8 || - token === 35 || token === 14; - } - function nextTokenCanFollowExportKeyword() { - nextToken(); - return token === 53 || token === 35 || - token === 14 || token === 73 || isDeclarationStart(true); - } - function nextTokenIsDeclarationStart() { - nextToken(); - return isDeclarationStart(true); - } - function nextTokenIsAsKeyword() { - return nextToken() === 102; - } - function parseDeclaration() { - var fullStart = getNodePos(); - var decorators = parseDecorators(); - var modifiers = parseModifiers(); - if (token === 78) { - nextToken(); - if (token === 73 || token === 53) { - return parseExportAssignment(fullStart, decorators, modifiers); - } - if (token === 35 || token === 14) { - return parseExportDeclaration(fullStart, decorators, modifiers); - } - } - switch (token) { - case 98: - case 105: - case 70: - return parseVariableStatement(fullStart, decorators, modifiers); - case 83: - return parseFunctionDeclaration(fullStart, decorators, modifiers); - case 69: - return parseClassDeclaration(fullStart, decorators, modifiers); - case 104: - return parseInterfaceDeclaration(fullStart, decorators, modifiers); - case 123: - return parseTypeAliasDeclaration(fullStart, decorators, modifiers); - case 77: - return parseEnumDeclaration(fullStart, decorators, modifiers); - case 117: - return parseModuleDeclaration(fullStart, decorators, modifiers); - case 85: - return parseImportDeclarationOrImportEqualsDeclaration(fullStart, decorators, modifiers); - default: - if (decorators) { - var node = createMissingNode(215, true, ts.Diagnostics.Declaration_expected); - node.pos = fullStart; - node.decorators = decorators; - setModifiers(node, modifiers); - return finishNode(node); - } - ts.Debug.fail("Mismatch between isDeclarationStart and parseDeclaration"); - } - } - function isSourceElement(inErrorRecovery) { - return isDeclarationStart() || isStartOfStatement(inErrorRecovery); - } - function parseSourceElement() { - return parseSourceElementOrModuleElement(); - } - function parseModuleElement() { - return parseSourceElementOrModuleElement(); - } - function parseSourceElementOrModuleElement() { - return isDeclarationStart() - ? parseDeclaration() - : parseStatement(); - } - function processReferenceComments(sourceFile) { - var triviaScanner = ts.createScanner(sourceFile.languageVersion, false, sourceText); - var referencedFiles = []; - var amdDependencies = []; - var amdModuleName; - while (true) { - var kind = triviaScanner.scan(); - if (kind === 5 || kind === 4 || kind === 3) { - continue; - } - if (kind !== 2) { - break; - } - var range = { pos: triviaScanner.getTokenPos(), end: triviaScanner.getTextPos() }; - var comment = sourceText.substring(range.pos, range.end); - var referencePathMatchResult = ts.getFileReferenceFromReferencePath(comment, range); - if (referencePathMatchResult) { - var fileReference = referencePathMatchResult.fileReference; - sourceFile.hasNoDefaultLib = referencePathMatchResult.isNoDefaultLib; - var diagnosticMessage = referencePathMatchResult.diagnosticMessage; - if (fileReference) { - referencedFiles.push(fileReference); - } - if (diagnosticMessage) { - sourceFile.parseDiagnostics.push(ts.createFileDiagnostic(sourceFile, range.pos, range.end - range.pos, diagnosticMessage)); - } - } - else { - var amdModuleNameRegEx = /^\/\/\/\s*= 53 && token <= 64; - } - ts.isAssignmentOperator = isAssignmentOperator; -})(ts || (ts = {})); -/// -var ts; -(function (ts) { - ts.bindTime = 0; - (function (ModuleInstanceState) { - ModuleInstanceState[ModuleInstanceState["NonInstantiated"] = 0] = "NonInstantiated"; - ModuleInstanceState[ModuleInstanceState["Instantiated"] = 1] = "Instantiated"; - ModuleInstanceState[ModuleInstanceState["ConstEnumOnly"] = 2] = "ConstEnumOnly"; - })(ts.ModuleInstanceState || (ts.ModuleInstanceState = {})); - var ModuleInstanceState = ts.ModuleInstanceState; - function getModuleInstanceState(node) { - if (node.kind === 199 || node.kind === 200) { - return 0; - } - else if (ts.isConstEnumDeclaration(node)) { - return 2; - } - else if ((node.kind === 206 || node.kind === 205) && !(node.flags & 1)) { - return 0; - } - else if (node.kind === 203) { - var state = 0; - ts.forEachChild(node, function (n) { - switch (getModuleInstanceState(n)) { - case 0: - return false; - case 2: - state = 2; - return false; - case 1: - state = 1; - return true; - } - }); - return state; - } - else if (node.kind === 202) { - return getModuleInstanceState(node.body); - } - else { - return 1; - } - } - ts.getModuleInstanceState = getModuleInstanceState; - function bindSourceFile(file) { - var start = new Date().getTime(); - bindSourceFileWorker(file); - ts.bindTime += new Date().getTime() - start; - } - ts.bindSourceFile = bindSourceFile; - function bindSourceFileWorker(file) { - var parent; - var container; - var blockScopeContainer; - var lastContainer; - var symbolCount = 0; - var Symbol = ts.objectAllocator.getSymbolConstructor(); - if (!file.locals) { - file.locals = {}; - container = file; - setBlockScopeContainer(file, false); - bind(file); - file.symbolCount = symbolCount; - } - function createSymbol(flags, name) { - symbolCount++; - return new Symbol(flags, name); - } - function setBlockScopeContainer(node, cleanLocals) { - blockScopeContainer = node; - if (cleanLocals) { - blockScopeContainer.locals = undefined; - } - } - function addDeclarationToSymbol(symbol, node, symbolKind) { - symbol.flags |= symbolKind; - if (!symbol.declarations) - symbol.declarations = []; - symbol.declarations.push(node); - if (symbolKind & 1952 && !symbol.exports) - symbol.exports = {}; - if (symbolKind & 6240 && !symbol.members) - symbol.members = {}; - node.symbol = symbol; - if (symbolKind & 107455 && !symbol.valueDeclaration) - symbol.valueDeclaration = node; - } - function getDeclarationName(node) { - if (node.name) { - if (node.kind === 202 && node.name.kind === 8) { - return '"' + node.name.text + '"'; - } - if (node.name.kind === 127) { - var nameExpression = node.name.expression; - ts.Debug.assert(ts.isWellKnownSymbolSyntactically(nameExpression)); - return ts.getPropertyNameForKnownSymbolName(nameExpression.name.text); - } - return node.name.text; - } - switch (node.kind) { - case 143: - case 135: - return "__constructor"; - case 142: - case 138: - return "__call"; - case 139: - return "__new"; - case 140: - return "__index"; - case 212: - return "__export"; - case 211: - return node.isExportEquals ? "export=" : "default"; - case 197: - case 198: - return node.flags & 256 ? "default" : undefined; - } - } - function getDisplayName(node) { - return node.name ? ts.declarationNameToString(node.name) : getDeclarationName(node); - } - function declareSymbol(symbols, parent, node, includes, excludes) { - ts.Debug.assert(!ts.hasDynamicName(node)); - var name = node.flags & 256 && parent ? "default" : getDeclarationName(node); - var symbol; - if (name !== undefined) { - symbol = ts.hasProperty(symbols, name) ? symbols[name] : (symbols[name] = createSymbol(0, name)); - if (symbol.flags & excludes) { - if (node.name) { - node.name.parent = node; - } - var message = symbol.flags & 2 - ? ts.Diagnostics.Cannot_redeclare_block_scoped_variable_0 - : ts.Diagnostics.Duplicate_identifier_0; - ts.forEach(symbol.declarations, function (declaration) { - file.bindDiagnostics.push(ts.createDiagnosticForNode(declaration.name || declaration, message, getDisplayName(declaration))); - }); - file.bindDiagnostics.push(ts.createDiagnosticForNode(node.name || node, message, getDisplayName(node))); - symbol = createSymbol(0, name); - } - } - else { - symbol = createSymbol(0, "__missing"); - } - addDeclarationToSymbol(symbol, node, includes); - symbol.parent = parent; - if (node.kind === 198 && symbol.exports) { - var prototypeSymbol = createSymbol(4 | 134217728, "prototype"); - if (ts.hasProperty(symbol.exports, prototypeSymbol.name)) { - if (node.name) { - node.name.parent = node; - } - file.bindDiagnostics.push(ts.createDiagnosticForNode(symbol.exports[prototypeSymbol.name].declarations[0], ts.Diagnostics.Duplicate_identifier_0, prototypeSymbol.name)); - } - symbol.exports[prototypeSymbol.name] = prototypeSymbol; - prototypeSymbol.parent = symbol; - } - return symbol; - } - function declareModuleMember(node, symbolKind, symbolExcludes) { - var hasExportModifier = ts.getCombinedNodeFlags(node) & 1; - if (symbolKind & 8388608) { - if (node.kind === 214 || (node.kind === 205 && hasExportModifier)) { - declareSymbol(container.symbol.exports, container.symbol, node, symbolKind, symbolExcludes); - } - else { - declareSymbol(container.locals, undefined, node, symbolKind, symbolExcludes); - } - } - else { - if (hasExportModifier || container.flags & 32768) { - var exportKind = (symbolKind & 107455 ? 1048576 : 0) | - (symbolKind & 793056 ? 2097152 : 0) | - (symbolKind & 1536 ? 4194304 : 0); - var local = declareSymbol(container.locals, undefined, node, exportKind, symbolExcludes); - local.exportSymbol = declareSymbol(container.symbol.exports, container.symbol, node, symbolKind, symbolExcludes); - node.localSymbol = local; - } - else { - declareSymbol(container.locals, undefined, node, symbolKind, symbolExcludes); - } - } - } - function bindChildren(node, symbolKind, isBlockScopeContainer) { - if (symbolKind & 255504) { - node.locals = {}; - } - var saveParent = parent; - var saveContainer = container; - var savedBlockScopeContainer = blockScopeContainer; - parent = node; - if (symbolKind & 262128) { - container = node; - if (lastContainer) { - lastContainer.nextContainer = container; - } - lastContainer = container; - } - if (isBlockScopeContainer) { - setBlockScopeContainer(node, (symbolKind & 255504) === 0 && node.kind !== 224); - } - ts.forEachChild(node, bind); - container = saveContainer; - parent = saveParent; - blockScopeContainer = savedBlockScopeContainer; - } - function bindDeclaration(node, symbolKind, symbolExcludes, isBlockScopeContainer) { - switch (container.kind) { - case 202: - declareModuleMember(node, symbolKind, symbolExcludes); - break; - case 224: - if (ts.isExternalModule(container)) { - declareModuleMember(node, symbolKind, symbolExcludes); - break; - } - case 142: - case 143: - case 138: - case 139: - case 140: - case 134: - case 133: - case 135: - case 136: - case 137: - case 197: - case 162: - case 163: - declareSymbol(container.locals, undefined, node, symbolKind, symbolExcludes); - break; - case 198: - if (node.flags & 128) { - declareSymbol(container.symbol.exports, container.symbol, node, symbolKind, symbolExcludes); - break; - } - case 145: - case 154: - case 199: - declareSymbol(container.symbol.members, container.symbol, node, symbolKind, symbolExcludes); - break; - case 201: - declareSymbol(container.symbol.exports, container.symbol, node, symbolKind, symbolExcludes); - break; - } - bindChildren(node, symbolKind, isBlockScopeContainer); - } - function isAmbientContext(node) { - while (node) { - if (node.flags & 2) - return true; - node = node.parent; - } - return false; - } - function hasExportDeclarations(node) { - var body = node.kind === 224 ? node : node.body; - if (body.kind === 224 || body.kind === 203) { - for (var _i = 0, _a = body.statements, _n = _a.length; _i < _n; _i++) { - var stat = _a[_i]; - if (stat.kind === 212 || stat.kind === 211) { - return true; - } - } - } - return false; - } - function setExportContextFlag(node) { - if (isAmbientContext(node) && !hasExportDeclarations(node)) { - node.flags |= 32768; - } - else { - node.flags &= ~32768; - } - } - function bindModuleDeclaration(node) { - setExportContextFlag(node); - if (node.name.kind === 8) { - bindDeclaration(node, 512, 106639, true); - } - else { - var state = getModuleInstanceState(node); - if (state === 0) { - bindDeclaration(node, 1024, 0, true); - } - else { - bindDeclaration(node, 512, 106639, true); - var currentModuleIsConstEnumOnly = state === 2; - if (node.symbol.constEnumOnlyModule === undefined) { - node.symbol.constEnumOnlyModule = currentModuleIsConstEnumOnly; - } - else { - node.symbol.constEnumOnlyModule = node.symbol.constEnumOnlyModule && currentModuleIsConstEnumOnly; - } - } - } - } - function bindFunctionOrConstructorType(node) { - // For a given function symbol "<...>(...) => T" we want to generate a symbol identical - // to the one we would get for: { <...>(...): T } - // - // We do that by making an anonymous type literal symbol, and then setting the function - // symbol as its sole member. To the rest of the system, this symbol will be indistinguishable - // from an actual type literal symbol you would have gotten had you used the long form. - var symbol = createSymbol(131072, getDeclarationName(node)); - addDeclarationToSymbol(symbol, node, 131072); - bindChildren(node, 131072, false); - var typeLiteralSymbol = createSymbol(2048, "__type"); - addDeclarationToSymbol(typeLiteralSymbol, node, 2048); - typeLiteralSymbol.members = {}; - typeLiteralSymbol.members[node.kind === 142 ? "__call" : "__new"] = symbol; - } - function bindAnonymousDeclaration(node, symbolKind, name, isBlockScopeContainer) { - var symbol = createSymbol(symbolKind, name); - addDeclarationToSymbol(symbol, node, symbolKind); - bindChildren(node, symbolKind, isBlockScopeContainer); - } - function bindCatchVariableDeclaration(node) { - bindChildren(node, 0, true); - } - function bindBlockScopedVariableDeclaration(node) { - switch (blockScopeContainer.kind) { - case 202: - declareModuleMember(node, 2, 107455); - break; - case 224: - if (ts.isExternalModule(container)) { - declareModuleMember(node, 2, 107455); - break; - } - default: - if (!blockScopeContainer.locals) { - blockScopeContainer.locals = {}; - } - declareSymbol(blockScopeContainer.locals, undefined, node, 2, 107455); - } - bindChildren(node, 2, false); - } - function getDestructuringParameterName(node) { - return "__" + ts.indexOf(node.parent.parameters, node); - } - function bind(node) { - node.parent = parent; - switch (node.kind) { - case 128: - bindDeclaration(node, 262144, 530912, false); - break; - case 129: - bindParameter(node); - break; - case 195: - case 152: - if (ts.isBindingPattern(node.name)) { - bindChildren(node, 0, false); - } - else if (ts.isBlockOrCatchScoped(node)) { - bindBlockScopedVariableDeclaration(node); - } - else { - bindDeclaration(node, 1, 107454, false); - } - break; - case 132: - case 131: - bindPropertyOrMethodOrAccessor(node, 4 | (node.questionToken ? 536870912 : 0), 107455, false); - break; - case 221: - case 222: - bindPropertyOrMethodOrAccessor(node, 4, 107455, false); - break; - case 223: - bindPropertyOrMethodOrAccessor(node, 8, 107455, false); - break; - case 138: - case 139: - case 140: - bindDeclaration(node, 131072, 0, false); - break; - case 134: - case 133: - bindPropertyOrMethodOrAccessor(node, 8192 | (node.questionToken ? 536870912 : 0), ts.isObjectLiteralMethod(node) ? 107455 : 99263, true); - break; - case 197: - bindDeclaration(node, 16, 106927, true); - break; - case 135: - bindDeclaration(node, 16384, 0, true); - break; - case 136: - bindPropertyOrMethodOrAccessor(node, 32768, 41919, true); - break; - case 137: - bindPropertyOrMethodOrAccessor(node, 65536, 74687, true); - break; - case 142: - case 143: - bindFunctionOrConstructorType(node); - break; - case 145: - bindAnonymousDeclaration(node, 2048, "__type", false); - break; - case 154: - bindAnonymousDeclaration(node, 4096, "__object", false); - break; - case 162: - case 163: - bindAnonymousDeclaration(node, 16, "__function", true); - break; - case 220: - bindCatchVariableDeclaration(node); - break; - case 198: - bindDeclaration(node, 32, 899583, false); - break; - case 199: - bindDeclaration(node, 64, 792992, false); - break; - case 200: - bindDeclaration(node, 524288, 793056, false); - break; - case 201: - if (ts.isConst(node)) { - bindDeclaration(node, 128, 899967, false); - } - else { - bindDeclaration(node, 256, 899327, false); - } - break; - case 202: - bindModuleDeclaration(node); - break; - case 205: - case 208: - case 210: - case 214: - bindDeclaration(node, 8388608, 8388608, false); - break; - case 207: - if (node.name) { - bindDeclaration(node, 8388608, 8388608, false); - } - else { - bindChildren(node, 0, false); - } - break; - case 212: - if (!node.exportClause) { - declareSymbol(container.symbol.exports, container.symbol, node, 1073741824, 0); - } - bindChildren(node, 0, false); - break; - case 211: - if (node.expression && node.expression.kind === 65) { - declareSymbol(container.symbol.exports, container.symbol, node, 8388608, 107455 | 8388608); - } - else { - declareSymbol(container.symbol.exports, container.symbol, node, 4, 107455 | 8388608); - } - bindChildren(node, 0, false); - break; - case 224: - setExportContextFlag(node); - if (ts.isExternalModule(node)) { - bindAnonymousDeclaration(node, 512, '"' + ts.removeFileExtension(node.fileName) + '"', true); - break; - } - case 176: - bindChildren(node, 0, !ts.isFunctionLike(node.parent)); - break; - case 220: - case 183: - case 184: - case 185: - case 204: - bindChildren(node, 0, true); - break; - default: - var saveParent = parent; - parent = node; - ts.forEachChild(node, bind); - parent = saveParent; - } - } - function bindParameter(node) { - if (ts.isBindingPattern(node.name)) { - bindAnonymousDeclaration(node, 1, getDestructuringParameterName(node), false); - } - else { - bindDeclaration(node, 1, 107455, false); - } - if (node.flags & 112 && - node.parent.kind === 135 && - node.parent.parent.kind === 198) { - var classDeclaration = node.parent.parent; - declareSymbol(classDeclaration.symbol.members, classDeclaration.symbol, node, 4, 107455); - } - } - function bindPropertyOrMethodOrAccessor(node, symbolKind, symbolExcludes, isBlockScopeContainer) { - if (ts.hasDynamicName(node)) { - bindAnonymousDeclaration(node, symbolKind, "__computed", isBlockScopeContainer); - } - else { - bindDeclaration(node, symbolKind, symbolExcludes, isBlockScopeContainer); - } - } - } -})(ts || (ts = {})); -/// -var ts; -(function (ts) { - var nextSymbolId = 1; - var nextNodeId = 1; - var nextMergeId = 1; - function getNodeId(node) { - if (!node.id) - node.id = nextNodeId++; - return node.id; - } - ts.getNodeId = getNodeId; - ts.checkTime = 0; - function getSymbolId(symbol) { - if (!symbol.id) { - symbol.id = nextSymbolId++; - } - return symbol.id; - } - ts.getSymbolId = getSymbolId; - function createTypeChecker(host, produceDiagnostics) { - var Symbol = ts.objectAllocator.getSymbolConstructor(); - var Type = ts.objectAllocator.getTypeConstructor(); - var Signature = ts.objectAllocator.getSignatureConstructor(); - var typeCount = 0; - var emptyArray = []; - var emptySymbols = {}; - var compilerOptions = host.getCompilerOptions(); - var languageVersion = compilerOptions.target || 0; - var emitResolver = createResolver(); - var undefinedSymbol = createSymbol(4 | 67108864, "undefined"); - var argumentsSymbol = createSymbol(4 | 67108864, "arguments"); - var checker = { - getNodeCount: function () { return ts.sum(host.getSourceFiles(), "nodeCount"); }, - getIdentifierCount: function () { return ts.sum(host.getSourceFiles(), "identifierCount"); }, - getSymbolCount: function () { return ts.sum(host.getSourceFiles(), "symbolCount"); }, - getTypeCount: function () { return typeCount; }, - isUndefinedSymbol: function (symbol) { return symbol === undefinedSymbol; }, - isArgumentsSymbol: function (symbol) { return symbol === argumentsSymbol; }, - getDiagnostics: getDiagnostics, - getGlobalDiagnostics: getGlobalDiagnostics, - getTypeOfSymbolAtLocation: getTypeOfSymbolAtLocation, - getDeclaredTypeOfSymbol: getDeclaredTypeOfSymbol, - getPropertiesOfType: getPropertiesOfType, - getPropertyOfType: getPropertyOfType, - getSignaturesOfType: getSignaturesOfType, - getIndexTypeOfType: getIndexTypeOfType, - getReturnTypeOfSignature: getReturnTypeOfSignature, - getSymbolsInScope: getSymbolsInScope, - getSymbolAtLocation: getSymbolAtLocation, - getShorthandAssignmentValueSymbol: getShorthandAssignmentValueSymbol, - getTypeAtLocation: getTypeAtLocation, - typeToString: typeToString, - getSymbolDisplayBuilder: getSymbolDisplayBuilder, - symbolToString: symbolToString, - getAugmentedPropertiesOfType: getAugmentedPropertiesOfType, - getRootSymbols: getRootSymbols, - getContextualType: getContextualType, - getFullyQualifiedName: getFullyQualifiedName, - getResolvedSignature: getResolvedSignature, - getConstantValue: getConstantValue, - isValidPropertyAccess: isValidPropertyAccess, - getSignatureFromDeclaration: getSignatureFromDeclaration, - isImplementationOfOverload: isImplementationOfOverload, - getAliasedSymbol: resolveAlias, - getEmitResolver: getEmitResolver, - getExportsOfExternalModule: getExportsOfExternalModule - }; - var unknownSymbol = createSymbol(4 | 67108864, "unknown"); - var resolvingSymbol = createSymbol(67108864, "__resolving__"); - var anyType = createIntrinsicType(1, "any"); - var stringType = createIntrinsicType(2, "string"); - var numberType = createIntrinsicType(4, "number"); - var booleanType = createIntrinsicType(8, "boolean"); - var esSymbolType = createIntrinsicType(1048576, "symbol"); - var voidType = createIntrinsicType(16, "void"); - var undefinedType = createIntrinsicType(32 | 262144, "undefined"); - var nullType = createIntrinsicType(64 | 262144, "null"); - var unknownType = createIntrinsicType(1, "unknown"); - var resolvingType = createIntrinsicType(1, "__resolving__"); - var emptyObjectType = createAnonymousType(undefined, emptySymbols, emptyArray, emptyArray, undefined, undefined); - var anyFunctionType = createAnonymousType(undefined, emptySymbols, emptyArray, emptyArray, undefined, undefined); - var noConstraintType = createAnonymousType(undefined, emptySymbols, emptyArray, emptyArray, undefined, undefined); - var anySignature = createSignature(undefined, undefined, emptyArray, anyType, 0, false, false); - var unknownSignature = createSignature(undefined, undefined, emptyArray, unknownType, 0, false, false); - var globals = {}; - var globalArraySymbol; - var globalESSymbolConstructorSymbol; - var globalObjectType; - var globalFunctionType; - var globalArrayType; - var globalStringType; - var globalNumberType; - var globalBooleanType; - var globalRegExpType; - var globalTemplateStringsArrayType; - var globalESSymbolType; - var globalIterableType; - var anyArrayType; - var globalTypedPropertyDescriptorType; - var globalClassDecoratorType; - var globalParameterDecoratorType; - var globalPropertyDecoratorType; - var globalMethodDecoratorType; - var tupleTypes = {}; - var unionTypes = {}; - var stringLiteralTypes = {}; - var emitExtends = false; - var emitDecorate = false; - var mergedSymbols = []; - var symbolLinks = []; - var nodeLinks = []; - var potentialThisCollisions = []; - var diagnostics = ts.createDiagnosticCollection(); - var primitiveTypeInfo = { - "string": { - type: stringType, - flags: 258 - }, - "number": { - type: numberType, - flags: 132 - }, - "boolean": { - type: booleanType, - flags: 8 - }, - "symbol": { - type: esSymbolType, - flags: 1048576 - } - }; - function getEmitResolver(sourceFile) { - getDiagnostics(sourceFile); - return emitResolver; - } - function error(location, message, arg0, arg1, arg2) { - var diagnostic = location - ? ts.createDiagnosticForNode(location, message, arg0, arg1, arg2) - : ts.createCompilerDiagnostic(message, arg0, arg1, arg2); - diagnostics.add(diagnostic); - } - function createSymbol(flags, name) { - return new Symbol(flags, name); - } - function getExcludedSymbolFlags(flags) { - var result = 0; - if (flags & 2) - result |= 107455; - if (flags & 1) - result |= 107454; - if (flags & 4) - result |= 107455; - if (flags & 8) - result |= 107455; - if (flags & 16) - result |= 106927; - if (flags & 32) - result |= 899583; - if (flags & 64) - result |= 792992; - if (flags & 256) - result |= 899327; - if (flags & 128) - result |= 899967; - if (flags & 512) - result |= 106639; - if (flags & 8192) - result |= 99263; - if (flags & 32768) - result |= 41919; - if (flags & 65536) - result |= 74687; - if (flags & 262144) - result |= 530912; - if (flags & 524288) - result |= 793056; - if (flags & 8388608) - result |= 8388608; - return result; - } - function recordMergedSymbol(target, source) { - if (!source.mergeId) - source.mergeId = nextMergeId++; - mergedSymbols[source.mergeId] = target; - } - function cloneSymbol(symbol) { - var result = createSymbol(symbol.flags | 33554432, symbol.name); - result.declarations = symbol.declarations.slice(0); - result.parent = symbol.parent; - if (symbol.valueDeclaration) - result.valueDeclaration = symbol.valueDeclaration; - if (symbol.constEnumOnlyModule) - result.constEnumOnlyModule = true; - if (symbol.members) - result.members = cloneSymbolTable(symbol.members); - if (symbol.exports) - result.exports = cloneSymbolTable(symbol.exports); - recordMergedSymbol(result, symbol); - return result; - } - function mergeSymbol(target, source) { - if (!(target.flags & getExcludedSymbolFlags(source.flags))) { - if (source.flags & 512 && target.flags & 512 && target.constEnumOnlyModule && !source.constEnumOnlyModule) { - target.constEnumOnlyModule = false; - } - target.flags |= source.flags; - if (!target.valueDeclaration && source.valueDeclaration) - target.valueDeclaration = source.valueDeclaration; - ts.forEach(source.declarations, function (node) { - target.declarations.push(node); - }); - if (source.members) { - if (!target.members) - target.members = {}; - mergeSymbolTable(target.members, source.members); - } - if (source.exports) { - if (!target.exports) - target.exports = {}; - mergeSymbolTable(target.exports, source.exports); - } - recordMergedSymbol(target, source); - } - else { - var message = target.flags & 2 || source.flags & 2 - ? ts.Diagnostics.Cannot_redeclare_block_scoped_variable_0 : ts.Diagnostics.Duplicate_identifier_0; - ts.forEach(source.declarations, function (node) { - error(node.name ? node.name : node, message, symbolToString(source)); - }); - ts.forEach(target.declarations, function (node) { - error(node.name ? node.name : node, message, symbolToString(source)); - }); - } - } - function cloneSymbolTable(symbolTable) { - var result = {}; - for (var id in symbolTable) { - if (ts.hasProperty(symbolTable, id)) { - result[id] = symbolTable[id]; - } - } - return result; - } - function mergeSymbolTable(target, source) { - for (var id in source) { - if (ts.hasProperty(source, id)) { - if (!ts.hasProperty(target, id)) { - target[id] = source[id]; - } - else { - var symbol = target[id]; - if (!(symbol.flags & 33554432)) { - target[id] = symbol = cloneSymbol(symbol); - } - mergeSymbol(symbol, source[id]); - } - } - } - } - function getSymbolLinks(symbol) { - if (symbol.flags & 67108864) - return symbol; - var id = getSymbolId(symbol); - return symbolLinks[id] || (symbolLinks[id] = {}); - } - function getNodeLinks(node) { - var nodeId = getNodeId(node); - return nodeLinks[nodeId] || (nodeLinks[nodeId] = {}); - } - function getSourceFile(node) { - return ts.getAncestor(node, 224); - } - function isGlobalSourceFile(node) { - return node.kind === 224 && !ts.isExternalModule(node); - } - function getSymbol(symbols, name, meaning) { - if (meaning && ts.hasProperty(symbols, name)) { - var symbol = symbols[name]; - ts.Debug.assert((symbol.flags & 16777216) === 0, "Should never get an instantiated symbol here."); - if (symbol.flags & meaning) { - return symbol; - } - if (symbol.flags & 8388608) { - var target = resolveAlias(symbol); - if (target === unknownSymbol || target.flags & meaning) { - return symbol; - } - } - } - } - function isDefinedBefore(node1, node2) { - var file1 = ts.getSourceFileOfNode(node1); - var file2 = ts.getSourceFileOfNode(node2); - if (file1 === file2) { - return node1.pos <= node2.pos; - } - if (!compilerOptions.out) { - return true; - } - var sourceFiles = host.getSourceFiles(); - return sourceFiles.indexOf(file1) <= sourceFiles.indexOf(file2); - } - function resolveName(location, name, meaning, nameNotFoundMessage, nameArg) { - var result; - var lastLocation; - var propertyWithInvalidInitializer; - var errorLocation = location; - var grandparent; - loop: while (location) { - if (location.locals && !isGlobalSourceFile(location)) { - if (result = getSymbol(location.locals, name, meaning)) { - break loop; - } - } - switch (location.kind) { - case 224: - if (!ts.isExternalModule(location)) - break; - case 202: - if (result = getSymbol(getSymbolOfNode(location).exports, name, meaning & 8914931)) { - if (result.flags & meaning || !(result.flags & 8388608 && getDeclarationOfAliasSymbol(result).kind === 214)) { - break loop; - } - result = undefined; - } - break; - case 201: - if (result = getSymbol(getSymbolOfNode(location).exports, name, meaning & 8)) { - break loop; - } - break; - case 132: - case 131: - if (location.parent.kind === 198 && !(location.flags & 128)) { - var ctor = findConstructorDeclaration(location.parent); - if (ctor && ctor.locals) { - if (getSymbol(ctor.locals, name, meaning & 107455)) { - propertyWithInvalidInitializer = location; - } - } - } - break; - case 198: - case 199: - if (result = getSymbol(getSymbolOfNode(location).members, name, meaning & 793056)) { - if (lastLocation && lastLocation.flags & 128) { - error(errorLocation, ts.Diagnostics.Static_members_cannot_reference_class_type_parameters); - return undefined; - } - break loop; - } - break; - case 127: - grandparent = location.parent.parent; - if (grandparent.kind === 198 || grandparent.kind === 199) { - if (result = getSymbol(getSymbolOfNode(grandparent).members, name, meaning & 793056)) { - error(errorLocation, ts.Diagnostics.A_computed_property_name_cannot_reference_a_type_parameter_from_its_containing_type); - return undefined; - } - } - break; - case 134: - case 133: - case 135: - case 136: - case 137: - case 197: - case 163: - if (name === "arguments") { - result = argumentsSymbol; - break loop; - } - break; - case 162: - if (name === "arguments") { - result = argumentsSymbol; - break loop; - } - var id = location.name; - if (id && name === id.text) { - result = location.symbol; - break loop; - } - break; - case 130: - if (location.parent && location.parent.kind === 129) { - location = location.parent; - } - if (location.parent && ts.isClassElement(location.parent)) { - location = location.parent; - } - break; - } - lastLocation = location; - location = location.parent; - } - if (!result) { - result = getSymbol(globals, name, meaning); - } - if (!result) { - if (nameNotFoundMessage) { - error(errorLocation, nameNotFoundMessage, typeof nameArg === "string" ? nameArg : ts.declarationNameToString(nameArg)); - } - return undefined; - } - if (nameNotFoundMessage) { - if (propertyWithInvalidInitializer) { - var propertyName = propertyWithInvalidInitializer.name; - error(errorLocation, ts.Diagnostics.Initializer_of_instance_member_variable_0_cannot_reference_identifier_1_declared_in_the_constructor, ts.declarationNameToString(propertyName), typeof nameArg === "string" ? nameArg : ts.declarationNameToString(nameArg)); - return undefined; - } - if (result.flags & 2) { - checkResolvedBlockScopedVariable(result, errorLocation); - } - } - return result; - } - function checkResolvedBlockScopedVariable(result, errorLocation) { - ts.Debug.assert((result.flags & 2) !== 0); - var declaration = ts.forEach(result.declarations, function (d) { return ts.isBlockOrCatchScoped(d) ? d : undefined; }); - ts.Debug.assert(declaration !== undefined, "Block-scoped variable declaration is undefined"); - var isUsedBeforeDeclaration = !isDefinedBefore(declaration, errorLocation); - if (!isUsedBeforeDeclaration) { - var variableDeclaration = ts.getAncestor(declaration, 195); - var container = ts.getEnclosingBlockScopeContainer(variableDeclaration); - if (variableDeclaration.parent.parent.kind === 177 || - variableDeclaration.parent.parent.kind === 183) { - isUsedBeforeDeclaration = isSameScopeDescendentOf(errorLocation, variableDeclaration, container); - } - else if (variableDeclaration.parent.parent.kind === 185 || - variableDeclaration.parent.parent.kind === 184) { - var expression = variableDeclaration.parent.parent.expression; - isUsedBeforeDeclaration = isSameScopeDescendentOf(errorLocation, expression, container); - } - } - if (isUsedBeforeDeclaration) { - error(errorLocation, ts.Diagnostics.Block_scoped_variable_0_used_before_its_declaration, ts.declarationNameToString(declaration.name)); - } - } - function isSameScopeDescendentOf(initial, parent, stopAt) { - if (!parent) { - return false; - } - for (var current = initial; current && current !== stopAt && !ts.isFunctionLike(current); current = current.parent) { - if (current === parent) { - return true; - } - } - return false; - } - function getAnyImportSyntax(node) { - if (ts.isAliasSymbolDeclaration(node)) { - if (node.kind === 205) { - return node; - } - while (node && node.kind !== 206) { - node = node.parent; - } - return node; - } - } - function getDeclarationOfAliasSymbol(symbol) { - return ts.forEach(symbol.declarations, function (d) { return ts.isAliasSymbolDeclaration(d) ? d : undefined; }); - } - function getTargetOfImportEqualsDeclaration(node) { - if (node.moduleReference.kind === 216) { - return resolveExternalModuleSymbol(resolveExternalModuleName(node, ts.getExternalModuleImportEqualsDeclarationExpression(node))); - } - return getSymbolOfPartOfRightHandSideOfImportEquals(node.moduleReference, node); - } - function getTargetOfImportClause(node) { - var moduleSymbol = resolveExternalModuleName(node, node.parent.moduleSpecifier); - if (moduleSymbol) { - var exportDefaultSymbol = resolveSymbol(moduleSymbol.exports["default"]); - if (!exportDefaultSymbol) { - error(node.name, ts.Diagnostics.External_module_0_has_no_default_export, symbolToString(moduleSymbol)); - } - return exportDefaultSymbol; - } - } - function getTargetOfNamespaceImport(node) { - var moduleSpecifier = node.parent.parent.moduleSpecifier; - return resolveESModuleSymbol(resolveExternalModuleName(node, moduleSpecifier), moduleSpecifier); - } - function getMemberOfModuleVariable(moduleSymbol, name) { - if (moduleSymbol.flags & 3) { - var typeAnnotation = moduleSymbol.valueDeclaration.type; - if (typeAnnotation) { - return getPropertyOfType(getTypeFromTypeNode(typeAnnotation), name); - } - } - } - function combineValueAndTypeSymbols(valueSymbol, typeSymbol) { - if (valueSymbol.flags & (793056 | 1536)) { - return valueSymbol; - } - var result = createSymbol(valueSymbol.flags | typeSymbol.flags, valueSymbol.name); - result.declarations = ts.concatenate(valueSymbol.declarations, typeSymbol.declarations); - result.parent = valueSymbol.parent || typeSymbol.parent; - if (valueSymbol.valueDeclaration) - result.valueDeclaration = valueSymbol.valueDeclaration; - if (typeSymbol.members) - result.members = typeSymbol.members; - if (valueSymbol.exports) - result.exports = valueSymbol.exports; - return result; - } - function getExportOfModule(symbol, name) { - if (symbol.flags & 1536) { - var exports_1 = getExportsOfSymbol(symbol); - if (ts.hasProperty(exports_1, name)) { - return resolveSymbol(exports_1[name]); - } - } - } - function getPropertyOfVariable(symbol, name) { - if (symbol.flags & 3) { - var typeAnnotation = symbol.valueDeclaration.type; - if (typeAnnotation) { - return resolveSymbol(getPropertyOfType(getTypeFromTypeNode(typeAnnotation), name)); - } - } - } - function getExternalModuleMember(node, specifier) { - var moduleSymbol = resolveExternalModuleName(node, node.moduleSpecifier); - var targetSymbol = resolveESModuleSymbol(moduleSymbol, node.moduleSpecifier); - if (targetSymbol) { - var name_4 = specifier.propertyName || specifier.name; - if (name_4.text) { - var symbolFromModule = getExportOfModule(targetSymbol, name_4.text); - var symbolFromVariable = getPropertyOfVariable(targetSymbol, name_4.text); - var symbol = symbolFromModule && symbolFromVariable ? - combineValueAndTypeSymbols(symbolFromVariable, symbolFromModule) : - symbolFromModule || symbolFromVariable; - if (!symbol) { - error(name_4, ts.Diagnostics.Module_0_has_no_exported_member_1, getFullyQualifiedName(moduleSymbol), ts.declarationNameToString(name_4)); - } - return symbol; - } - } - } - function getTargetOfImportSpecifier(node) { - return getExternalModuleMember(node.parent.parent.parent, node); - } - function getTargetOfExportSpecifier(node) { - return node.parent.parent.moduleSpecifier ? - getExternalModuleMember(node.parent.parent, node) : - resolveEntityName(node.propertyName || node.name, 107455 | 793056 | 1536); - } - function getTargetOfExportAssignment(node) { - return node.expression && resolveEntityName(node.expression, 107455 | 793056 | 1536); - } - function getTargetOfAliasDeclaration(node) { - switch (node.kind) { - case 205: - return getTargetOfImportEqualsDeclaration(node); - case 207: - return getTargetOfImportClause(node); - case 208: - return getTargetOfNamespaceImport(node); - case 210: - return getTargetOfImportSpecifier(node); - case 214: - return getTargetOfExportSpecifier(node); - case 211: - return getTargetOfExportAssignment(node); - } - } - function resolveSymbol(symbol) { - return symbol && symbol.flags & 8388608 && !(symbol.flags & (107455 | 793056 | 1536)) ? resolveAlias(symbol) : symbol; - } - function resolveAlias(symbol) { - ts.Debug.assert((symbol.flags & 8388608) !== 0, "Should only get Alias here."); - var links = getSymbolLinks(symbol); - if (!links.target) { - links.target = resolvingSymbol; - var node = getDeclarationOfAliasSymbol(symbol); - var target = getTargetOfAliasDeclaration(node); - if (links.target === resolvingSymbol) { - links.target = target || unknownSymbol; - } - else { - error(node, ts.Diagnostics.Circular_definition_of_import_alias_0, symbolToString(symbol)); - } - } - else if (links.target === resolvingSymbol) { - links.target = unknownSymbol; - } - return links.target; - } - function markExportAsReferenced(node) { - var symbol = getSymbolOfNode(node); - var target = resolveAlias(symbol); - if (target && target !== unknownSymbol && target.flags & 107455 && !isConstEnumOrConstEnumOnlyModule(target)) { - markAliasSymbolAsReferenced(symbol); - } - } - function markAliasSymbolAsReferenced(symbol) { - var links = getSymbolLinks(symbol); - if (!links.referenced) { - links.referenced = true; - var node = getDeclarationOfAliasSymbol(symbol); - if (node.kind === 211 && node.expression) { - checkExpressionCached(node.expression); - } - else if (node.kind === 214) { - checkExpressionCached(node.propertyName || node.name); - } - else if (ts.isInternalModuleImportEqualsDeclaration(node)) { - checkExpressionCached(node.moduleReference); - } - } - } - function getSymbolOfPartOfRightHandSideOfImportEquals(entityName, importDeclaration) { - if (!importDeclaration) { - importDeclaration = ts.getAncestor(entityName, 205); - ts.Debug.assert(importDeclaration !== undefined); - } - if (entityName.kind === 65 && isRightSideOfQualifiedNameOrPropertyAccess(entityName)) { - entityName = entityName.parent; - } - if (entityName.kind === 65 || entityName.parent.kind === 126) { - return resolveEntityName(entityName, 1536); - } - else { - ts.Debug.assert(entityName.parent.kind === 205); - return resolveEntityName(entityName, 107455 | 793056 | 1536); - } - } - function getFullyQualifiedName(symbol) { - return symbol.parent ? getFullyQualifiedName(symbol.parent) + "." + symbolToString(symbol) : symbolToString(symbol); - } - function resolveEntityName(name, meaning) { - if (ts.getFullWidth(name) === 0) { - return undefined; - } - var symbol; - if (name.kind === 65) { - symbol = resolveName(name, name.text, meaning, ts.Diagnostics.Cannot_find_name_0, name); - if (!symbol) { - return undefined; - } - } - else if (name.kind === 126) { - var namespace = resolveEntityName(name.left, 1536); - if (!namespace || namespace === unknownSymbol || ts.getFullWidth(name.right) === 0) { - return undefined; - } - var right = name.right; - symbol = getSymbol(getExportsOfSymbol(namespace), right.text, meaning); - if (!symbol) { - error(right, ts.Diagnostics.Module_0_has_no_exported_member_1, getFullyQualifiedName(namespace), ts.declarationNameToString(right)); - return undefined; - } - } - ts.Debug.assert((symbol.flags & 16777216) === 0, "Should never get an instantiated symbol here."); - return symbol.flags & meaning ? symbol : resolveAlias(symbol); - } - function isExternalModuleNameRelative(moduleName) { - return moduleName.substr(0, 2) === "./" || moduleName.substr(0, 3) === "../" || moduleName.substr(0, 2) === ".\\" || moduleName.substr(0, 3) === "..\\"; - } - function resolveExternalModuleName(location, moduleReferenceExpression) { - if (moduleReferenceExpression.kind !== 8) { - return; - } - var moduleReferenceLiteral = moduleReferenceExpression; - var searchPath = ts.getDirectoryPath(getSourceFile(location).fileName); - var moduleName = ts.escapeIdentifier(moduleReferenceLiteral.text); - if (!moduleName) - return; - var isRelative = isExternalModuleNameRelative(moduleName); - if (!isRelative) { - var symbol = getSymbol(globals, '"' + moduleName + '"', 512); - if (symbol) { - return symbol; - } - } - var sourceFile; - while (true) { - var fileName = ts.normalizePath(ts.combinePaths(searchPath, moduleName)); - sourceFile = host.getSourceFile(fileName + ".ts") || host.getSourceFile(fileName + ".d.ts"); - if (sourceFile || isRelative) { - break; - } - var parentPath = ts.getDirectoryPath(searchPath); - if (parentPath === searchPath) { - break; - } - searchPath = parentPath; - } - if (sourceFile) { - if (sourceFile.symbol) { - return sourceFile.symbol; - } - error(moduleReferenceLiteral, ts.Diagnostics.File_0_is_not_an_external_module, sourceFile.fileName); - return; - } - error(moduleReferenceLiteral, ts.Diagnostics.Cannot_find_external_module_0, moduleName); - } - function resolveExternalModuleSymbol(moduleSymbol) { - return moduleSymbol && resolveSymbol(moduleSymbol.exports["export="]) || moduleSymbol; - } - function resolveESModuleSymbol(moduleSymbol, moduleReferenceExpression) { - var symbol = resolveExternalModuleSymbol(moduleSymbol); - if (symbol && !(symbol.flags & (1536 | 3))) { - error(moduleReferenceExpression, ts.Diagnostics.External_module_0_resolves_to_a_non_module_entity_and_cannot_be_imported_using_this_construct, symbolToString(moduleSymbol)); - symbol = undefined; - } - return symbol; - } - function getExportAssignmentSymbol(moduleSymbol) { - return moduleSymbol.exports["export="]; - } - function getExportsOfSymbol(symbol) { - return symbol.flags & 1536 ? getExportsOfModule(symbol) : symbol.exports || emptySymbols; - } - function getExportsOfModule(moduleSymbol) { - var links = getSymbolLinks(moduleSymbol); - return links.resolvedExports || (links.resolvedExports = getExportsForModule(moduleSymbol)); - } - function extendExportSymbols(target, source) { - for (var id in source) { - if (id !== "default" && !ts.hasProperty(target, id)) { - target[id] = source[id]; - } - } - } - function getExportsForModule(moduleSymbol) { - var result; - var visitedSymbols = []; - visit(moduleSymbol); - return result || moduleSymbol.exports; - function visit(symbol) { - if (symbol.flags & 1952 && !ts.contains(visitedSymbols, symbol)) { - visitedSymbols.push(symbol); - if (symbol !== moduleSymbol) { - if (!result) { - result = cloneSymbolTable(moduleSymbol.exports); - } - extendExportSymbols(result, symbol.exports); - } - var exportStars = symbol.exports["__export"]; - if (exportStars) { - for (var _i = 0, _a = exportStars.declarations, _n = _a.length; _i < _n; _i++) { - var node = _a[_i]; - visit(resolveExternalModuleName(node, node.moduleSpecifier)); - } - } - } - } - } - function getMergedSymbol(symbol) { - var merged; - return symbol && symbol.mergeId && (merged = mergedSymbols[symbol.mergeId]) ? merged : symbol; - } - function getSymbolOfNode(node) { - return getMergedSymbol(node.symbol); - } - function getParentOfSymbol(symbol) { - return getMergedSymbol(symbol.parent); - } - function getExportSymbolOfValueSymbolIfExported(symbol) { - return symbol && (symbol.flags & 1048576) !== 0 - ? getMergedSymbol(symbol.exportSymbol) - : symbol; - } - function symbolIsValue(symbol) { - if (symbol.flags & 16777216) { - return symbolIsValue(getSymbolLinks(symbol).target); - } - if (symbol.flags & 107455) { - return true; - } - if (symbol.flags & 8388608) { - return (resolveAlias(symbol).flags & 107455) !== 0; - } - return false; - } - function findConstructorDeclaration(node) { - var members = node.members; - for (var _i = 0, _n = members.length; _i < _n; _i++) { - var member = members[_i]; - if (member.kind === 135 && ts.nodeIsPresent(member.body)) { - return member; - } - } - } - function createType(flags) { - var result = new Type(checker, flags); - result.id = typeCount++; - return result; - } - function createIntrinsicType(kind, intrinsicName) { - var type = createType(kind); - type.intrinsicName = intrinsicName; - return type; - } - function createObjectType(kind, symbol) { - var type = createType(kind); - type.symbol = symbol; - return type; - } - function isReservedMemberName(name) { - return name.charCodeAt(0) === 95 && - name.charCodeAt(1) === 95 && - name.charCodeAt(2) !== 95 && - name.charCodeAt(2) !== 64; - } - function getNamedMembers(members) { - var result; - for (var id in members) { - if (ts.hasProperty(members, id)) { - if (!isReservedMemberName(id)) { - if (!result) - result = []; - var symbol = members[id]; - if (symbolIsValue(symbol)) { - result.push(symbol); - } - } - } - } - return result || emptyArray; - } - function setObjectTypeMembers(type, members, callSignatures, constructSignatures, stringIndexType, numberIndexType) { - type.members = members; - type.properties = getNamedMembers(members); - type.callSignatures = callSignatures; - type.constructSignatures = constructSignatures; - if (stringIndexType) - type.stringIndexType = stringIndexType; - if (numberIndexType) - type.numberIndexType = numberIndexType; - return type; - } - function createAnonymousType(symbol, members, callSignatures, constructSignatures, stringIndexType, numberIndexType) { - return setObjectTypeMembers(createObjectType(32768, symbol), members, callSignatures, constructSignatures, stringIndexType, numberIndexType); - } - function forEachSymbolTableInScope(enclosingDeclaration, callback) { - var result; - for (var location_1 = enclosingDeclaration; location_1; location_1 = location_1.parent) { - if (location_1.locals && !isGlobalSourceFile(location_1)) { - if (result = callback(location_1.locals)) { - return result; - } - } - switch (location_1.kind) { - case 224: - if (!ts.isExternalModule(location_1)) { - break; - } - case 202: - if (result = callback(getSymbolOfNode(location_1).exports)) { - return result; - } - break; - case 198: - case 199: - if (result = callback(getSymbolOfNode(location_1).members)) { - return result; - } - break; - } - } - return callback(globals); - } - function getQualifiedLeftMeaning(rightMeaning) { - return rightMeaning === 107455 ? 107455 : 1536; - } - function getAccessibleSymbolChain(symbol, enclosingDeclaration, meaning, useOnlyExternalAliasing) { - function getAccessibleSymbolChainFromSymbolTable(symbols) { - function canQualifySymbol(symbolFromSymbolTable, meaning) { - if (!needsQualification(symbolFromSymbolTable, enclosingDeclaration, meaning)) { - return true; - } - var accessibleParent = getAccessibleSymbolChain(symbolFromSymbolTable.parent, enclosingDeclaration, getQualifiedLeftMeaning(meaning), useOnlyExternalAliasing); - return !!accessibleParent; - } - function isAccessible(symbolFromSymbolTable, resolvedAliasSymbol) { - if (symbol === (resolvedAliasSymbol || symbolFromSymbolTable)) { - return !ts.forEach(symbolFromSymbolTable.declarations, hasExternalModuleSymbol) && - canQualifySymbol(symbolFromSymbolTable, meaning); - } - } - if (isAccessible(ts.lookUp(symbols, symbol.name))) { - return [symbol]; - } - return ts.forEachValue(symbols, function (symbolFromSymbolTable) { - if (symbolFromSymbolTable.flags & 8388608) { - if (!useOnlyExternalAliasing || - ts.forEach(symbolFromSymbolTable.declarations, ts.isExternalModuleImportEqualsDeclaration)) { - var resolvedImportedSymbol = resolveAlias(symbolFromSymbolTable); - if (isAccessible(symbolFromSymbolTable, resolveAlias(symbolFromSymbolTable))) { - return [symbolFromSymbolTable]; - } - var accessibleSymbolsFromExports = resolvedImportedSymbol.exports ? getAccessibleSymbolChainFromSymbolTable(resolvedImportedSymbol.exports) : undefined; - if (accessibleSymbolsFromExports && canQualifySymbol(symbolFromSymbolTable, getQualifiedLeftMeaning(meaning))) { - return [symbolFromSymbolTable].concat(accessibleSymbolsFromExports); - } - } - } - }); - } - if (symbol) { - return forEachSymbolTableInScope(enclosingDeclaration, getAccessibleSymbolChainFromSymbolTable); - } - } - function needsQualification(symbol, enclosingDeclaration, meaning) { - var qualify = false; - forEachSymbolTableInScope(enclosingDeclaration, function (symbolTable) { - if (!ts.hasProperty(symbolTable, symbol.name)) { - return false; - } - var symbolFromSymbolTable = symbolTable[symbol.name]; - if (symbolFromSymbolTable === symbol) { - return true; - } - symbolFromSymbolTable = (symbolFromSymbolTable.flags & 8388608) ? resolveAlias(symbolFromSymbolTable) : symbolFromSymbolTable; - if (symbolFromSymbolTable.flags & meaning) { - qualify = true; - return true; - } - return false; - }); - return qualify; - } - function isSymbolAccessible(symbol, enclosingDeclaration, meaning) { - if (symbol && enclosingDeclaration && !(symbol.flags & 262144)) { - var initialSymbol = symbol; - var meaningToLook = meaning; - while (symbol) { - var accessibleSymbolChain = getAccessibleSymbolChain(symbol, enclosingDeclaration, meaningToLook, false); - if (accessibleSymbolChain) { - var hasAccessibleDeclarations = hasVisibleDeclarations(accessibleSymbolChain[0]); - if (!hasAccessibleDeclarations) { - return { - accessibility: 1, - errorSymbolName: symbolToString(initialSymbol, enclosingDeclaration, meaning), - errorModuleName: symbol !== initialSymbol ? symbolToString(symbol, enclosingDeclaration, 1536) : undefined - }; - } - return hasAccessibleDeclarations; - } - meaningToLook = getQualifiedLeftMeaning(meaning); - symbol = getParentOfSymbol(symbol); - } - var symbolExternalModule = ts.forEach(initialSymbol.declarations, getExternalModuleContainer); - if (symbolExternalModule) { - var enclosingExternalModule = getExternalModuleContainer(enclosingDeclaration); - if (symbolExternalModule !== enclosingExternalModule) { - return { - accessibility: 2, - errorSymbolName: symbolToString(initialSymbol, enclosingDeclaration, meaning), - errorModuleName: symbolToString(symbolExternalModule) - }; - } - } - return { - accessibility: 1, - errorSymbolName: symbolToString(initialSymbol, enclosingDeclaration, meaning) - }; - } - return { accessibility: 0 }; - function getExternalModuleContainer(declaration) { - for (; declaration; declaration = declaration.parent) { - if (hasExternalModuleSymbol(declaration)) { - return getSymbolOfNode(declaration); - } - } - } - } - function hasExternalModuleSymbol(declaration) { - return (declaration.kind === 202 && declaration.name.kind === 8) || - (declaration.kind === 224 && ts.isExternalModule(declaration)); - } - function hasVisibleDeclarations(symbol) { - var aliasesToMakeVisible; - if (ts.forEach(symbol.declarations, function (declaration) { return !getIsDeclarationVisible(declaration); })) { - return undefined; - } - return { accessibility: 0, aliasesToMakeVisible: aliasesToMakeVisible }; - function getIsDeclarationVisible(declaration) { - if (!isDeclarationVisible(declaration)) { - var anyImportSyntax = getAnyImportSyntax(declaration); - if (anyImportSyntax && - !(anyImportSyntax.flags & 1) && - isDeclarationVisible(anyImportSyntax.parent)) { - getNodeLinks(declaration).isVisible = true; - if (aliasesToMakeVisible) { - if (!ts.contains(aliasesToMakeVisible, anyImportSyntax)) { - aliasesToMakeVisible.push(anyImportSyntax); - } - } - else { - aliasesToMakeVisible = [anyImportSyntax]; - } - return true; - } - return false; - } - return true; - } - } - function isEntityNameVisible(entityName, enclosingDeclaration) { - var meaning; - if (entityName.parent.kind === 144) { - meaning = 107455 | 1048576; - } - else if (entityName.kind === 126 || - entityName.parent.kind === 205) { - meaning = 1536; - } - else { - meaning = 793056; - } - var firstIdentifier = getFirstIdentifier(entityName); - var symbol = resolveName(enclosingDeclaration, firstIdentifier.text, meaning, undefined, undefined); - return (symbol && hasVisibleDeclarations(symbol)) || { - accessibility: 1, - errorSymbolName: ts.getTextOfNode(firstIdentifier), - errorNode: firstIdentifier - }; - } - function writeKeyword(writer, kind) { - writer.writeKeyword(ts.tokenToString(kind)); - } - function writePunctuation(writer, kind) { - writer.writePunctuation(ts.tokenToString(kind)); - } - function writeSpace(writer) { - writer.writeSpace(" "); - } - function symbolToString(symbol, enclosingDeclaration, meaning) { - var writer = ts.getSingleLineStringWriter(); - getSymbolDisplayBuilder().buildSymbolDisplay(symbol, writer, enclosingDeclaration, meaning); - var result = writer.string(); - ts.releaseStringWriter(writer); - return result; - } - function typeToString(type, enclosingDeclaration, flags) { - var writer = ts.getSingleLineStringWriter(); - getSymbolDisplayBuilder().buildTypeDisplay(type, writer, enclosingDeclaration, flags); - var result = writer.string(); - ts.releaseStringWriter(writer); - var maxLength = compilerOptions.noErrorTruncation || flags & 4 ? undefined : 100; - if (maxLength && result.length >= maxLength) { - result = result.substr(0, maxLength - "...".length) + "..."; - } - return result; - } - function getTypeAliasForTypeLiteral(type) { - if (type.symbol && type.symbol.flags & 2048) { - var node = type.symbol.declarations[0].parent; - while (node.kind === 149) { - node = node.parent; - } - if (node.kind === 200) { - return getSymbolOfNode(node); - } - } - return undefined; - } - var _displayBuilder; - function getSymbolDisplayBuilder() { - function appendSymbolNameOnly(symbol, writer) { - if (symbol.declarations && symbol.declarations.length > 0) { - var declaration = symbol.declarations[0]; - if (declaration.name) { - writer.writeSymbol(ts.declarationNameToString(declaration.name), symbol); - return; - } - } - writer.writeSymbol(symbol.name, symbol); - } - function buildSymbolDisplay(symbol, writer, enclosingDeclaration, meaning, flags, typeFlags) { - var parentSymbol; - function appendParentTypeArgumentsAndSymbolName(symbol) { - if (parentSymbol) { - if (flags & 1) { - if (symbol.flags & 16777216) { - buildDisplayForTypeArgumentsAndDelimiters(getTypeParametersOfClassOrInterface(parentSymbol), symbol.mapper, writer, enclosingDeclaration); - } - else { - buildTypeParameterDisplayFromSymbol(parentSymbol, writer, enclosingDeclaration); - } - } - writePunctuation(writer, 20); - } - parentSymbol = symbol; - appendSymbolNameOnly(symbol, writer); - } - writer.trackSymbol(symbol, enclosingDeclaration, meaning); - function walkSymbol(symbol, meaning) { - if (symbol) { - var accessibleSymbolChain = getAccessibleSymbolChain(symbol, enclosingDeclaration, meaning, !!(flags & 2)); - if (!accessibleSymbolChain || - needsQualification(accessibleSymbolChain[0], enclosingDeclaration, accessibleSymbolChain.length === 1 ? meaning : getQualifiedLeftMeaning(meaning))) { - walkSymbol(getParentOfSymbol(accessibleSymbolChain ? accessibleSymbolChain[0] : symbol), getQualifiedLeftMeaning(meaning)); - } - if (accessibleSymbolChain) { - for (var _i = 0, _n = accessibleSymbolChain.length; _i < _n; _i++) { - var accessibleSymbol = accessibleSymbolChain[_i]; - appendParentTypeArgumentsAndSymbolName(accessibleSymbol); - } - } - else { - if (!parentSymbol && ts.forEach(symbol.declarations, hasExternalModuleSymbol)) { - return; - } - if (symbol.flags & 2048 || symbol.flags & 4096) { - return; - } - appendParentTypeArgumentsAndSymbolName(symbol); - } - } - } - var isTypeParameter = symbol.flags & 262144; - var typeFormatFlag = 128 & typeFlags; - if (!isTypeParameter && (enclosingDeclaration || typeFormatFlag)) { - walkSymbol(symbol, meaning); - return; - } - return appendParentTypeArgumentsAndSymbolName(symbol); - } - function buildTypeDisplay(type, writer, enclosingDeclaration, globalFlags, typeStack) { - var globalFlagsToPass = globalFlags & 16; - return writeType(type, globalFlags); - function writeType(type, flags) { - if (type.flags & 1048703) { - writer.writeKeyword(!(globalFlags & 16) && - (type.flags & 1) ? "any" : type.intrinsicName); - } - else if (type.flags & 4096) { - writeTypeReference(type, flags); - } - else if (type.flags & (1024 | 2048 | 128 | 512)) { - buildSymbolDisplay(type.symbol, writer, enclosingDeclaration, 793056, 0, flags); - } - else if (type.flags & 8192) { - writeTupleType(type); - } - else if (type.flags & 16384) { - writeUnionType(type, flags); - } - else if (type.flags & 32768) { - writeAnonymousType(type, flags); - } - else if (type.flags & 256) { - writer.writeStringLiteral(type.text); - } - else { - writePunctuation(writer, 14); - writeSpace(writer); - writePunctuation(writer, 21); - writeSpace(writer); - writePunctuation(writer, 15); - } - } - function writeTypeList(types, union) { - for (var i = 0; i < types.length; i++) { - if (i > 0) { - if (union) { - writeSpace(writer); - } - writePunctuation(writer, union ? 44 : 23); - writeSpace(writer); - } - writeType(types[i], union ? 64 : 0); - } - } - function writeTypeReference(type, flags) { - if (type.target === globalArrayType && !(flags & 1)) { - writeType(type.typeArguments[0], 64); - writePunctuation(writer, 18); - writePunctuation(writer, 19); - } - else { - buildSymbolDisplay(type.target.symbol, writer, enclosingDeclaration, 793056); - writePunctuation(writer, 24); - writeTypeList(type.typeArguments, false); - writePunctuation(writer, 25); - } - } - function writeTupleType(type) { - writePunctuation(writer, 18); - writeTypeList(type.elementTypes, false); - writePunctuation(writer, 19); - } - function writeUnionType(type, flags) { - if (flags & 64) { - writePunctuation(writer, 16); - } - writeTypeList(type.types, true); - if (flags & 64) { - writePunctuation(writer, 17); - } - } - function writeAnonymousType(type, flags) { - if (type.symbol && type.symbol.flags & (32 | 384 | 512)) { - writeTypeofSymbol(type, flags); - } - else if (shouldWriteTypeOfFunctionSymbol()) { - writeTypeofSymbol(type, flags); - } - else if (typeStack && ts.contains(typeStack, type)) { - var typeAlias = getTypeAliasForTypeLiteral(type); - if (typeAlias) { - buildSymbolDisplay(typeAlias, writer, enclosingDeclaration, 793056, 0, flags); - } - else { - writeKeyword(writer, 112); - } - } - else { - if (!typeStack) { - typeStack = []; - } - typeStack.push(type); - writeLiteralType(type, flags); - typeStack.pop(); - } - function shouldWriteTypeOfFunctionSymbol() { - if (type.symbol) { - var isStaticMethodSymbol = !!(type.symbol.flags & 8192 && - ts.forEach(type.symbol.declarations, function (declaration) { return declaration.flags & 128; })); - var isNonLocalFunctionSymbol = !!(type.symbol.flags & 16) && - (type.symbol.parent || - ts.forEach(type.symbol.declarations, function (declaration) { - return declaration.parent.kind === 224 || declaration.parent.kind === 203; - })); - if (isStaticMethodSymbol || isNonLocalFunctionSymbol) { - return !!(flags & 2) || - (typeStack && ts.contains(typeStack, type)); - } - } - } - } - function writeTypeofSymbol(type, typeFormatFlags) { - writeKeyword(writer, 97); - writeSpace(writer); - buildSymbolDisplay(type.symbol, writer, enclosingDeclaration, 107455, 0, typeFormatFlags); - } - function getIndexerParameterName(type, indexKind, fallbackName) { - var declaration = getIndexDeclarationOfSymbol(type.symbol, indexKind); - if (!declaration) { - return fallbackName; - } - ts.Debug.assert(declaration.parameters.length !== 0); - return ts.declarationNameToString(declaration.parameters[0].name); - } - function writeLiteralType(type, flags) { - var resolved = resolveObjectOrUnionTypeMembers(type); - if (!resolved.properties.length && !resolved.stringIndexType && !resolved.numberIndexType) { - if (!resolved.callSignatures.length && !resolved.constructSignatures.length) { - writePunctuation(writer, 14); - writePunctuation(writer, 15); - return; - } - if (resolved.callSignatures.length === 1 && !resolved.constructSignatures.length) { - if (flags & 64) { - writePunctuation(writer, 16); - } - buildSignatureDisplay(resolved.callSignatures[0], writer, enclosingDeclaration, globalFlagsToPass | 8, typeStack); - if (flags & 64) { - writePunctuation(writer, 17); - } - return; - } - if (resolved.constructSignatures.length === 1 && !resolved.callSignatures.length) { - if (flags & 64) { - writePunctuation(writer, 16); - } - writeKeyword(writer, 88); - writeSpace(writer); - buildSignatureDisplay(resolved.constructSignatures[0], writer, enclosingDeclaration, globalFlagsToPass | 8, typeStack); - if (flags & 64) { - writePunctuation(writer, 17); - } - return; - } - } - writePunctuation(writer, 14); - writer.writeLine(); - writer.increaseIndent(); - for (var _i = 0, _a = resolved.callSignatures, _n = _a.length; _i < _n; _i++) { - var signature = _a[_i]; - buildSignatureDisplay(signature, writer, enclosingDeclaration, globalFlagsToPass, typeStack); - writePunctuation(writer, 22); - writer.writeLine(); - } - for (var _b = 0, _c = resolved.constructSignatures, _d = _c.length; _b < _d; _b++) { - var signature = _c[_b]; - writeKeyword(writer, 88); - writeSpace(writer); - buildSignatureDisplay(signature, writer, enclosingDeclaration, globalFlagsToPass, typeStack); - writePunctuation(writer, 22); - writer.writeLine(); - } - if (resolved.stringIndexType) { - writePunctuation(writer, 18); - writer.writeParameter(getIndexerParameterName(resolved, 0, "x")); - writePunctuation(writer, 51); - writeSpace(writer); - writeKeyword(writer, 121); - writePunctuation(writer, 19); - writePunctuation(writer, 51); - writeSpace(writer); - writeType(resolved.stringIndexType, 0); - writePunctuation(writer, 22); - writer.writeLine(); - } - if (resolved.numberIndexType) { - writePunctuation(writer, 18); - writer.writeParameter(getIndexerParameterName(resolved, 1, "x")); - writePunctuation(writer, 51); - writeSpace(writer); - writeKeyword(writer, 119); - writePunctuation(writer, 19); - writePunctuation(writer, 51); - writeSpace(writer); - writeType(resolved.numberIndexType, 0); - writePunctuation(writer, 22); - writer.writeLine(); - } - for (var _e = 0, _f = resolved.properties, _g = _f.length; _e < _g; _e++) { - var p = _f[_e]; - var t = getTypeOfSymbol(p); - if (p.flags & (16 | 8192) && !getPropertiesOfObjectType(t).length) { - var signatures = getSignaturesOfType(t, 0); - for (var _h = 0, _j = signatures.length; _h < _j; _h++) { - var signature = signatures[_h]; - buildSymbolDisplay(p, writer); - if (p.flags & 536870912) { - writePunctuation(writer, 50); - } - buildSignatureDisplay(signature, writer, enclosingDeclaration, globalFlagsToPass, typeStack); - writePunctuation(writer, 22); - writer.writeLine(); - } - } - else { - buildSymbolDisplay(p, writer); - if (p.flags & 536870912) { - writePunctuation(writer, 50); - } - writePunctuation(writer, 51); - writeSpace(writer); - writeType(t, 0); - writePunctuation(writer, 22); - writer.writeLine(); - } - } - writer.decreaseIndent(); - writePunctuation(writer, 15); - } - } - function buildTypeParameterDisplayFromSymbol(symbol, writer, enclosingDeclaraiton, flags) { - var targetSymbol = getTargetSymbol(symbol); - if (targetSymbol.flags & 32 || targetSymbol.flags & 64) { - buildDisplayForTypeParametersAndDelimiters(getTypeParametersOfClassOrInterface(symbol), writer, enclosingDeclaraiton, flags); - } - } - function buildTypeParameterDisplay(tp, writer, enclosingDeclaration, flags, typeStack) { - appendSymbolNameOnly(tp.symbol, writer); - var constraint = getConstraintOfTypeParameter(tp); - if (constraint) { - writeSpace(writer); - writeKeyword(writer, 79); - writeSpace(writer); - buildTypeDisplay(constraint, writer, enclosingDeclaration, flags, typeStack); - } - } - function buildParameterDisplay(p, writer, enclosingDeclaration, flags, typeStack) { - if (ts.hasDotDotDotToken(p.valueDeclaration)) { - writePunctuation(writer, 21); - } - appendSymbolNameOnly(p, writer); - if (ts.hasQuestionToken(p.valueDeclaration) || p.valueDeclaration.initializer) { - writePunctuation(writer, 50); - } - writePunctuation(writer, 51); - writeSpace(writer); - buildTypeDisplay(getTypeOfSymbol(p), writer, enclosingDeclaration, flags, typeStack); - } - function buildDisplayForTypeParametersAndDelimiters(typeParameters, writer, enclosingDeclaration, flags, typeStack) { - if (typeParameters && typeParameters.length) { - writePunctuation(writer, 24); - for (var i = 0; i < typeParameters.length; i++) { - if (i > 0) { - writePunctuation(writer, 23); - writeSpace(writer); - } - buildTypeParameterDisplay(typeParameters[i], writer, enclosingDeclaration, flags, typeStack); - } - writePunctuation(writer, 25); - } - } - function buildDisplayForTypeArgumentsAndDelimiters(typeParameters, mapper, writer, enclosingDeclaration, flags, typeStack) { - if (typeParameters && typeParameters.length) { - writePunctuation(writer, 24); - for (var i = 0; i < typeParameters.length; i++) { - if (i > 0) { - writePunctuation(writer, 23); - writeSpace(writer); - } - buildTypeDisplay(mapper(typeParameters[i]), writer, enclosingDeclaration, 0); - } - writePunctuation(writer, 25); - } - } - function buildDisplayForParametersAndDelimiters(parameters, writer, enclosingDeclaration, flags, typeStack) { - writePunctuation(writer, 16); - for (var i = 0; i < parameters.length; i++) { - if (i > 0) { - writePunctuation(writer, 23); - writeSpace(writer); - } - buildParameterDisplay(parameters[i], writer, enclosingDeclaration, flags, typeStack); - } - writePunctuation(writer, 17); - } - function buildReturnTypeDisplay(signature, writer, enclosingDeclaration, flags, typeStack) { - if (flags & 8) { - writeSpace(writer); - writePunctuation(writer, 32); - } - else { - writePunctuation(writer, 51); - } - writeSpace(writer); - buildTypeDisplay(getReturnTypeOfSignature(signature), writer, enclosingDeclaration, flags, typeStack); - } - function buildSignatureDisplay(signature, writer, enclosingDeclaration, flags, typeStack) { - if (signature.target && (flags & 32)) { - buildDisplayForTypeArgumentsAndDelimiters(signature.target.typeParameters, signature.mapper, writer, enclosingDeclaration); - } - else { - buildDisplayForTypeParametersAndDelimiters(signature.typeParameters, writer, enclosingDeclaration, flags, typeStack); - } - buildDisplayForParametersAndDelimiters(signature.parameters, writer, enclosingDeclaration, flags, typeStack); - buildReturnTypeDisplay(signature, writer, enclosingDeclaration, flags, typeStack); - } - return _displayBuilder || (_displayBuilder = { - symbolToString: symbolToString, - typeToString: typeToString, - buildSymbolDisplay: buildSymbolDisplay, - buildTypeDisplay: buildTypeDisplay, - buildTypeParameterDisplay: buildTypeParameterDisplay, - buildParameterDisplay: buildParameterDisplay, - buildDisplayForParametersAndDelimiters: buildDisplayForParametersAndDelimiters, - buildDisplayForTypeParametersAndDelimiters: buildDisplayForTypeParametersAndDelimiters, - buildDisplayForTypeArgumentsAndDelimiters: buildDisplayForTypeArgumentsAndDelimiters, - buildTypeParameterDisplayFromSymbol: buildTypeParameterDisplayFromSymbol, - buildSignatureDisplay: buildSignatureDisplay, - buildReturnTypeDisplay: buildReturnTypeDisplay - }); - } - function isDeclarationVisible(node) { - function getContainingExternalModule(node) { - for (; node; node = node.parent) { - if (node.kind === 202) { - if (node.name.kind === 8) { - return node; - } - } - else if (node.kind === 224) { - return ts.isExternalModule(node) ? node : undefined; - } - } - ts.Debug.fail("getContainingModule cant reach here"); - } - function isUsedInExportAssignment(node) { - var externalModule = getContainingExternalModule(node); - var exportAssignmentSymbol; - var resolvedExportSymbol; - if (externalModule) { - var externalModuleSymbol = getSymbolOfNode(externalModule); - exportAssignmentSymbol = getExportAssignmentSymbol(externalModuleSymbol); - var symbolOfNode = getSymbolOfNode(node); - if (isSymbolUsedInExportAssignment(symbolOfNode)) { - return true; - } - if (symbolOfNode.flags & 8388608) { - return isSymbolUsedInExportAssignment(resolveAlias(symbolOfNode)); - } - } - function isSymbolUsedInExportAssignment(symbol) { - if (exportAssignmentSymbol === symbol) { - return true; - } - if (exportAssignmentSymbol && !!(exportAssignmentSymbol.flags & 8388608)) { - resolvedExportSymbol = resolvedExportSymbol || resolveAlias(exportAssignmentSymbol); - if (resolvedExportSymbol === symbol) { - return true; - } - return ts.forEach(resolvedExportSymbol.declarations, function (current) { - while (current) { - if (current === node) { - return true; - } - current = current.parent; - } - }); - } - } - } - function determineIfDeclarationIsVisible() { - switch (node.kind) { - case 152: - return isDeclarationVisible(node.parent.parent); - case 195: - if (ts.isBindingPattern(node.name) && - !node.name.elements.length) { - return false; - } - case 202: - case 198: - case 199: - case 200: - case 197: - case 201: - case 205: - var parent_2 = getDeclarationContainer(node); - if (!(ts.getCombinedNodeFlags(node) & 1) && - !(node.kind !== 205 && parent_2.kind !== 224 && ts.isInAmbientContext(parent_2))) { - return isGlobalSourceFile(parent_2); - } - return isDeclarationVisible(parent_2); - case 132: - case 131: - case 136: - case 137: - case 134: - case 133: - if (node.flags & (32 | 64)) { - return false; - } - case 135: - case 139: - case 138: - case 140: - case 129: - case 203: - case 142: - case 143: - case 145: - case 141: - case 146: - case 147: - case 148: - case 149: - return isDeclarationVisible(node.parent); - case 207: - case 208: - case 210: - return false; - case 128: - case 224: - return true; - default: - ts.Debug.fail("isDeclarationVisible unknown: SyntaxKind: " + node.kind); - } - } - if (node) { - var links = getNodeLinks(node); - if (links.isVisible === undefined) { - links.isVisible = !!determineIfDeclarationIsVisible(); - } - return links.isVisible; - } - } - function collectLinkedAliases(node) { - var exportSymbol; - if (node.parent && node.parent.kind === 211) { - exportSymbol = resolveName(node.parent, node.text, 107455 | 793056 | 1536, ts.Diagnostics.Cannot_find_name_0, node); - } - else if (node.parent.kind === 214) { - exportSymbol = getTargetOfExportSpecifier(node.parent); - } - var result = []; - if (exportSymbol) { - buildVisibleNodeList(exportSymbol.declarations); - } - return result; - function buildVisibleNodeList(declarations) { - ts.forEach(declarations, function (declaration) { - getNodeLinks(declaration).isVisible = true; - var resultNode = getAnyImportSyntax(declaration) || declaration; - if (!ts.contains(result, resultNode)) { - result.push(resultNode); - } - if (ts.isInternalModuleImportEqualsDeclaration(declaration)) { - var internalModuleReference = declaration.moduleReference; - var firstIdentifier = getFirstIdentifier(internalModuleReference); - var importSymbol = resolveName(declaration, firstIdentifier.text, 107455 | 793056 | 1536, ts.Diagnostics.Cannot_find_name_0, firstIdentifier); - buildVisibleNodeList(importSymbol.declarations); - } - }); - } - } - function getRootDeclaration(node) { - while (node.kind === 152) { - node = node.parent.parent; - } - return node; - } - function getDeclarationContainer(node) { - node = getRootDeclaration(node); - return node.kind === 195 ? node.parent.parent.parent : node.parent; - } - function getTypeOfPrototypeProperty(prototype) { - var classType = getDeclaredTypeOfSymbol(prototype.parent); - return classType.typeParameters ? createTypeReference(classType, ts.map(classType.typeParameters, function (_) { return anyType; })) : classType; - } - function getTypeOfPropertyOfType(type, name) { - var prop = getPropertyOfType(type, name); - return prop ? getTypeOfSymbol(prop) : undefined; - } - function getTypeForBindingElement(declaration) { - var pattern = declaration.parent; - var parentType = getTypeForVariableLikeDeclaration(pattern.parent); - if (parentType === unknownType) { - return unknownType; - } - if (!parentType || parentType === anyType) { - if (declaration.initializer) { - return checkExpressionCached(declaration.initializer); - } - return parentType; - } - var type; - if (pattern.kind === 150) { - var name_5 = declaration.propertyName || declaration.name; - type = getTypeOfPropertyOfType(parentType, name_5.text) || - isNumericLiteralName(name_5.text) && getIndexTypeOfType(parentType, 1) || - getIndexTypeOfType(parentType, 0); - if (!type) { - error(name_5, ts.Diagnostics.Type_0_has_no_property_1_and_no_string_index_signature, typeToString(parentType), ts.declarationNameToString(name_5)); - return unknownType; - } - } - else { - if (!isArrayLikeType(parentType)) { - error(pattern, ts.Diagnostics.Type_0_is_not_an_array_type, typeToString(parentType)); - return unknownType; - } - if (!declaration.dotDotDotToken) { - var propName = "" + ts.indexOf(pattern.elements, declaration); - type = isTupleLikeType(parentType) ? getTypeOfPropertyOfType(parentType, propName) : getIndexTypeOfType(parentType, 1); - if (!type) { - if (isTupleType(parentType)) { - error(declaration, ts.Diagnostics.Tuple_type_0_with_length_1_cannot_be_assigned_to_tuple_with_length_2, typeToString(parentType), parentType.elementTypes.length, pattern.elements.length); - } - else { - error(declaration, ts.Diagnostics.Type_0_has_no_property_1, typeToString(parentType), propName); - } - return unknownType; - } - } - else { - type = createArrayType(getIndexTypeOfType(parentType, 1)); - } - } - return type; - } - function getTypeForVariableLikeDeclaration(declaration) { - if (declaration.parent.parent.kind === 184) { - return anyType; - } - if (declaration.parent.parent.kind === 185) { - return checkRightHandSideOfForOf(declaration.parent.parent.expression) || anyType; - } - if (ts.isBindingPattern(declaration.parent)) { - return getTypeForBindingElement(declaration); - } - if (declaration.type) { - return getTypeFromTypeNode(declaration.type); - } - if (declaration.kind === 129) { - var func = declaration.parent; - if (func.kind === 137 && !ts.hasDynamicName(func)) { - var getter = ts.getDeclarationOfKind(declaration.parent.symbol, 136); - if (getter) { - return getReturnTypeOfSignature(getSignatureFromDeclaration(getter)); - } - } - var type = getContextuallyTypedParameterType(declaration); - if (type) { - return type; - } - } - if (declaration.initializer) { - return checkExpressionCached(declaration.initializer); - } - if (declaration.kind === 222) { - return checkIdentifier(declaration.name); - } - return undefined; - } - function getTypeFromBindingElement(element) { - if (element.initializer) { - return getWidenedType(checkExpressionCached(element.initializer)); - } - if (ts.isBindingPattern(element.name)) { - return getTypeFromBindingPattern(element.name); - } - return anyType; - } - function getTypeFromObjectBindingPattern(pattern) { - var members = {}; - ts.forEach(pattern.elements, function (e) { - var flags = 4 | 67108864 | (e.initializer ? 536870912 : 0); - var name = e.propertyName || e.name; - var symbol = createSymbol(flags, name.text); - symbol.type = getTypeFromBindingElement(e); - members[symbol.name] = symbol; - }); - return createAnonymousType(undefined, members, emptyArray, emptyArray, undefined, undefined); - } - function getTypeFromArrayBindingPattern(pattern) { - var hasSpreadElement = false; - var elementTypes = []; - ts.forEach(pattern.elements, function (e) { - elementTypes.push(e.kind === 174 || e.dotDotDotToken ? anyType : getTypeFromBindingElement(e)); - if (e.dotDotDotToken) { - hasSpreadElement = true; - } - }); - return !elementTypes.length ? anyArrayType : hasSpreadElement ? createArrayType(getUnionType(elementTypes)) : createTupleType(elementTypes); - } - function getTypeFromBindingPattern(pattern) { - return pattern.kind === 150 - ? getTypeFromObjectBindingPattern(pattern) - : getTypeFromArrayBindingPattern(pattern); - } - function getWidenedTypeForVariableLikeDeclaration(declaration, reportErrors) { - var type = getTypeForVariableLikeDeclaration(declaration); - if (type) { - if (reportErrors) { - reportErrorsFromWidening(declaration, type); - } - return declaration.kind !== 221 ? getWidenedType(type) : type; - } - if (ts.isBindingPattern(declaration.name)) { - return getTypeFromBindingPattern(declaration.name); - } - type = declaration.dotDotDotToken ? anyArrayType : anyType; - if (reportErrors && compilerOptions.noImplicitAny) { - var root = getRootDeclaration(declaration); - if (!isPrivateWithinAmbient(root) && !(root.kind === 129 && isPrivateWithinAmbient(root.parent))) { - reportImplicitAnyError(declaration, type); - } - } - return type; - } - function getTypeOfVariableOrParameterOrProperty(symbol) { - var links = getSymbolLinks(symbol); - if (!links.type) { - if (symbol.flags & 134217728) { - return links.type = getTypeOfPrototypeProperty(symbol); - } - var declaration = symbol.valueDeclaration; - if (declaration.parent.kind === 220) { - return links.type = anyType; - } - if (declaration.kind === 211) { - var exportAssignment = declaration; - if (exportAssignment.expression) { - return links.type = checkExpression(exportAssignment.expression); - } - else if (exportAssignment.type) { - return links.type = getTypeFromTypeNode(exportAssignment.type); - } - else { - return links.type = anyType; - } - } - links.type = resolvingType; - var type = getWidenedTypeForVariableLikeDeclaration(declaration, true); - if (links.type === resolvingType) { - links.type = type; - } - } - else if (links.type === resolvingType) { - links.type = anyType; - if (compilerOptions.noImplicitAny) { - var diagnostic = symbol.valueDeclaration.type ? - ts.Diagnostics._0_implicitly_has_type_any_because_it_is_referenced_directly_or_indirectly_in_its_own_type_annotation : - ts.Diagnostics._0_implicitly_has_type_any_because_it_is_does_not_have_a_type_annotation_and_is_referenced_directly_or_indirectly_in_its_own_initializer; - error(symbol.valueDeclaration, diagnostic, symbolToString(symbol)); - } - } - return links.type; - } - function getSetAccessorTypeAnnotationNode(accessor) { - return accessor && accessor.parameters.length > 0 && accessor.parameters[0].type; - } - function getAnnotatedAccessorType(accessor) { - if (accessor) { - if (accessor.kind === 136) { - return accessor.type && getTypeFromTypeNode(accessor.type); - } - else { - var setterTypeAnnotation = getSetAccessorTypeAnnotationNode(accessor); - return setterTypeAnnotation && getTypeFromTypeNode(setterTypeAnnotation); - } - } - return undefined; - } - function getTypeOfAccessors(symbol) { - var links = getSymbolLinks(symbol); - checkAndStoreTypeOfAccessors(symbol, links); - return links.type; - } - function checkAndStoreTypeOfAccessors(symbol, links) { - links = links || getSymbolLinks(symbol); - if (!links.type) { - links.type = resolvingType; - var getter = ts.getDeclarationOfKind(symbol, 136); - var setter = ts.getDeclarationOfKind(symbol, 137); - var type; - var getterReturnType = getAnnotatedAccessorType(getter); - if (getterReturnType) { - type = getterReturnType; - } - else { - var setterParameterType = getAnnotatedAccessorType(setter); - if (setterParameterType) { - type = setterParameterType; - } - else { - if (getter && getter.body) { - type = getReturnTypeFromBody(getter); - } - else { - if (compilerOptions.noImplicitAny) { - error(setter, ts.Diagnostics.Property_0_implicitly_has_type_any_because_its_set_accessor_lacks_a_type_annotation, symbolToString(symbol)); - } - type = anyType; - } - } - } - if (links.type === resolvingType) { - links.type = type; - } - } - else if (links.type === resolvingType) { - links.type = anyType; - if (compilerOptions.noImplicitAny) { - var getter = ts.getDeclarationOfKind(symbol, 136); - error(getter, ts.Diagnostics._0_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions, symbolToString(symbol)); - } - } - } - function getTypeOfFuncClassEnumModule(symbol) { - var links = getSymbolLinks(symbol); - if (!links.type) { - links.type = createObjectType(32768, symbol); - } - return links.type; - } - function getTypeOfEnumMember(symbol) { - var links = getSymbolLinks(symbol); - if (!links.type) { - links.type = getDeclaredTypeOfEnum(getParentOfSymbol(symbol)); - } - return links.type; - } - function getTypeOfAlias(symbol) { - var links = getSymbolLinks(symbol); - if (!links.type) { - links.type = getTypeOfSymbol(resolveAlias(symbol)); - } - return links.type; - } - function getTypeOfInstantiatedSymbol(symbol) { - var links = getSymbolLinks(symbol); - if (!links.type) { - links.type = instantiateType(getTypeOfSymbol(links.target), links.mapper); - } - return links.type; - } - function getTypeOfSymbol(symbol) { - if (symbol.flags & 16777216) { - return getTypeOfInstantiatedSymbol(symbol); - } - if (symbol.flags & (3 | 4)) { - return getTypeOfVariableOrParameterOrProperty(symbol); - } - if (symbol.flags & (16 | 8192 | 32 | 384 | 512)) { - return getTypeOfFuncClassEnumModule(symbol); - } - if (symbol.flags & 8) { - return getTypeOfEnumMember(symbol); - } - if (symbol.flags & 98304) { - return getTypeOfAccessors(symbol); - } - if (symbol.flags & 8388608) { - return getTypeOfAlias(symbol); - } - return unknownType; - } - function getTargetType(type) { - return type.flags & 4096 ? type.target : type; - } - function hasBaseType(type, checkBase) { - return check(type); - function check(type) { - var target = getTargetType(type); - return target === checkBase || ts.forEach(target.baseTypes, check); - } - } - function getTypeParametersOfClassOrInterface(symbol) { - var result; - ts.forEach(symbol.declarations, function (node) { - if (node.kind === 199 || node.kind === 198) { - var declaration = node; - if (declaration.typeParameters && declaration.typeParameters.length) { - ts.forEach(declaration.typeParameters, function (node) { - var tp = getDeclaredTypeOfTypeParameter(getSymbolOfNode(node)); - if (!result) { - result = [tp]; - } - else if (!ts.contains(result, tp)) { - result.push(tp); - } - }); - } - } - }); - return result; - } - function getDeclaredTypeOfClass(symbol) { - var links = getSymbolLinks(symbol); - if (!links.declaredType) { - var type = links.declaredType = createObjectType(1024, symbol); - var typeParameters = getTypeParametersOfClassOrInterface(symbol); - if (typeParameters) { - type.flags |= 4096; - type.typeParameters = typeParameters; - type.instantiations = {}; - type.instantiations[getTypeListId(type.typeParameters)] = type; - type.target = type; - type.typeArguments = type.typeParameters; - } - type.baseTypes = []; - var declaration = ts.getDeclarationOfKind(symbol, 198); - var baseTypeNode = ts.getClassBaseTypeNode(declaration); - if (baseTypeNode) { - var baseType = getTypeFromTypeReferenceNode(baseTypeNode); - if (baseType !== unknownType) { - if (getTargetType(baseType).flags & 1024) { - if (type !== baseType && !hasBaseType(baseType, type)) { - type.baseTypes.push(baseType); - } - else { - error(declaration, ts.Diagnostics.Type_0_recursively_references_itself_as_a_base_type, typeToString(type, undefined, 1)); - } - } - else { - error(baseTypeNode, ts.Diagnostics.A_class_may_only_extend_another_class); - } - } - } - type.declaredProperties = getNamedMembers(symbol.members); - type.declaredCallSignatures = emptyArray; - type.declaredConstructSignatures = emptyArray; - type.declaredStringIndexType = getIndexTypeOfSymbol(symbol, 0); - type.declaredNumberIndexType = getIndexTypeOfSymbol(symbol, 1); - } - return links.declaredType; - } - function getDeclaredTypeOfInterface(symbol) { - var links = getSymbolLinks(symbol); - if (!links.declaredType) { - var type = links.declaredType = createObjectType(2048, symbol); - var typeParameters = getTypeParametersOfClassOrInterface(symbol); - if (typeParameters) { - type.flags |= 4096; - type.typeParameters = typeParameters; - type.instantiations = {}; - type.instantiations[getTypeListId(type.typeParameters)] = type; - type.target = type; - type.typeArguments = type.typeParameters; - } - type.baseTypes = []; - ts.forEach(symbol.declarations, function (declaration) { - if (declaration.kind === 199 && ts.getInterfaceBaseTypeNodes(declaration)) { - ts.forEach(ts.getInterfaceBaseTypeNodes(declaration), function (node) { - var baseType = getTypeFromTypeReferenceNode(node); - if (baseType !== unknownType) { - if (getTargetType(baseType).flags & (1024 | 2048)) { - if (type !== baseType && !hasBaseType(baseType, type)) { - type.baseTypes.push(baseType); - } - else { - error(declaration, ts.Diagnostics.Type_0_recursively_references_itself_as_a_base_type, typeToString(type, undefined, 1)); - } - } - else { - error(node, ts.Diagnostics.An_interface_may_only_extend_a_class_or_another_interface); - } - } - }); - } - }); - type.declaredProperties = getNamedMembers(symbol.members); - type.declaredCallSignatures = getSignaturesOfSymbol(symbol.members["__call"]); - type.declaredConstructSignatures = getSignaturesOfSymbol(symbol.members["__new"]); - type.declaredStringIndexType = getIndexTypeOfSymbol(symbol, 0); - type.declaredNumberIndexType = getIndexTypeOfSymbol(symbol, 1); - } - return links.declaredType; - } - function getDeclaredTypeOfTypeAlias(symbol) { - var links = getSymbolLinks(symbol); - if (!links.declaredType) { - links.declaredType = resolvingType; - var declaration = ts.getDeclarationOfKind(symbol, 200); - var type = getTypeFromTypeNode(declaration.type); - if (links.declaredType === resolvingType) { - links.declaredType = type; - } - } - else if (links.declaredType === resolvingType) { - links.declaredType = unknownType; - var declaration = ts.getDeclarationOfKind(symbol, 200); - error(declaration.name, ts.Diagnostics.Type_alias_0_circularly_references_itself, symbolToString(symbol)); - } - return links.declaredType; - } - function getDeclaredTypeOfEnum(symbol) { - var links = getSymbolLinks(symbol); - if (!links.declaredType) { - var type = createType(128); - type.symbol = symbol; - links.declaredType = type; - } - return links.declaredType; - } - function getDeclaredTypeOfTypeParameter(symbol) { - var links = getSymbolLinks(symbol); - if (!links.declaredType) { - var type = createType(512); - type.symbol = symbol; - if (!ts.getDeclarationOfKind(symbol, 128).constraint) { - type.constraint = noConstraintType; - } - links.declaredType = type; - } - return links.declaredType; - } - function getDeclaredTypeOfAlias(symbol) { - var links = getSymbolLinks(symbol); - if (!links.declaredType) { - links.declaredType = getDeclaredTypeOfSymbol(resolveAlias(symbol)); - } - return links.declaredType; - } - function getDeclaredTypeOfSymbol(symbol) { - ts.Debug.assert((symbol.flags & 16777216) === 0); - if (symbol.flags & 32) { - return getDeclaredTypeOfClass(symbol); - } - if (symbol.flags & 64) { - return getDeclaredTypeOfInterface(symbol); - } - if (symbol.flags & 524288) { - return getDeclaredTypeOfTypeAlias(symbol); - } - if (symbol.flags & 384) { - return getDeclaredTypeOfEnum(symbol); - } - if (symbol.flags & 262144) { - return getDeclaredTypeOfTypeParameter(symbol); - } - if (symbol.flags & 8388608) { - return getDeclaredTypeOfAlias(symbol); - } - return unknownType; - } - function createSymbolTable(symbols) { - var result = {}; - for (var _i = 0, _n = symbols.length; _i < _n; _i++) { - var symbol = symbols[_i]; - result[symbol.name] = symbol; - } - return result; - } - function createInstantiatedSymbolTable(symbols, mapper) { - var result = {}; - for (var _i = 0, _n = symbols.length; _i < _n; _i++) { - var symbol = symbols[_i]; - result[symbol.name] = instantiateSymbol(symbol, mapper); - } - return result; - } - function addInheritedMembers(symbols, baseSymbols) { - for (var _i = 0, _n = baseSymbols.length; _i < _n; _i++) { - var s = baseSymbols[_i]; - if (!ts.hasProperty(symbols, s.name)) { - symbols[s.name] = s; - } - } - } - function addInheritedSignatures(signatures, baseSignatures) { - if (baseSignatures) { - for (var _i = 0, _n = baseSignatures.length; _i < _n; _i++) { - var signature = baseSignatures[_i]; - signatures.push(signature); - } - } - } - function resolveClassOrInterfaceMembers(type) { - var members = type.symbol.members; - var callSignatures = type.declaredCallSignatures; - var constructSignatures = type.declaredConstructSignatures; - var stringIndexType = type.declaredStringIndexType; - var numberIndexType = type.declaredNumberIndexType; - if (type.baseTypes.length) { - members = createSymbolTable(type.declaredProperties); - ts.forEach(type.baseTypes, function (baseType) { - addInheritedMembers(members, getPropertiesOfObjectType(baseType)); - callSignatures = ts.concatenate(callSignatures, getSignaturesOfType(baseType, 0)); - constructSignatures = ts.concatenate(constructSignatures, getSignaturesOfType(baseType, 1)); - stringIndexType = stringIndexType || getIndexTypeOfType(baseType, 0); - numberIndexType = numberIndexType || getIndexTypeOfType(baseType, 1); - }); - } - setObjectTypeMembers(type, members, callSignatures, constructSignatures, stringIndexType, numberIndexType); - } - function resolveTypeReferenceMembers(type) { - var target = type.target; - var mapper = createTypeMapper(target.typeParameters, type.typeArguments); - var members = createInstantiatedSymbolTable(target.declaredProperties, mapper); - var callSignatures = instantiateList(target.declaredCallSignatures, mapper, instantiateSignature); - var constructSignatures = instantiateList(target.declaredConstructSignatures, mapper, instantiateSignature); - var stringIndexType = target.declaredStringIndexType ? instantiateType(target.declaredStringIndexType, mapper) : undefined; - var numberIndexType = target.declaredNumberIndexType ? instantiateType(target.declaredNumberIndexType, mapper) : undefined; - ts.forEach(target.baseTypes, function (baseType) { - var instantiatedBaseType = instantiateType(baseType, mapper); - addInheritedMembers(members, getPropertiesOfObjectType(instantiatedBaseType)); - callSignatures = ts.concatenate(callSignatures, getSignaturesOfType(instantiatedBaseType, 0)); - constructSignatures = ts.concatenate(constructSignatures, getSignaturesOfType(instantiatedBaseType, 1)); - stringIndexType = stringIndexType || getIndexTypeOfType(instantiatedBaseType, 0); - numberIndexType = numberIndexType || getIndexTypeOfType(instantiatedBaseType, 1); - }); - setObjectTypeMembers(type, members, callSignatures, constructSignatures, stringIndexType, numberIndexType); - } - function createSignature(declaration, typeParameters, parameters, resolvedReturnType, minArgumentCount, hasRestParameter, hasStringLiterals) { - var sig = new Signature(checker); - sig.declaration = declaration; - sig.typeParameters = typeParameters; - sig.parameters = parameters; - sig.resolvedReturnType = resolvedReturnType; - sig.minArgumentCount = minArgumentCount; - sig.hasRestParameter = hasRestParameter; - sig.hasStringLiterals = hasStringLiterals; - return sig; - } - function cloneSignature(sig) { - return createSignature(sig.declaration, sig.typeParameters, sig.parameters, sig.resolvedReturnType, sig.minArgumentCount, sig.hasRestParameter, sig.hasStringLiterals); - } - function getDefaultConstructSignatures(classType) { - if (classType.baseTypes.length) { - var baseType = classType.baseTypes[0]; - var baseSignatures = getSignaturesOfType(getTypeOfSymbol(baseType.symbol), 1); - return ts.map(baseSignatures, function (baseSignature) { - var signature = baseType.flags & 4096 ? - getSignatureInstantiation(baseSignature, baseType.typeArguments) : cloneSignature(baseSignature); - signature.typeParameters = classType.typeParameters; - signature.resolvedReturnType = classType; - return signature; - }); - } - return [createSignature(undefined, classType.typeParameters, emptyArray, classType, 0, false, false)]; - } - function createTupleTypeMemberSymbols(memberTypes) { - var members = {}; - for (var i = 0; i < memberTypes.length; i++) { - var symbol = createSymbol(4 | 67108864, "" + i); - symbol.type = memberTypes[i]; - members[i] = symbol; - } - return members; - } - function resolveTupleTypeMembers(type) { - var arrayType = resolveObjectOrUnionTypeMembers(createArrayType(getUnionType(type.elementTypes))); - var members = createTupleTypeMemberSymbols(type.elementTypes); - addInheritedMembers(members, arrayType.properties); - setObjectTypeMembers(type, members, arrayType.callSignatures, arrayType.constructSignatures, arrayType.stringIndexType, arrayType.numberIndexType); - } - function signatureListsIdentical(s, t) { - if (s.length !== t.length) { - return false; - } - for (var i = 0; i < s.length; i++) { - if (!compareSignatures(s[i], t[i], false, compareTypes)) { - return false; - } - } - return true; - } - function getUnionSignatures(types, kind) { - var signatureLists = ts.map(types, function (t) { return getSignaturesOfType(t, kind); }); - var signatures = signatureLists[0]; - for (var _i = 0, _n = signatures.length; _i < _n; _i++) { - var signature = signatures[_i]; - if (signature.typeParameters) { - return emptyArray; - } - } - for (var i_1 = 1; i_1 < signatureLists.length; i_1++) { - if (!signatureListsIdentical(signatures, signatureLists[i_1])) { - return emptyArray; - } - } - var result = ts.map(signatures, cloneSignature); - for (var i = 0; i < result.length; i++) { - var s = result[i]; - s.resolvedReturnType = undefined; - s.unionSignatures = ts.map(signatureLists, function (signatures) { return signatures[i]; }); - } - return result; - } - function getUnionIndexType(types, kind) { - var indexTypes = []; - for (var _i = 0, _n = types.length; _i < _n; _i++) { - var type = types[_i]; - var indexType = getIndexTypeOfType(type, kind); - if (!indexType) { - return undefined; - } - indexTypes.push(indexType); - } - return getUnionType(indexTypes); - } - function resolveUnionTypeMembers(type) { - var callSignatures = getUnionSignatures(type.types, 0); - var constructSignatures = getUnionSignatures(type.types, 1); - var stringIndexType = getUnionIndexType(type.types, 0); - var numberIndexType = getUnionIndexType(type.types, 1); - setObjectTypeMembers(type, emptySymbols, callSignatures, constructSignatures, stringIndexType, numberIndexType); - } - function resolveAnonymousTypeMembers(type) { - var symbol = type.symbol; - var members; - var callSignatures; - var constructSignatures; - var stringIndexType; - var numberIndexType; - if (symbol.flags & 2048) { - members = symbol.members; - callSignatures = getSignaturesOfSymbol(members["__call"]); - constructSignatures = getSignaturesOfSymbol(members["__new"]); - stringIndexType = getIndexTypeOfSymbol(symbol, 0); - numberIndexType = getIndexTypeOfSymbol(symbol, 1); - } - else { - members = emptySymbols; - callSignatures = emptyArray; - constructSignatures = emptyArray; - if (symbol.flags & 1952) { - members = getExportsOfSymbol(symbol); - } - if (symbol.flags & (16 | 8192)) { - callSignatures = getSignaturesOfSymbol(symbol); - } - if (symbol.flags & 32) { - var classType = getDeclaredTypeOfClass(symbol); - constructSignatures = getSignaturesOfSymbol(symbol.members["__constructor"]); - if (!constructSignatures.length) { - constructSignatures = getDefaultConstructSignatures(classType); - } - if (classType.baseTypes.length) { - members = createSymbolTable(getNamedMembers(members)); - addInheritedMembers(members, getPropertiesOfObjectType(getTypeOfSymbol(classType.baseTypes[0].symbol))); - } - } - stringIndexType = undefined; - numberIndexType = (symbol.flags & 384) ? stringType : undefined; - } - setObjectTypeMembers(type, members, callSignatures, constructSignatures, stringIndexType, numberIndexType); - } - function resolveObjectOrUnionTypeMembers(type) { - if (!type.members) { - if (type.flags & (1024 | 2048)) { - resolveClassOrInterfaceMembers(type); - } - else if (type.flags & 32768) { - resolveAnonymousTypeMembers(type); - } - else if (type.flags & 8192) { - resolveTupleTypeMembers(type); - } - else if (type.flags & 16384) { - resolveUnionTypeMembers(type); - } - else { - resolveTypeReferenceMembers(type); - } - } - return type; - } - function getPropertiesOfObjectType(type) { - if (type.flags & 48128) { - return resolveObjectOrUnionTypeMembers(type).properties; - } - return emptyArray; - } - function getPropertyOfObjectType(type, name) { - if (type.flags & 48128) { - var resolved = resolveObjectOrUnionTypeMembers(type); - if (ts.hasProperty(resolved.members, name)) { - var symbol = resolved.members[name]; - if (symbolIsValue(symbol)) { - return symbol; - } - } - } - } - function getPropertiesOfUnionType(type) { - var result = []; - ts.forEach(getPropertiesOfType(type.types[0]), function (prop) { - var unionProp = getPropertyOfUnionType(type, prop.name); - if (unionProp) { - result.push(unionProp); - } - }); - return result; - } - function getPropertiesOfType(type) { - if (type.flags & 16384) { - return getPropertiesOfUnionType(type); - } - return getPropertiesOfObjectType(getApparentType(type)); - } - function getApparentType(type) { - if (type.flags & 512) { - do { - type = getConstraintOfTypeParameter(type); - } while (type && type.flags & 512); - if (!type) { - type = emptyObjectType; - } - } - if (type.flags & 258) { - type = globalStringType; - } - else if (type.flags & 132) { - type = globalNumberType; - } - else if (type.flags & 8) { - type = globalBooleanType; - } - else if (type.flags & 1048576) { - type = globalESSymbolType; - } - return type; - } - function createUnionProperty(unionType, name) { - var types = unionType.types; - var props; - for (var _i = 0, _n = types.length; _i < _n; _i++) { - var current = types[_i]; - var type = getApparentType(current); - if (type !== unknownType) { - var prop = getPropertyOfType(type, name); - if (!prop) { - return undefined; - } - if (!props) { - props = [prop]; - } - else { - props.push(prop); - } - } - } - var propTypes = []; - var declarations = []; - for (var _a = 0, _b = props.length; _a < _b; _a++) { - var prop = props[_a]; - if (prop.declarations) { - declarations.push.apply(declarations, prop.declarations); - } - propTypes.push(getTypeOfSymbol(prop)); - } - var result = createSymbol(4 | 67108864 | 268435456, name); - result.unionType = unionType; - result.declarations = declarations; - result.type = getUnionType(propTypes); - return result; - } - function getPropertyOfUnionType(type, name) { - var properties = type.resolvedProperties || (type.resolvedProperties = {}); - if (ts.hasProperty(properties, name)) { - return properties[name]; - } - var property = createUnionProperty(type, name); - if (property) { - properties[name] = property; - } - return property; - } - function getPropertyOfType(type, name) { - if (type.flags & 16384) { - return getPropertyOfUnionType(type, name); - } - if (!(type.flags & 48128)) { - type = getApparentType(type); - if (!(type.flags & 48128)) { - return undefined; - } - } - var resolved = resolveObjectOrUnionTypeMembers(type); - if (ts.hasProperty(resolved.members, name)) { - var symbol = resolved.members[name]; - if (symbolIsValue(symbol)) { - return symbol; - } - } - if (resolved === anyFunctionType || resolved.callSignatures.length || resolved.constructSignatures.length) { - var symbol = getPropertyOfObjectType(globalFunctionType, name); - if (symbol) - return symbol; - } - return getPropertyOfObjectType(globalObjectType, name); - } - function getSignaturesOfObjectOrUnionType(type, kind) { - if (type.flags & (48128 | 16384)) { - var resolved = resolveObjectOrUnionTypeMembers(type); - return kind === 0 ? resolved.callSignatures : resolved.constructSignatures; - } - return emptyArray; - } - function getSignaturesOfType(type, kind) { - return getSignaturesOfObjectOrUnionType(getApparentType(type), kind); - } - function getIndexTypeOfObjectOrUnionType(type, kind) { - if (type.flags & (48128 | 16384)) { - var resolved = resolveObjectOrUnionTypeMembers(type); - return kind === 0 ? resolved.stringIndexType : resolved.numberIndexType; - } - } - function getIndexTypeOfType(type, kind) { - return getIndexTypeOfObjectOrUnionType(getApparentType(type), kind); - } - function getTypeParametersFromDeclaration(typeParameterDeclarations) { - var result = []; - ts.forEach(typeParameterDeclarations, function (node) { - var tp = getDeclaredTypeOfTypeParameter(node.symbol); - if (!ts.contains(result, tp)) { - result.push(tp); - } - }); - return result; - } - function symbolsToArray(symbols) { - var result = []; - for (var id in symbols) { - if (!isReservedMemberName(id)) { - result.push(symbols[id]); - } - } - return result; - } - function getExportsOfExternalModule(node) { - if (!node.moduleSpecifier) { - return emptyArray; - } - var module = resolveExternalModuleName(node, node.moduleSpecifier); - if (!module) { - return emptyArray; - } - return symbolsToArray(getExportsOfModule(module)); - } - function getSignatureFromDeclaration(declaration) { - var links = getNodeLinks(declaration); - if (!links.resolvedSignature) { - var classType = declaration.kind === 135 ? getDeclaredTypeOfClass(declaration.parent.symbol) : undefined; - var typeParameters = classType ? classType.typeParameters : - declaration.typeParameters ? getTypeParametersFromDeclaration(declaration.typeParameters) : undefined; - var parameters = []; - var hasStringLiterals = false; - var minArgumentCount = -1; - for (var i = 0, n = declaration.parameters.length; i < n; i++) { - var param = declaration.parameters[i]; - parameters.push(param.symbol); - if (param.type && param.type.kind === 8) { - hasStringLiterals = true; - } - if (minArgumentCount < 0) { - if (param.initializer || param.questionToken || param.dotDotDotToken) { - minArgumentCount = i; - } - } - } - if (minArgumentCount < 0) { - minArgumentCount = declaration.parameters.length; - } - var returnType; - if (classType) { - returnType = classType; - } - else if (declaration.type) { - returnType = getTypeFromTypeNode(declaration.type); - } - else { - if (declaration.kind === 136 && !ts.hasDynamicName(declaration)) { - var setter = ts.getDeclarationOfKind(declaration.symbol, 137); - returnType = getAnnotatedAccessorType(setter); - } - if (!returnType && ts.nodeIsMissing(declaration.body)) { - returnType = anyType; - } - } - links.resolvedSignature = createSignature(declaration, typeParameters, parameters, returnType, minArgumentCount, ts.hasRestParameters(declaration), hasStringLiterals); - } - return links.resolvedSignature; - } - function getSignaturesOfSymbol(symbol) { - if (!symbol) - return emptyArray; - var result = []; - for (var i = 0, len = symbol.declarations.length; i < len; i++) { - var node = symbol.declarations[i]; - switch (node.kind) { - case 142: - case 143: - case 197: - case 134: - case 133: - case 135: - case 138: - case 139: - case 140: - case 136: - case 137: - case 162: - case 163: - if (i > 0 && node.body) { - var previous = symbol.declarations[i - 1]; - if (node.parent === previous.parent && node.kind === previous.kind && node.pos === previous.end) { - break; - } - } - result.push(getSignatureFromDeclaration(node)); - } - } - return result; - } - function getReturnTypeOfSignature(signature) { - if (!signature.resolvedReturnType) { - signature.resolvedReturnType = resolvingType; - var type; - if (signature.target) { - type = instantiateType(getReturnTypeOfSignature(signature.target), signature.mapper); - } - else if (signature.unionSignatures) { - type = getUnionType(ts.map(signature.unionSignatures, getReturnTypeOfSignature)); - } - else { - type = getReturnTypeFromBody(signature.declaration); - } - if (signature.resolvedReturnType === resolvingType) { - signature.resolvedReturnType = type; - } - } - else if (signature.resolvedReturnType === resolvingType) { - signature.resolvedReturnType = anyType; - if (compilerOptions.noImplicitAny) { - var declaration = signature.declaration; - if (declaration.name) { - error(declaration.name, ts.Diagnostics._0_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions, ts.declarationNameToString(declaration.name)); - } - else { - error(declaration, ts.Diagnostics.Function_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions); - } - } - } - return signature.resolvedReturnType; - } - function getRestTypeOfSignature(signature) { - if (signature.hasRestParameter) { - var type = getTypeOfSymbol(signature.parameters[signature.parameters.length - 1]); - if (type.flags & 4096 && type.target === globalArrayType) { - return type.typeArguments[0]; - } - } - return anyType; - } - function getSignatureInstantiation(signature, typeArguments) { - return instantiateSignature(signature, createTypeMapper(signature.typeParameters, typeArguments), true); - } - function getErasedSignature(signature) { - if (!signature.typeParameters) - return signature; - if (!signature.erasedSignatureCache) { - if (signature.target) { - signature.erasedSignatureCache = instantiateSignature(getErasedSignature(signature.target), signature.mapper); - } - else { - signature.erasedSignatureCache = instantiateSignature(signature, createTypeEraser(signature.typeParameters), true); - } - } - return signature.erasedSignatureCache; - } - function getOrCreateTypeFromSignature(signature) { - if (!signature.isolatedSignatureType) { - var isConstructor = signature.declaration.kind === 135 || signature.declaration.kind === 139; - var type = createObjectType(32768 | 65536); - type.members = emptySymbols; - type.properties = emptyArray; - type.callSignatures = !isConstructor ? [signature] : emptyArray; - type.constructSignatures = isConstructor ? [signature] : emptyArray; - signature.isolatedSignatureType = type; - } - return signature.isolatedSignatureType; - } - function getIndexSymbol(symbol) { - return symbol.members["__index"]; - } - function getIndexDeclarationOfSymbol(symbol, kind) { - var syntaxKind = kind === 1 ? 119 : 121; - var indexSymbol = getIndexSymbol(symbol); - if (indexSymbol) { - var len = indexSymbol.declarations.length; - for (var _i = 0, _a = indexSymbol.declarations, _n = _a.length; _i < _n; _i++) { - var decl = _a[_i]; - var node = decl; - if (node.parameters.length === 1) { - var parameter = node.parameters[0]; - if (parameter && parameter.type && parameter.type.kind === syntaxKind) { - return node; - } - } - } - } - return undefined; - } - function getIndexTypeOfSymbol(symbol, kind) { - var declaration = getIndexDeclarationOfSymbol(symbol, kind); - return declaration - ? declaration.type ? getTypeFromTypeNode(declaration.type) : anyType - : undefined; - } - function getConstraintOfTypeParameter(type) { - if (!type.constraint) { - if (type.target) { - var targetConstraint = getConstraintOfTypeParameter(type.target); - type.constraint = targetConstraint ? instantiateType(targetConstraint, type.mapper) : noConstraintType; - } - else { - type.constraint = getTypeFromTypeNode(ts.getDeclarationOfKind(type.symbol, 128).constraint); - } - } - return type.constraint === noConstraintType ? undefined : type.constraint; - } - function getTypeListId(types) { - switch (types.length) { - case 1: - return "" + types[0].id; - case 2: - return types[0].id + "," + types[1].id; - default: - var result = ""; - for (var i = 0; i < types.length; i++) { - if (i > 0) { - result += ","; - } - result += types[i].id; - } - return result; - } - } - function getWideningFlagsOfTypes(types) { - var result = 0; - for (var _i = 0, _n = types.length; _i < _n; _i++) { - var type = types[_i]; - result |= type.flags; - } - return result & 786432; - } - function createTypeReference(target, typeArguments) { - var id = getTypeListId(typeArguments); - var type = target.instantiations[id]; - if (!type) { - var flags = 4096 | getWideningFlagsOfTypes(typeArguments); - type = target.instantiations[id] = createObjectType(flags, target.symbol); - type.target = target; - type.typeArguments = typeArguments; - } - return type; - } - function isTypeParameterReferenceIllegalInConstraint(typeReferenceNode, typeParameterSymbol) { - var links = getNodeLinks(typeReferenceNode); - if (links.isIllegalTypeReferenceInConstraint !== undefined) { - return links.isIllegalTypeReferenceInConstraint; - } - var currentNode = typeReferenceNode; - while (!ts.forEach(typeParameterSymbol.declarations, function (d) { return d.parent === currentNode.parent; })) { - currentNode = currentNode.parent; - } - links.isIllegalTypeReferenceInConstraint = currentNode.kind === 128; - return links.isIllegalTypeReferenceInConstraint; - } - function checkTypeParameterHasIllegalReferencesInConstraint(typeParameter) { - var typeParameterSymbol; - function check(n) { - if (n.kind === 141 && n.typeName.kind === 65) { - var links = getNodeLinks(n); - if (links.isIllegalTypeReferenceInConstraint === undefined) { - var symbol = resolveName(typeParameter, n.typeName.text, 793056, undefined, undefined); - if (symbol && (symbol.flags & 262144)) { - links.isIllegalTypeReferenceInConstraint = ts.forEach(symbol.declarations, function (d) { return d.parent == typeParameter.parent; }); - } - } - if (links.isIllegalTypeReferenceInConstraint) { - error(typeParameter, ts.Diagnostics.Constraint_of_a_type_parameter_cannot_reference_any_type_parameter_from_the_same_type_parameter_list); - } - } - ts.forEachChild(n, check); - } - if (typeParameter.constraint) { - typeParameterSymbol = getSymbolOfNode(typeParameter); - check(typeParameter.constraint); - } - } - function getTypeFromTypeReferenceNode(node) { - var links = getNodeLinks(node); - if (!links.resolvedType) { - var symbol = resolveEntityName(node.typeName, 793056); - var type; - if (symbol) { - if ((symbol.flags & 262144) && isTypeParameterReferenceIllegalInConstraint(node, symbol)) { - type = unknownType; - } - else { - type = getDeclaredTypeOfSymbol(symbol); - if (type.flags & (1024 | 2048) && type.flags & 4096) { - var typeParameters = type.typeParameters; - if (node.typeArguments && node.typeArguments.length === typeParameters.length) { - type = createTypeReference(type, ts.map(node.typeArguments, getTypeFromTypeNode)); - } - else { - error(node, ts.Diagnostics.Generic_type_0_requires_1_type_argument_s, typeToString(type, undefined, 1), typeParameters.length); - type = undefined; - } - } - else { - if (node.typeArguments) { - error(node, ts.Diagnostics.Type_0_is_not_generic, typeToString(type)); - type = undefined; - } - } - } - } - links.resolvedType = type || unknownType; - } - return links.resolvedType; - } - function getTypeFromTypeQueryNode(node) { - var links = getNodeLinks(node); - if (!links.resolvedType) { - links.resolvedType = getWidenedType(checkExpressionOrQualifiedName(node.exprName)); - } - return links.resolvedType; - } - function getTypeOfGlobalSymbol(symbol, arity) { - function getTypeDeclaration(symbol) { - var declarations = symbol.declarations; - for (var _i = 0, _n = declarations.length; _i < _n; _i++) { - var declaration = declarations[_i]; - switch (declaration.kind) { - case 198: - case 199: - case 201: - return declaration; - } - } - } - if (!symbol) { - return emptyObjectType; - } - var type = getDeclaredTypeOfSymbol(symbol); - if (!(type.flags & 48128)) { - error(getTypeDeclaration(symbol), ts.Diagnostics.Global_type_0_must_be_a_class_or_interface_type, symbol.name); - return emptyObjectType; - } - if ((type.typeParameters ? type.typeParameters.length : 0) !== arity) { - error(getTypeDeclaration(symbol), ts.Diagnostics.Global_type_0_must_have_1_type_parameter_s, symbol.name, arity); - return emptyObjectType; - } - return type; - } - function getGlobalValueSymbol(name) { - return getGlobalSymbol(name, 107455, ts.Diagnostics.Cannot_find_global_value_0); - } - function getGlobalTypeSymbol(name) { - return getGlobalSymbol(name, 793056, ts.Diagnostics.Cannot_find_global_type_0); - } - function getGlobalSymbol(name, meaning, diagnostic) { - return resolveName(undefined, name, meaning, diagnostic, name); - } - function getGlobalType(name, arity) { - if (arity === void 0) { arity = 0; } - return getTypeOfGlobalSymbol(getGlobalTypeSymbol(name), arity); - } - function getGlobalESSymbolConstructorSymbol() { - return globalESSymbolConstructorSymbol || (globalESSymbolConstructorSymbol = getGlobalValueSymbol("Symbol")); - } - function createArrayType(elementType) { - var arrayType = globalArrayType || getDeclaredTypeOfSymbol(globalArraySymbol); - return arrayType !== emptyObjectType ? createTypeReference(arrayType, [elementType]) : emptyObjectType; - } - function getTypeFromArrayTypeNode(node) { - var links = getNodeLinks(node); - if (!links.resolvedType) { - links.resolvedType = createArrayType(getTypeFromTypeNode(node.elementType)); - } - return links.resolvedType; - } - function createTupleType(elementTypes) { - var id = getTypeListId(elementTypes); - var type = tupleTypes[id]; - if (!type) { - type = tupleTypes[id] = createObjectType(8192); - type.elementTypes = elementTypes; - } - return type; - } - function getTypeFromTupleTypeNode(node) { - var links = getNodeLinks(node); - if (!links.resolvedType) { - links.resolvedType = createTupleType(ts.map(node.elementTypes, getTypeFromTypeNode)); - } - return links.resolvedType; - } - function addTypeToSortedSet(sortedSet, type) { - if (type.flags & 16384) { - addTypesToSortedSet(sortedSet, type.types); - } - else { - var i = 0; - var id = type.id; - while (i < sortedSet.length && sortedSet[i].id < id) { - i++; - } - if (i === sortedSet.length || sortedSet[i].id !== id) { - sortedSet.splice(i, 0, type); - } - } - } - function addTypesToSortedSet(sortedTypes, types) { - for (var _i = 0, _n = types.length; _i < _n; _i++) { - var type = types[_i]; - addTypeToSortedSet(sortedTypes, type); - } - } - function isSubtypeOfAny(candidate, types) { - for (var _i = 0, _n = types.length; _i < _n; _i++) { - var type = types[_i]; - if (candidate !== type && isTypeSubtypeOf(candidate, type)) { - return true; - } - } - return false; - } - function removeSubtypes(types) { - var i = types.length; - while (i > 0) { - i--; - if (isSubtypeOfAny(types[i], types)) { - types.splice(i, 1); - } - } - } - function containsAnyType(types) { - for (var _i = 0, _n = types.length; _i < _n; _i++) { - var type = types[_i]; - if (type.flags & 1) { - return true; - } - } - return false; - } - function removeAllButLast(types, typeToRemove) { - var i = types.length; - while (i > 0 && types.length > 1) { - i--; - if (types[i] === typeToRemove) { - types.splice(i, 1); - } - } - } - function getUnionType(types, noSubtypeReduction) { - if (types.length === 0) { - return emptyObjectType; - } - var sortedTypes = []; - addTypesToSortedSet(sortedTypes, types); - if (noSubtypeReduction) { - if (containsAnyType(sortedTypes)) { - return anyType; - } - removeAllButLast(sortedTypes, undefinedType); - removeAllButLast(sortedTypes, nullType); - } - else { - removeSubtypes(sortedTypes); - } - if (sortedTypes.length === 1) { - return sortedTypes[0]; - } - var id = getTypeListId(sortedTypes); - var type = unionTypes[id]; - if (!type) { - type = unionTypes[id] = createObjectType(16384 | getWideningFlagsOfTypes(sortedTypes)); - type.types = sortedTypes; - } - return type; - } - function getTypeFromUnionTypeNode(node) { - var links = getNodeLinks(node); - if (!links.resolvedType) { - links.resolvedType = getUnionType(ts.map(node.types, getTypeFromTypeNode), true); - } - return links.resolvedType; - } - function getTypeFromTypeLiteralOrFunctionOrConstructorTypeNode(node) { - var links = getNodeLinks(node); - if (!links.resolvedType) { - links.resolvedType = createObjectType(32768, node.symbol); - } - return links.resolvedType; - } - function getStringLiteralType(node) { - if (ts.hasProperty(stringLiteralTypes, node.text)) { - return stringLiteralTypes[node.text]; - } - var type = stringLiteralTypes[node.text] = createType(256); - type.text = ts.getTextOfNode(node); - return type; - } - function getTypeFromStringLiteral(node) { - var links = getNodeLinks(node); - if (!links.resolvedType) { - links.resolvedType = getStringLiteralType(node); - } - return links.resolvedType; - } - function getTypeFromTypeNode(node) { - switch (node.kind) { - case 112: - return anyType; - case 121: - return stringType; - case 119: - return numberType; - case 113: - return booleanType; - case 122: - return esSymbolType; - case 99: - return voidType; - case 8: - return getTypeFromStringLiteral(node); - case 141: - return getTypeFromTypeReferenceNode(node); - case 144: - return getTypeFromTypeQueryNode(node); - case 146: - return getTypeFromArrayTypeNode(node); - case 147: - return getTypeFromTupleTypeNode(node); - case 148: - return getTypeFromUnionTypeNode(node); - case 149: - return getTypeFromTypeNode(node.type); - case 142: - case 143: - case 145: - return getTypeFromTypeLiteralOrFunctionOrConstructorTypeNode(node); - case 65: - case 126: - var symbol = getSymbolInfo(node); - return symbol && getDeclaredTypeOfSymbol(symbol); - default: - return unknownType; - } - } - function instantiateList(items, mapper, instantiator) { - if (items && items.length) { - var result = []; - for (var _i = 0, _n = items.length; _i < _n; _i++) { - var v = items[_i]; - result.push(instantiator(v, mapper)); - } - return result; - } - return items; - } - function createUnaryTypeMapper(source, target) { - return function (t) { return t === source ? target : t; }; - } - function createBinaryTypeMapper(source1, target1, source2, target2) { - return function (t) { return t === source1 ? target1 : t === source2 ? target2 : t; }; - } - function createTypeMapper(sources, targets) { - switch (sources.length) { - case 1: return createUnaryTypeMapper(sources[0], targets[0]); - case 2: return createBinaryTypeMapper(sources[0], targets[0], sources[1], targets[1]); - } - return function (t) { - for (var i = 0; i < sources.length; i++) { - if (t === sources[i]) { - return targets[i]; - } - } - return t; - }; - } - function createUnaryTypeEraser(source) { - return function (t) { return t === source ? anyType : t; }; - } - function createBinaryTypeEraser(source1, source2) { - return function (t) { return t === source1 || t === source2 ? anyType : t; }; - } - function createTypeEraser(sources) { - switch (sources.length) { - case 1: return createUnaryTypeEraser(sources[0]); - case 2: return createBinaryTypeEraser(sources[0], sources[1]); - } - return function (t) { - for (var _i = 0, _n = sources.length; _i < _n; _i++) { - var source = sources[_i]; - if (t === source) { - return anyType; - } - } - return t; - }; - } - function createInferenceMapper(context) { - return function (t) { - for (var i = 0; i < context.typeParameters.length; i++) { - if (t === context.typeParameters[i]) { - context.inferences[i].isFixed = true; - return getInferredType(context, i); - } - } - return t; - }; - } - function identityMapper(type) { - return type; - } - function combineTypeMappers(mapper1, mapper2) { - return function (t) { return mapper2(mapper1(t)); }; - } - function instantiateTypeParameter(typeParameter, mapper) { - var result = createType(512); - result.symbol = typeParameter.symbol; - if (typeParameter.constraint) { - result.constraint = instantiateType(typeParameter.constraint, mapper); - } - else { - result.target = typeParameter; - result.mapper = mapper; - } - return result; - } - function instantiateSignature(signature, mapper, eraseTypeParameters) { - var freshTypeParameters; - if (signature.typeParameters && !eraseTypeParameters) { - freshTypeParameters = instantiateList(signature.typeParameters, mapper, instantiateTypeParameter); - mapper = combineTypeMappers(createTypeMapper(signature.typeParameters, freshTypeParameters), mapper); - } - var result = createSignature(signature.declaration, freshTypeParameters, instantiateList(signature.parameters, mapper, instantiateSymbol), signature.resolvedReturnType ? instantiateType(signature.resolvedReturnType, mapper) : undefined, signature.minArgumentCount, signature.hasRestParameter, signature.hasStringLiterals); - result.target = signature; - result.mapper = mapper; - return result; - } - function instantiateSymbol(symbol, mapper) { - if (symbol.flags & 16777216) { - var links = getSymbolLinks(symbol); - symbol = links.target; - mapper = combineTypeMappers(links.mapper, mapper); - } - var result = createSymbol(16777216 | 67108864 | symbol.flags, symbol.name); - result.declarations = symbol.declarations; - result.parent = symbol.parent; - result.target = symbol; - result.mapper = mapper; - if (symbol.valueDeclaration) { - result.valueDeclaration = symbol.valueDeclaration; - } - return result; - } - function instantiateAnonymousType(type, mapper) { - var result = createObjectType(32768, type.symbol); - result.properties = instantiateList(getPropertiesOfObjectType(type), mapper, instantiateSymbol); - result.members = createSymbolTable(result.properties); - result.callSignatures = instantiateList(getSignaturesOfType(type, 0), mapper, instantiateSignature); - result.constructSignatures = instantiateList(getSignaturesOfType(type, 1), mapper, instantiateSignature); - var stringIndexType = getIndexTypeOfType(type, 0); - var numberIndexType = getIndexTypeOfType(type, 1); - if (stringIndexType) - result.stringIndexType = instantiateType(stringIndexType, mapper); - if (numberIndexType) - result.numberIndexType = instantiateType(numberIndexType, mapper); - return result; - } - function instantiateType(type, mapper) { - if (mapper !== identityMapper) { - if (type.flags & 512) { - return mapper(type); - } - if (type.flags & 32768) { - return type.symbol && type.symbol.flags & (16 | 8192 | 2048 | 4096) ? - instantiateAnonymousType(type, mapper) : type; - } - if (type.flags & 4096) { - return createTypeReference(type.target, instantiateList(type.typeArguments, mapper, instantiateType)); - } - if (type.flags & 8192) { - return createTupleType(instantiateList(type.elementTypes, mapper, instantiateType)); - } - if (type.flags & 16384) { - return getUnionType(instantiateList(type.types, mapper, instantiateType), true); - } - } - return type; - } - function isContextSensitive(node) { - ts.Debug.assert(node.kind !== 134 || ts.isObjectLiteralMethod(node)); - switch (node.kind) { - case 162: - case 163: - return isContextSensitiveFunctionLikeDeclaration(node); - case 154: - return ts.forEach(node.properties, isContextSensitive); - case 153: - return ts.forEach(node.elements, isContextSensitive); - case 170: - return isContextSensitive(node.whenTrue) || - isContextSensitive(node.whenFalse); - case 169: - return node.operatorToken.kind === 49 && - (isContextSensitive(node.left) || isContextSensitive(node.right)); - case 221: - return isContextSensitive(node.initializer); - case 134: - case 133: - return isContextSensitiveFunctionLikeDeclaration(node); - case 161: - return isContextSensitive(node.expression); - } - return false; - } - function isContextSensitiveFunctionLikeDeclaration(node) { - return !node.typeParameters && node.parameters.length && !ts.forEach(node.parameters, function (p) { return p.type; }); - } - function getTypeWithoutConstructors(type) { - if (type.flags & 48128) { - var resolved = resolveObjectOrUnionTypeMembers(type); - if (resolved.constructSignatures.length) { - var result = createObjectType(32768, type.symbol); - result.members = resolved.members; - result.properties = resolved.properties; - result.callSignatures = resolved.callSignatures; - result.constructSignatures = emptyArray; - type = result; - } - } - return type; - } - var subtypeRelation = {}; - var assignableRelation = {}; - var identityRelation = {}; - function isTypeIdenticalTo(source, target) { - return checkTypeRelatedTo(source, target, identityRelation, undefined); - } - function compareTypes(source, target) { - return checkTypeRelatedTo(source, target, identityRelation, undefined) ? -1 : 0; - } - function isTypeSubtypeOf(source, target) { - return checkTypeSubtypeOf(source, target, undefined); - } - function isTypeAssignableTo(source, target) { - return checkTypeAssignableTo(source, target, undefined); - } - function checkTypeSubtypeOf(source, target, errorNode, headMessage, containingMessageChain) { - return checkTypeRelatedTo(source, target, subtypeRelation, errorNode, headMessage, containingMessageChain); - } - function checkTypeAssignableTo(source, target, errorNode, headMessage) { - return checkTypeRelatedTo(source, target, assignableRelation, errorNode, headMessage); - } - function isSignatureAssignableTo(source, target) { - var sourceType = getOrCreateTypeFromSignature(source); - var targetType = getOrCreateTypeFromSignature(target); - return checkTypeRelatedTo(sourceType, targetType, assignableRelation, undefined); - } - function checkTypeRelatedTo(source, target, relation, errorNode, headMessage, containingMessageChain) { - var errorInfo; - var sourceStack; - var targetStack; - var maybeStack; - var expandingFlags; - var depth = 0; - var overflow = false; - var elaborateErrors = false; - ts.Debug.assert(relation !== identityRelation || !errorNode, "no error reporting in identity checking"); - var result = isRelatedTo(source, target, errorNode !== undefined, headMessage); - if (overflow) { - error(errorNode, ts.Diagnostics.Excessive_stack_depth_comparing_types_0_and_1, typeToString(source), typeToString(target)); - } - else if (errorInfo) { - if (errorInfo.next === undefined) { - errorInfo = undefined; - elaborateErrors = true; - isRelatedTo(source, target, errorNode !== undefined, headMessage); - } - if (containingMessageChain) { - errorInfo = ts.concatenateDiagnosticMessageChains(containingMessageChain, errorInfo); - } - diagnostics.add(ts.createDiagnosticForNodeFromMessageChain(errorNode, errorInfo)); - } - return result !== 0; - function reportError(message, arg0, arg1, arg2) { - errorInfo = ts.chainDiagnosticMessages(errorInfo, message, arg0, arg1, arg2); - } - function isRelatedTo(source, target, reportErrors, headMessage) { - var result; - if (source === target) - return -1; - if (relation !== identityRelation) { - if (target.flags & 1) - return -1; - if (source === undefinedType) - return -1; - if (source === nullType && target !== undefinedType) - return -1; - if (source.flags & 128 && target === numberType) - return -1; - if (source.flags & 256 && target === stringType) - return -1; - if (relation === assignableRelation) { - if (source.flags & 1) - return -1; - if (source === numberType && target.flags & 128) - return -1; - } - } - if (source.flags & 16384 || target.flags & 16384) { - if (relation === identityRelation) { - if (source.flags & 16384 && target.flags & 16384) { - if (result = unionTypeRelatedToUnionType(source, target)) { - if (result &= unionTypeRelatedToUnionType(target, source)) { - return result; - } - } - } - else if (source.flags & 16384) { - if (result = unionTypeRelatedToType(source, target, reportErrors)) { - return result; - } - } - else { - if (result = unionTypeRelatedToType(target, source, reportErrors)) { - return result; - } - } - } - else { - if (source.flags & 16384) { - if (result = unionTypeRelatedToType(source, target, reportErrors)) { - return result; - } - } - else { - if (result = typeRelatedToUnionType(source, target, reportErrors)) { - return result; - } - } - } - } - else if (source.flags & 512 && target.flags & 512) { - if (result = typeParameterRelatedTo(source, target, reportErrors)) { - return result; - } - } - else { - var saveErrorInfo = errorInfo; - if (source.flags & 4096 && target.flags & 4096 && source.target === target.target) { - if (result = typesRelatedTo(source.typeArguments, target.typeArguments, reportErrors)) { - return result; - } - } - var reportStructuralErrors = reportErrors && errorInfo === saveErrorInfo; - var sourceOrApparentType = relation === identityRelation ? source : getApparentType(source); - if (sourceOrApparentType.flags & 48128 && target.flags & 48128 && - (result = objectTypeRelatedTo(sourceOrApparentType, target, reportStructuralErrors))) { - errorInfo = saveErrorInfo; - return result; - } - } - if (reportErrors) { - headMessage = headMessage || ts.Diagnostics.Type_0_is_not_assignable_to_type_1; - var sourceType = typeToString(source); - var targetType = typeToString(target); - if (sourceType === targetType) { - sourceType = typeToString(source, undefined, 128); - targetType = typeToString(target, undefined, 128); - } - reportError(headMessage, sourceType, targetType); - } - return 0; - } - function unionTypeRelatedToUnionType(source, target) { - var result = -1; - var sourceTypes = source.types; - for (var _i = 0, _n = sourceTypes.length; _i < _n; _i++) { - var sourceType = sourceTypes[_i]; - var related = typeRelatedToUnionType(sourceType, target, false); - if (!related) { - return 0; - } - result &= related; - } - return result; - } - function typeRelatedToUnionType(source, target, reportErrors) { - var targetTypes = target.types; - for (var i = 0, len = targetTypes.length; i < len; i++) { - var related = isRelatedTo(source, targetTypes[i], reportErrors && i === len - 1); - if (related) { - return related; - } - } - return 0; - } - function unionTypeRelatedToType(source, target, reportErrors) { - var result = -1; - var sourceTypes = source.types; - for (var _i = 0, _n = sourceTypes.length; _i < _n; _i++) { - var sourceType = sourceTypes[_i]; - var related = isRelatedTo(sourceType, target, reportErrors); - if (!related) { - return 0; - } - result &= related; - } - return result; - } - function typesRelatedTo(sources, targets, reportErrors) { - var result = -1; - for (var i = 0, len = sources.length; i < len; i++) { - var related = isRelatedTo(sources[i], targets[i], reportErrors); - if (!related) { - return 0; - } - result &= related; - } - return result; - } - function typeParameterRelatedTo(source, target, reportErrors) { - if (relation === identityRelation) { - if (source.symbol.name !== target.symbol.name) { - return 0; - } - if (source.constraint === target.constraint) { - return -1; - } - if (source.constraint === noConstraintType || target.constraint === noConstraintType) { - return 0; - } - return isRelatedTo(source.constraint, target.constraint, reportErrors); - } - else { - while (true) { - var constraint = getConstraintOfTypeParameter(source); - if (constraint === target) - return -1; - if (!(constraint && constraint.flags & 512)) - break; - source = constraint; - } - return 0; - } - } - function objectTypeRelatedTo(source, target, reportErrors) { - if (overflow) { - return 0; - } - var id = relation !== identityRelation || source.id < target.id ? source.id + "," + target.id : target.id + "," + source.id; - var related = relation[id]; - if (related !== undefined) { - if (!elaborateErrors || (related === 3)) { - return related === 1 ? -1 : 0; - } - } - if (depth > 0) { - for (var i = 0; i < depth; i++) { - if (maybeStack[i][id]) { - return 1; - } - } - if (depth === 100) { - overflow = true; - return 0; - } - } - else { - sourceStack = []; - targetStack = []; - maybeStack = []; - expandingFlags = 0; - } - sourceStack[depth] = source; - targetStack[depth] = target; - maybeStack[depth] = {}; - maybeStack[depth][id] = 1; - depth++; - var saveExpandingFlags = expandingFlags; - if (!(expandingFlags & 1) && isDeeplyNestedGeneric(source, sourceStack)) - expandingFlags |= 1; - if (!(expandingFlags & 2) && isDeeplyNestedGeneric(target, targetStack)) - expandingFlags |= 2; - var result; - if (expandingFlags === 3) { - result = 1; - } - else { - result = propertiesRelatedTo(source, target, reportErrors); - if (result) { - result &= signaturesRelatedTo(source, target, 0, reportErrors); - if (result) { - result &= signaturesRelatedTo(source, target, 1, reportErrors); - if (result) { - result &= stringIndexTypesRelatedTo(source, target, reportErrors); - if (result) { - result &= numberIndexTypesRelatedTo(source, target, reportErrors); - } - } - } - } - } - expandingFlags = saveExpandingFlags; - depth--; - if (result) { - var maybeCache = maybeStack[depth]; - var destinationCache = (result === -1 || depth === 0) ? relation : maybeStack[depth - 1]; - ts.copyMap(maybeCache, destinationCache); - } - else { - relation[id] = reportErrors ? 3 : 2; - } - return result; - } - function isDeeplyNestedGeneric(type, stack) { - if (type.flags & 4096 && depth >= 10) { - var target_1 = type.target; - var count = 0; - for (var i = 0; i < depth; i++) { - var t = stack[i]; - if (t.flags & 4096 && t.target === target_1) { - count++; - if (count >= 10) - return true; - } - } - } - return false; - } - function propertiesRelatedTo(source, target, reportErrors) { - if (relation === identityRelation) { - return propertiesIdenticalTo(source, target); - } - var result = -1; - var properties = getPropertiesOfObjectType(target); - var requireOptionalProperties = relation === subtypeRelation && !(source.flags & 131072); - for (var _i = 0, _n = properties.length; _i < _n; _i++) { - var targetProp = properties[_i]; - var sourceProp = getPropertyOfType(source, targetProp.name); - if (sourceProp !== targetProp) { - if (!sourceProp) { - if (!(targetProp.flags & 536870912) || requireOptionalProperties) { - if (reportErrors) { - reportError(ts.Diagnostics.Property_0_is_missing_in_type_1, symbolToString(targetProp), typeToString(source)); - } - return 0; - } - } - else if (!(targetProp.flags & 134217728)) { - var sourceFlags = getDeclarationFlagsFromSymbol(sourceProp); - var targetFlags = getDeclarationFlagsFromSymbol(targetProp); - if (sourceFlags & 32 || targetFlags & 32) { - if (sourceProp.valueDeclaration !== targetProp.valueDeclaration) { - if (reportErrors) { - if (sourceFlags & 32 && targetFlags & 32) { - reportError(ts.Diagnostics.Types_have_separate_declarations_of_a_private_property_0, symbolToString(targetProp)); - } - else { - reportError(ts.Diagnostics.Property_0_is_private_in_type_1_but_not_in_type_2, symbolToString(targetProp), typeToString(sourceFlags & 32 ? source : target), typeToString(sourceFlags & 32 ? target : source)); - } - } - return 0; - } - } - else if (targetFlags & 64) { - var sourceDeclaredInClass = sourceProp.parent && sourceProp.parent.flags & 32; - var sourceClass = sourceDeclaredInClass ? getDeclaredTypeOfSymbol(sourceProp.parent) : undefined; - var targetClass = getDeclaredTypeOfSymbol(targetProp.parent); - if (!sourceClass || !hasBaseType(sourceClass, targetClass)) { - if (reportErrors) { - reportError(ts.Diagnostics.Property_0_is_protected_but_type_1_is_not_a_class_derived_from_2, symbolToString(targetProp), typeToString(sourceClass || source), typeToString(targetClass)); - } - return 0; - } - } - else if (sourceFlags & 64) { - if (reportErrors) { - reportError(ts.Diagnostics.Property_0_is_protected_in_type_1_but_public_in_type_2, symbolToString(targetProp), typeToString(source), typeToString(target)); - } - return 0; - } - var related = isRelatedTo(getTypeOfSymbol(sourceProp), getTypeOfSymbol(targetProp), reportErrors); - if (!related) { - if (reportErrors) { - reportError(ts.Diagnostics.Types_of_property_0_are_incompatible, symbolToString(targetProp)); - } - return 0; - } - result &= related; - if (sourceProp.flags & 536870912 && !(targetProp.flags & 536870912)) { - if (reportErrors) { - reportError(ts.Diagnostics.Property_0_is_optional_in_type_1_but_required_in_type_2, symbolToString(targetProp), typeToString(source), typeToString(target)); - } - return 0; - } - } - } - } - return result; - } - function propertiesIdenticalTo(source, target) { - var sourceProperties = getPropertiesOfObjectType(source); - var targetProperties = getPropertiesOfObjectType(target); - if (sourceProperties.length !== targetProperties.length) { - return 0; - } - var result = -1; - for (var _i = 0, _n = sourceProperties.length; _i < _n; _i++) { - var sourceProp = sourceProperties[_i]; - var targetProp = getPropertyOfObjectType(target, sourceProp.name); - if (!targetProp) { - return 0; - } - var related = compareProperties(sourceProp, targetProp, isRelatedTo); - if (!related) { - return 0; - } - result &= related; - } - return result; - } - function signaturesRelatedTo(source, target, kind, reportErrors) { - if (relation === identityRelation) { - return signaturesIdenticalTo(source, target, kind); - } - if (target === anyFunctionType || source === anyFunctionType) { - return -1; - } - var sourceSignatures = getSignaturesOfType(source, kind); - var targetSignatures = getSignaturesOfType(target, kind); - var result = -1; - var saveErrorInfo = errorInfo; - outer: for (var _i = 0, _n = targetSignatures.length; _i < _n; _i++) { - var t = targetSignatures[_i]; - if (!t.hasStringLiterals || target.flags & 65536) { - var localErrors = reportErrors; - for (var _a = 0, _b = sourceSignatures.length; _a < _b; _a++) { - var s = sourceSignatures[_a]; - if (!s.hasStringLiterals || source.flags & 65536) { - var related = signatureRelatedTo(s, t, localErrors); - if (related) { - result &= related; - errorInfo = saveErrorInfo; - continue outer; - } - localErrors = false; - } - } - return 0; - } - } - return result; - } - function signatureRelatedTo(source, target, reportErrors) { - if (source === target) { - return -1; - } - if (!target.hasRestParameter && source.minArgumentCount > target.parameters.length) { - return 0; - } - var sourceMax = source.parameters.length; - var targetMax = target.parameters.length; - var checkCount; - if (source.hasRestParameter && target.hasRestParameter) { - checkCount = sourceMax > targetMax ? sourceMax : targetMax; - sourceMax--; - targetMax--; - } - else if (source.hasRestParameter) { - sourceMax--; - checkCount = targetMax; - } - else if (target.hasRestParameter) { - targetMax--; - checkCount = sourceMax; - } - else { - checkCount = sourceMax < targetMax ? sourceMax : targetMax; - } - source = getErasedSignature(source); - target = getErasedSignature(target); - var result = -1; - for (var i = 0; i < checkCount; i++) { - var s_1 = i < sourceMax ? getTypeOfSymbol(source.parameters[i]) : getRestTypeOfSignature(source); - var t_1 = i < targetMax ? getTypeOfSymbol(target.parameters[i]) : getRestTypeOfSignature(target); - var saveErrorInfo = errorInfo; - var related = isRelatedTo(s_1, t_1, reportErrors); - if (!related) { - related = isRelatedTo(t_1, s_1, false); - if (!related) { - if (reportErrors) { - reportError(ts.Diagnostics.Types_of_parameters_0_and_1_are_incompatible, source.parameters[i < sourceMax ? i : sourceMax].name, target.parameters[i < targetMax ? i : targetMax].name); - } - return 0; - } - errorInfo = saveErrorInfo; - } - result &= related; - } - var t = getReturnTypeOfSignature(target); - if (t === voidType) - return result; - var s = getReturnTypeOfSignature(source); - return result & isRelatedTo(s, t, reportErrors); - } - function signaturesIdenticalTo(source, target, kind) { - var sourceSignatures = getSignaturesOfType(source, kind); - var targetSignatures = getSignaturesOfType(target, kind); - if (sourceSignatures.length !== targetSignatures.length) { - return 0; - } - var result = -1; - for (var i = 0, len = sourceSignatures.length; i < len; ++i) { - var related = compareSignatures(sourceSignatures[i], targetSignatures[i], true, isRelatedTo); - if (!related) { - return 0; - } - result &= related; - } - return result; - } - function stringIndexTypesRelatedTo(source, target, reportErrors) { - if (relation === identityRelation) { - return indexTypesIdenticalTo(0, source, target); - } - var targetType = getIndexTypeOfType(target, 0); - if (targetType) { - var sourceType = getIndexTypeOfType(source, 0); - if (!sourceType) { - if (reportErrors) { - reportError(ts.Diagnostics.Index_signature_is_missing_in_type_0, typeToString(source)); - } - return 0; - } - var related = isRelatedTo(sourceType, targetType, reportErrors); - if (!related) { - if (reportErrors) { - reportError(ts.Diagnostics.Index_signatures_are_incompatible); - } - return 0; - } - return related; - } - return -1; - } - function numberIndexTypesRelatedTo(source, target, reportErrors) { - if (relation === identityRelation) { - return indexTypesIdenticalTo(1, source, target); - } - var targetType = getIndexTypeOfType(target, 1); - if (targetType) { - var sourceStringType = getIndexTypeOfType(source, 0); - var sourceNumberType = getIndexTypeOfType(source, 1); - if (!(sourceStringType || sourceNumberType)) { - if (reportErrors) { - reportError(ts.Diagnostics.Index_signature_is_missing_in_type_0, typeToString(source)); - } - return 0; - } - var related; - if (sourceStringType && sourceNumberType) { - related = isRelatedTo(sourceStringType, targetType, false) || isRelatedTo(sourceNumberType, targetType, reportErrors); - } - else { - related = isRelatedTo(sourceStringType || sourceNumberType, targetType, reportErrors); - } - if (!related) { - if (reportErrors) { - reportError(ts.Diagnostics.Index_signatures_are_incompatible); - } - return 0; - } - return related; - } - return -1; - } - function indexTypesIdenticalTo(indexKind, source, target) { - var targetType = getIndexTypeOfType(target, indexKind); - var sourceType = getIndexTypeOfType(source, indexKind); - if (!sourceType && !targetType) { - return -1; - } - if (sourceType && targetType) { - return isRelatedTo(sourceType, targetType); - } - return 0; - } - } - function isPropertyIdenticalTo(sourceProp, targetProp) { - return compareProperties(sourceProp, targetProp, compareTypes) !== 0; - } - function compareProperties(sourceProp, targetProp, compareTypes) { - if (sourceProp === targetProp) { - return -1; - } - var sourcePropAccessibility = getDeclarationFlagsFromSymbol(sourceProp) & (32 | 64); - var targetPropAccessibility = getDeclarationFlagsFromSymbol(targetProp) & (32 | 64); - if (sourcePropAccessibility !== targetPropAccessibility) { - return 0; - } - if (sourcePropAccessibility) { - if (getTargetSymbol(sourceProp) !== getTargetSymbol(targetProp)) { - return 0; - } - } - else { - if ((sourceProp.flags & 536870912) !== (targetProp.flags & 536870912)) { - return 0; - } - } - return compareTypes(getTypeOfSymbol(sourceProp), getTypeOfSymbol(targetProp)); - } - function compareSignatures(source, target, compareReturnTypes, compareTypes) { - if (source === target) { - return -1; - } - if (source.parameters.length !== target.parameters.length || - source.minArgumentCount !== target.minArgumentCount || - source.hasRestParameter !== target.hasRestParameter) { - return 0; - } - var result = -1; - if (source.typeParameters && target.typeParameters) { - if (source.typeParameters.length !== target.typeParameters.length) { - return 0; - } - for (var i = 0, len = source.typeParameters.length; i < len; ++i) { - var related = compareTypes(source.typeParameters[i], target.typeParameters[i]); - if (!related) { - return 0; - } - result &= related; - } - } - else if (source.typeParameters || target.typeParameters) { - return 0; - } - source = getErasedSignature(source); - target = getErasedSignature(target); - for (var i = 0, len = source.parameters.length; i < len; i++) { - var s = source.hasRestParameter && i === len - 1 ? getRestTypeOfSignature(source) : getTypeOfSymbol(source.parameters[i]); - var t = target.hasRestParameter && i === len - 1 ? getRestTypeOfSignature(target) : getTypeOfSymbol(target.parameters[i]); - var related = compareTypes(s, t); - if (!related) { - return 0; - } - result &= related; - } - if (compareReturnTypes) { - result &= compareTypes(getReturnTypeOfSignature(source), getReturnTypeOfSignature(target)); - } - return result; - } - function isSupertypeOfEach(candidate, types) { - for (var _i = 0, _n = types.length; _i < _n; _i++) { - var type = types[_i]; - if (candidate !== type && !isTypeSubtypeOf(type, candidate)) - return false; - } - return true; - } - function getCommonSupertype(types) { - return ts.forEach(types, function (t) { return isSupertypeOfEach(t, types) ? t : undefined; }); - } - function reportNoCommonSupertypeError(types, errorLocation, errorMessageChainHead) { - var bestSupertype; - var bestSupertypeDownfallType; - var bestSupertypeScore = 0; - for (var i = 0; i < types.length; i++) { - var score = 0; - var downfallType = undefined; - for (var j = 0; j < types.length; j++) { - if (isTypeSubtypeOf(types[j], types[i])) { - score++; - } - else if (!downfallType) { - downfallType = types[j]; - } - } - ts.Debug.assert(!!downfallType, "If there is no common supertype, each type should have a downfallType"); - if (score > bestSupertypeScore) { - bestSupertype = types[i]; - bestSupertypeDownfallType = downfallType; - bestSupertypeScore = score; - } - if (bestSupertypeScore === types.length - 1) { - break; - } - } - checkTypeSubtypeOf(bestSupertypeDownfallType, bestSupertype, errorLocation, ts.Diagnostics.Type_argument_candidate_1_is_not_a_valid_type_argument_because_it_is_not_a_supertype_of_candidate_0, errorMessageChainHead); - } - function isArrayType(type) { - return type.flags & 4096 && type.target === globalArrayType; - } - function isArrayLikeType(type) { - return !(type.flags & (32 | 64)) && isTypeAssignableTo(type, anyArrayType); - } - function isTupleLikeType(type) { - return !!getPropertyOfType(type, "0"); - } - function isTupleType(type) { - return (type.flags & 8192) && !!type.elementTypes; - } - function getWidenedTypeOfObjectLiteral(type) { - var properties = getPropertiesOfObjectType(type); - var members = {}; - ts.forEach(properties, function (p) { - var propType = getTypeOfSymbol(p); - var widenedType = getWidenedType(propType); - if (propType !== widenedType) { - var symbol = createSymbol(p.flags | 67108864, p.name); - symbol.declarations = p.declarations; - symbol.parent = p.parent; - symbol.type = widenedType; - symbol.target = p; - if (p.valueDeclaration) - symbol.valueDeclaration = p.valueDeclaration; - p = symbol; - } - members[p.name] = p; - }); - var stringIndexType = getIndexTypeOfType(type, 0); - var numberIndexType = getIndexTypeOfType(type, 1); - if (stringIndexType) - stringIndexType = getWidenedType(stringIndexType); - if (numberIndexType) - numberIndexType = getWidenedType(numberIndexType); - return createAnonymousType(type.symbol, members, emptyArray, emptyArray, stringIndexType, numberIndexType); - } - function getWidenedType(type) { - if (type.flags & 786432) { - if (type.flags & (32 | 64)) { - return anyType; - } - if (type.flags & 131072) { - return getWidenedTypeOfObjectLiteral(type); - } - if (type.flags & 16384) { - return getUnionType(ts.map(type.types, getWidenedType)); - } - if (isArrayType(type)) { - return createArrayType(getWidenedType(type.typeArguments[0])); - } - } - return type; - } - function reportWideningErrorsInType(type) { - if (type.flags & 16384) { - var errorReported = false; - ts.forEach(type.types, function (t) { - if (reportWideningErrorsInType(t)) { - errorReported = true; - } - }); - return errorReported; - } - if (isArrayType(type)) { - return reportWideningErrorsInType(type.typeArguments[0]); - } - if (type.flags & 131072) { - var errorReported = false; - ts.forEach(getPropertiesOfObjectType(type), function (p) { - var t = getTypeOfSymbol(p); - if (t.flags & 262144) { - if (!reportWideningErrorsInType(t)) { - error(p.valueDeclaration, ts.Diagnostics.Object_literal_s_property_0_implicitly_has_an_1_type, p.name, typeToString(getWidenedType(t))); - } - errorReported = true; - } - }); - return errorReported; - } - return false; - } - function reportImplicitAnyError(declaration, type) { - var typeAsString = typeToString(getWidenedType(type)); - var diagnostic; - switch (declaration.kind) { - case 132: - case 131: - diagnostic = ts.Diagnostics.Member_0_implicitly_has_an_1_type; - break; - case 129: - diagnostic = declaration.dotDotDotToken ? - ts.Diagnostics.Rest_parameter_0_implicitly_has_an_any_type : - ts.Diagnostics.Parameter_0_implicitly_has_an_1_type; - break; - case 197: - case 134: - case 133: - case 136: - case 137: - case 162: - case 163: - if (!declaration.name) { - error(declaration, ts.Diagnostics.Function_expression_which_lacks_return_type_annotation_implicitly_has_an_0_return_type, typeAsString); - return; - } - diagnostic = ts.Diagnostics._0_which_lacks_return_type_annotation_implicitly_has_an_1_return_type; - break; - default: - diagnostic = ts.Diagnostics.Variable_0_implicitly_has_an_1_type; - } - error(declaration, diagnostic, ts.declarationNameToString(declaration.name), typeAsString); - } - function reportErrorsFromWidening(declaration, type) { - if (produceDiagnostics && compilerOptions.noImplicitAny && type.flags & 262144) { - if (!reportWideningErrorsInType(type)) { - reportImplicitAnyError(declaration, type); - } - } - } - function forEachMatchingParameterType(source, target, callback) { - var sourceMax = source.parameters.length; - var targetMax = target.parameters.length; - var count; - if (source.hasRestParameter && target.hasRestParameter) { - count = sourceMax > targetMax ? sourceMax : targetMax; - sourceMax--; - targetMax--; - } - else if (source.hasRestParameter) { - sourceMax--; - count = targetMax; - } - else if (target.hasRestParameter) { - targetMax--; - count = sourceMax; - } - else { - count = sourceMax < targetMax ? sourceMax : targetMax; - } - for (var i = 0; i < count; i++) { - var s = i < sourceMax ? getTypeOfSymbol(source.parameters[i]) : getRestTypeOfSignature(source); - var t = i < targetMax ? getTypeOfSymbol(target.parameters[i]) : getRestTypeOfSignature(target); - callback(s, t); - } - } - function createInferenceContext(typeParameters, inferUnionTypes) { - var inferences = []; - for (var _i = 0, _n = typeParameters.length; _i < _n; _i++) { - var unused = typeParameters[_i]; - inferences.push({ primary: undefined, secondary: undefined, isFixed: false }); - } - return { - typeParameters: typeParameters, - inferUnionTypes: inferUnionTypes, - inferences: inferences, - inferredTypes: new Array(typeParameters.length) - }; - } - function inferTypes(context, source, target) { - var sourceStack; - var targetStack; - var depth = 0; - var inferiority = 0; - inferFromTypes(source, target); - function isInProcess(source, target) { - for (var i = 0; i < depth; i++) { - if (source === sourceStack[i] && target === targetStack[i]) { - return true; - } - } - return false; - } - function isWithinDepthLimit(type, stack) { - if (depth >= 5) { - var target_2 = type.target; - var count = 0; - for (var i = 0; i < depth; i++) { - var t = stack[i]; - if (t.flags & 4096 && t.target === target_2) { - count++; - } - } - return count < 5; - } - return true; - } - function inferFromTypes(source, target) { - if (source === anyFunctionType) { - return; - } - if (target.flags & 512) { - var typeParameters = context.typeParameters; - for (var i = 0; i < typeParameters.length; i++) { - if (target === typeParameters[i]) { - var inferences = context.inferences[i]; - if (!inferences.isFixed) { - var candidates = inferiority ? - inferences.secondary || (inferences.secondary = []) : - inferences.primary || (inferences.primary = []); - if (!ts.contains(candidates, source)) { - candidates.push(source); - } - } - return; - } - } - } - else if (source.flags & 4096 && target.flags & 4096 && source.target === target.target) { - var sourceTypes = source.typeArguments; - var targetTypes = target.typeArguments; - for (var i = 0; i < sourceTypes.length; i++) { - inferFromTypes(sourceTypes[i], targetTypes[i]); - } - } - else if (target.flags & 16384) { - var targetTypes = target.types; - var typeParameterCount = 0; - var typeParameter; - for (var _i = 0, _n = targetTypes.length; _i < _n; _i++) { - var t = targetTypes[_i]; - if (t.flags & 512 && ts.contains(context.typeParameters, t)) { - typeParameter = t; - typeParameterCount++; - } - else { - inferFromTypes(source, t); - } - } - if (typeParameterCount === 1) { - inferiority++; - inferFromTypes(source, typeParameter); - inferiority--; - } - } - else if (source.flags & 16384) { - var sourceTypes = source.types; - for (var _a = 0, _b = sourceTypes.length; _a < _b; _a++) { - var sourceType = sourceTypes[_a]; - inferFromTypes(sourceType, target); - } - } - else if (source.flags & 48128 && (target.flags & (4096 | 8192) || - (target.flags & 32768) && target.symbol && target.symbol.flags & (8192 | 2048))) { - if (!isInProcess(source, target) && isWithinDepthLimit(source, sourceStack) && isWithinDepthLimit(target, targetStack)) { - if (depth === 0) { - sourceStack = []; - targetStack = []; - } - sourceStack[depth] = source; - targetStack[depth] = target; - depth++; - inferFromProperties(source, target); - inferFromSignatures(source, target, 0); - inferFromSignatures(source, target, 1); - inferFromIndexTypes(source, target, 0, 0); - inferFromIndexTypes(source, target, 1, 1); - inferFromIndexTypes(source, target, 0, 1); - depth--; - } - } - } - function inferFromProperties(source, target) { - var properties = getPropertiesOfObjectType(target); - for (var _i = 0, _n = properties.length; _i < _n; _i++) { - var targetProp = properties[_i]; - var sourceProp = getPropertyOfObjectType(source, targetProp.name); - if (sourceProp) { - inferFromTypes(getTypeOfSymbol(sourceProp), getTypeOfSymbol(targetProp)); - } - } - } - function inferFromSignatures(source, target, kind) { - var sourceSignatures = getSignaturesOfType(source, kind); - var targetSignatures = getSignaturesOfType(target, kind); - var sourceLen = sourceSignatures.length; - var targetLen = targetSignatures.length; - var len = sourceLen < targetLen ? sourceLen : targetLen; - for (var i = 0; i < len; i++) { - inferFromSignature(getErasedSignature(sourceSignatures[sourceLen - len + i]), getErasedSignature(targetSignatures[targetLen - len + i])); - } - } - function inferFromSignature(source, target) { - forEachMatchingParameterType(source, target, inferFromTypes); - inferFromTypes(getReturnTypeOfSignature(source), getReturnTypeOfSignature(target)); - } - function inferFromIndexTypes(source, target, sourceKind, targetKind) { - var targetIndexType = getIndexTypeOfType(target, targetKind); - if (targetIndexType) { - var sourceIndexType = getIndexTypeOfType(source, sourceKind); - if (sourceIndexType) { - inferFromTypes(sourceIndexType, targetIndexType); - } - } - } - } - function getInferenceCandidates(context, index) { - var inferences = context.inferences[index]; - return inferences.primary || inferences.secondary || emptyArray; - } - function getInferredType(context, index) { - var inferredType = context.inferredTypes[index]; - var inferenceSucceeded; - if (!inferredType) { - var inferences = getInferenceCandidates(context, index); - if (inferences.length) { - var unionOrSuperType = context.inferUnionTypes ? getUnionType(inferences) : getCommonSupertype(inferences); - inferredType = unionOrSuperType ? getWidenedType(unionOrSuperType) : unknownType; - inferenceSucceeded = !!unionOrSuperType; - } - else { - inferredType = emptyObjectType; - inferenceSucceeded = true; - } - if (inferenceSucceeded) { - var constraint = getConstraintOfTypeParameter(context.typeParameters[index]); - inferredType = constraint && !isTypeAssignableTo(inferredType, constraint) ? constraint : inferredType; - } - else if (context.failedTypeParameterIndex === undefined || context.failedTypeParameterIndex > index) { - context.failedTypeParameterIndex = index; - } - context.inferredTypes[index] = inferredType; - } - return inferredType; - } - function getInferredTypes(context) { - for (var i = 0; i < context.inferredTypes.length; i++) { - getInferredType(context, i); - } - return context.inferredTypes; - } - function hasAncestor(node, kind) { - return ts.getAncestor(node, kind) !== undefined; - } - function getResolvedSymbol(node) { - var links = getNodeLinks(node); - if (!links.resolvedSymbol) { - links.resolvedSymbol = (ts.getFullWidth(node) > 0 && resolveName(node, node.text, 107455 | 1048576, ts.Diagnostics.Cannot_find_name_0, node)) || unknownSymbol; - } - return links.resolvedSymbol; - } - function isInTypeQuery(node) { - while (node) { - switch (node.kind) { - case 144: - return true; - case 65: - case 126: - node = node.parent; - continue; - default: - return false; - } - } - ts.Debug.fail("should not get here"); - } - function removeTypesFromUnionType(type, typeKind, isOfTypeKind, allowEmptyUnionResult) { - if (type.flags & 16384) { - var types = type.types; - if (ts.forEach(types, function (t) { return !!(t.flags & typeKind) === isOfTypeKind; })) { - var narrowedType = getUnionType(ts.filter(types, function (t) { return !(t.flags & typeKind) === isOfTypeKind; })); - if (allowEmptyUnionResult || narrowedType !== emptyObjectType) { - return narrowedType; - } - } - } - else if (allowEmptyUnionResult && !!(type.flags & typeKind) === isOfTypeKind) { - return getUnionType(emptyArray); - } - return type; - } - function hasInitializer(node) { - return !!(node.initializer || ts.isBindingPattern(node.parent) && hasInitializer(node.parent.parent)); - } - function isVariableAssignedWithin(symbol, node) { - var links = getNodeLinks(node); - if (links.assignmentChecks) { - var cachedResult = links.assignmentChecks[symbol.id]; - if (cachedResult !== undefined) { - return cachedResult; - } - } - else { - links.assignmentChecks = {}; - } - return links.assignmentChecks[symbol.id] = isAssignedIn(node); - function isAssignedInBinaryExpression(node) { - if (node.operatorToken.kind >= 53 && node.operatorToken.kind <= 64) { - var n = node.left; - while (n.kind === 161) { - n = n.expression; - } - if (n.kind === 65 && getResolvedSymbol(n) === symbol) { - return true; - } - } - return ts.forEachChild(node, isAssignedIn); - } - function isAssignedInVariableDeclaration(node) { - if (!ts.isBindingPattern(node.name) && getSymbolOfNode(node) === symbol && hasInitializer(node)) { - return true; - } - return ts.forEachChild(node, isAssignedIn); - } - function isAssignedIn(node) { - switch (node.kind) { - case 169: - return isAssignedInBinaryExpression(node); - case 195: - case 152: - return isAssignedInVariableDeclaration(node); - case 150: - case 151: - case 153: - case 154: - case 155: - case 156: - case 157: - case 158: - case 160: - case 161: - case 167: - case 164: - case 165: - case 166: - case 168: - case 170: - case 173: - case 176: - case 177: - case 179: - case 180: - case 181: - case 182: - case 183: - case 184: - case 185: - case 188: - case 189: - case 190: - case 217: - case 218: - case 191: - case 192: - case 193: - case 220: - return ts.forEachChild(node, isAssignedIn); - } - return false; - } - } - function resolveLocation(node) { - var containerNodes = []; - for (var parent_3 = node.parent; parent_3; parent_3 = parent_3.parent) { - if ((ts.isExpression(parent_3) || ts.isObjectLiteralMethod(node)) && - isContextSensitive(parent_3)) { - containerNodes.unshift(parent_3); - } - } - ts.forEach(containerNodes, function (node) { getTypeOfNode(node); }); - } - function getSymbolAtLocation(node) { - resolveLocation(node); - return getSymbolInfo(node); - } - function getTypeAtLocation(node) { - resolveLocation(node); - return getTypeOfNode(node); - } - function getTypeOfSymbolAtLocation(symbol, node) { - resolveLocation(node); - return getNarrowedTypeOfSymbol(symbol, node); - } - function getNarrowedTypeOfSymbol(symbol, node) { - var type = getTypeOfSymbol(symbol); - if (node && symbol.flags & 3 && type.flags & (1 | 48128 | 16384 | 512)) { - loop: while (node.parent) { - var child = node; - node = node.parent; - var narrowedType = type; - switch (node.kind) { - case 180: - if (child !== node.expression) { - narrowedType = narrowType(type, node.expression, child === node.thenStatement); - } - break; - case 170: - if (child !== node.condition) { - narrowedType = narrowType(type, node.condition, child === node.whenTrue); - } - break; - case 169: - if (child === node.right) { - if (node.operatorToken.kind === 48) { - narrowedType = narrowType(type, node.left, true); - } - else if (node.operatorToken.kind === 49) { - narrowedType = narrowType(type, node.left, false); - } - } - break; - case 224: - case 202: - case 197: - case 134: - case 133: - case 136: - case 137: - case 135: - break loop; - } - if (narrowedType !== type) { - if (isVariableAssignedWithin(symbol, node)) { - break; - } - type = narrowedType; - } - } - } - return type; - function narrowTypeByEquality(type, expr, assumeTrue) { - if (expr.left.kind !== 165 || expr.right.kind !== 8) { - return type; - } - var left = expr.left; - var right = expr.right; - if (left.expression.kind !== 65 || getResolvedSymbol(left.expression) !== symbol) { - return type; - } - var typeInfo = primitiveTypeInfo[right.text]; - if (expr.operatorToken.kind === 31) { - assumeTrue = !assumeTrue; - } - if (assumeTrue) { - if (!typeInfo) { - return removeTypesFromUnionType(type, 258 | 132 | 8 | 1048576, true, false); - } - if (isTypeSubtypeOf(typeInfo.type, type)) { - return typeInfo.type; - } - return removeTypesFromUnionType(type, typeInfo.flags, false, false); - } - else { - if (typeInfo) { - return removeTypesFromUnionType(type, typeInfo.flags, true, false); - } - return type; - } - } - function narrowTypeByAnd(type, expr, assumeTrue) { - if (assumeTrue) { - return narrowType(narrowType(type, expr.left, true), expr.right, true); - } - else { - return getUnionType([ - narrowType(type, expr.left, false), - narrowType(narrowType(type, expr.left, true), expr.right, false) - ]); - } - } - function narrowTypeByOr(type, expr, assumeTrue) { - if (assumeTrue) { - return getUnionType([ - narrowType(type, expr.left, true), - narrowType(narrowType(type, expr.left, false), expr.right, true) - ]); - } - else { - return narrowType(narrowType(type, expr.left, false), expr.right, false); - } - } - function narrowTypeByInstanceof(type, expr, assumeTrue) { - if (type.flags & 1 || !assumeTrue || expr.left.kind !== 65 || getResolvedSymbol(expr.left) !== symbol) { - return type; - } - var rightType = checkExpression(expr.right); - if (!isTypeSubtypeOf(rightType, globalFunctionType)) { - return type; - } - var prototypeProperty = getPropertyOfType(rightType, "prototype"); - if (!prototypeProperty) { - return type; - } - var targetType = getTypeOfSymbol(prototypeProperty); - if (isTypeSubtypeOf(targetType, type)) { - return targetType; - } - if (type.flags & 16384) { - return getUnionType(ts.filter(type.types, function (t) { return isTypeSubtypeOf(t, targetType); })); - } - return type; - } - function narrowType(type, expr, assumeTrue) { - switch (expr.kind) { - case 161: - return narrowType(type, expr.expression, assumeTrue); - case 169: - var operator = expr.operatorToken.kind; - if (operator === 30 || operator === 31) { - return narrowTypeByEquality(type, expr, assumeTrue); - } - else if (operator === 48) { - return narrowTypeByAnd(type, expr, assumeTrue); - } - else if (operator === 49) { - return narrowTypeByOr(type, expr, assumeTrue); - } - else if (operator === 87) { - return narrowTypeByInstanceof(type, expr, assumeTrue); - } - break; - case 167: - if (expr.operator === 46) { - return narrowType(type, expr.operand, !assumeTrue); - } - break; - } - return type; - } - } - function checkIdentifier(node) { - var symbol = getResolvedSymbol(node); - if (symbol === argumentsSymbol && ts.getContainingFunction(node).kind === 163) { - error(node, ts.Diagnostics.The_arguments_object_cannot_be_referenced_in_an_arrow_function_Consider_using_a_standard_function_expression); - } - if (symbol.flags & 8388608 && !isInTypeQuery(node) && !isConstEnumOrConstEnumOnlyModule(resolveAlias(symbol))) { - markAliasSymbolAsReferenced(symbol); - } - checkCollisionWithCapturedSuperVariable(node, node); - checkCollisionWithCapturedThisVariable(node, node); - checkBlockScopedBindingCapturedInLoop(node, symbol); - return getNarrowedTypeOfSymbol(getExportSymbolOfValueSymbolIfExported(symbol), node); - } - function isInsideFunction(node, threshold) { - var current = node; - while (current && current !== threshold) { - if (ts.isFunctionLike(current)) { - return true; - } - current = current.parent; - } - return false; - } - function checkBlockScopedBindingCapturedInLoop(node, symbol) { - if (languageVersion >= 2 || - (symbol.flags & 2) === 0 || - symbol.valueDeclaration.parent.kind === 220) { - return; - } - var container = symbol.valueDeclaration; - while (container.kind !== 196) { - container = container.parent; - } - container = container.parent; - if (container.kind === 177) { - container = container.parent; - } - var inFunction = isInsideFunction(node.parent, container); - var current = container; - while (current && !ts.nodeStartsNewLexicalEnvironment(current)) { - if (isIterationStatement(current, false)) { - if (inFunction) { - grammarErrorOnFirstToken(current, ts.Diagnostics.Loop_contains_block_scoped_variable_0_referenced_by_a_function_in_the_loop_This_is_only_supported_in_ECMAScript_6_or_higher, ts.declarationNameToString(node)); - } - getNodeLinks(symbol.valueDeclaration).flags |= 256; - break; - } - current = current.parent; - } - } - function captureLexicalThis(node, container) { - var classNode = container.parent && container.parent.kind === 198 ? container.parent : undefined; - getNodeLinks(node).flags |= 2; - if (container.kind === 132 || container.kind === 135) { - getNodeLinks(classNode).flags |= 4; - } - else { - getNodeLinks(container).flags |= 4; - } - } - function checkThisExpression(node) { - var container = ts.getThisContainer(node, true); - var needToCaptureLexicalThis = false; - if (container.kind === 163) { - container = ts.getThisContainer(container, false); - needToCaptureLexicalThis = (languageVersion < 2); - } - switch (container.kind) { - case 202: - error(node, ts.Diagnostics.this_cannot_be_referenced_in_a_module_body); - break; - case 201: - error(node, ts.Diagnostics.this_cannot_be_referenced_in_current_location); - break; - case 135: - if (isInConstructorArgumentInitializer(node, container)) { - error(node, ts.Diagnostics.this_cannot_be_referenced_in_constructor_arguments); - } - break; - case 132: - case 131: - if (container.flags & 128) { - error(node, ts.Diagnostics.this_cannot_be_referenced_in_a_static_property_initializer); - } - break; - case 127: - error(node, ts.Diagnostics.this_cannot_be_referenced_in_a_computed_property_name); - break; - } - if (needToCaptureLexicalThis) { - captureLexicalThis(node, container); - } - var classNode = container.parent && container.parent.kind === 198 ? container.parent : undefined; - if (classNode) { - var symbol = getSymbolOfNode(classNode); - return container.flags & 128 ? getTypeOfSymbol(symbol) : getDeclaredTypeOfSymbol(symbol); - } - return anyType; - } - function isInConstructorArgumentInitializer(node, constructorDecl) { - for (var n = node; n && n !== constructorDecl; n = n.parent) { - if (n.kind === 129) { - return true; - } - } - return false; - } - function checkSuperExpression(node) { - var isCallExpression = node.parent.kind === 157 && node.parent.expression === node; - var enclosingClass = ts.getAncestor(node, 198); - var baseClass; - if (enclosingClass && ts.getClassBaseTypeNode(enclosingClass)) { - var classType = getDeclaredTypeOfSymbol(getSymbolOfNode(enclosingClass)); - baseClass = classType.baseTypes.length && classType.baseTypes[0]; - } - if (!baseClass) { - error(node, ts.Diagnostics.super_can_only_be_referenced_in_a_derived_class); - return unknownType; - } - var container = ts.getSuperContainer(node, true); - if (container) { - var canUseSuperExpression = false; - var needToCaptureLexicalThis; - if (isCallExpression) { - canUseSuperExpression = container.kind === 135; - } - else { - needToCaptureLexicalThis = false; - while (container && container.kind === 163) { - container = ts.getSuperContainer(container, true); - needToCaptureLexicalThis = true; - } - if (container && container.parent && container.parent.kind === 198) { - if (container.flags & 128) { - canUseSuperExpression = - container.kind === 134 || - container.kind === 133 || - container.kind === 136 || - container.kind === 137; - } - else { - canUseSuperExpression = - container.kind === 134 || - container.kind === 133 || - container.kind === 136 || - container.kind === 137 || - container.kind === 132 || - container.kind === 131 || - container.kind === 135; - } - } - } - if (canUseSuperExpression) { - var returnType; - if ((container.flags & 128) || isCallExpression) { - getNodeLinks(node).flags |= 32; - returnType = getTypeOfSymbol(baseClass.symbol); - } - else { - getNodeLinks(node).flags |= 16; - returnType = baseClass; - } - if (container.kind === 135 && isInConstructorArgumentInitializer(node, container)) { - error(node, ts.Diagnostics.super_cannot_be_referenced_in_constructor_arguments); - returnType = unknownType; - } - if (!isCallExpression && needToCaptureLexicalThis) { - captureLexicalThis(node.parent, container); - } - return returnType; - } - } - if (container.kind === 127) { - error(node, ts.Diagnostics.super_cannot_be_referenced_in_a_computed_property_name); - } - else if (isCallExpression) { - error(node, ts.Diagnostics.Super_calls_are_not_permitted_outside_constructors_or_in_nested_functions_inside_constructors); - } - else { - error(node, ts.Diagnostics.super_property_access_is_permitted_only_in_a_constructor_member_function_or_member_accessor_of_a_derived_class); - } - return unknownType; - } - function getContextuallyTypedParameterType(parameter) { - if (isFunctionExpressionOrArrowFunction(parameter.parent)) { - var func = parameter.parent; - if (isContextSensitive(func)) { - var contextualSignature = getContextualSignature(func); - if (contextualSignature) { - var funcHasRestParameters = ts.hasRestParameters(func); - var len = func.parameters.length - (funcHasRestParameters ? 1 : 0); - var indexOfParameter = ts.indexOf(func.parameters, parameter); - if (indexOfParameter < len) { - return getTypeAtPosition(contextualSignature, indexOfParameter); - } - if (indexOfParameter === (func.parameters.length - 1) && - funcHasRestParameters && contextualSignature.hasRestParameter && func.parameters.length >= contextualSignature.parameters.length) { - return getTypeOfSymbol(contextualSignature.parameters[contextualSignature.parameters.length - 1]); - } - } - } - } - return undefined; - } - function getContextualTypeForInitializerExpression(node) { - var declaration = node.parent; - if (node === declaration.initializer) { - if (declaration.type) { - return getTypeFromTypeNode(declaration.type); - } - if (declaration.kind === 129) { - var type = getContextuallyTypedParameterType(declaration); - if (type) { - return type; - } - } - if (ts.isBindingPattern(declaration.name)) { - return getTypeFromBindingPattern(declaration.name); - } - } - return undefined; - } - function getContextualTypeForReturnExpression(node) { - var func = ts.getContainingFunction(node); - if (func) { - if (func.type || func.kind === 135 || func.kind === 136 && getSetAccessorTypeAnnotationNode(ts.getDeclarationOfKind(func.symbol, 137))) { - return getReturnTypeOfSignature(getSignatureFromDeclaration(func)); - } - var signature = getContextualSignatureForFunctionLikeDeclaration(func); - if (signature) { - return getReturnTypeOfSignature(signature); - } - } - return undefined; - } - function getContextualTypeForArgument(callTarget, arg) { - var args = getEffectiveCallArguments(callTarget); - var argIndex = ts.indexOf(args, arg); - if (argIndex >= 0) { - var signature = getResolvedSignature(callTarget); - return getTypeAtPosition(signature, argIndex); - } - return undefined; - } - function getContextualTypeForSubstitutionExpression(template, substitutionExpression) { - if (template.parent.kind === 159) { - return getContextualTypeForArgument(template.parent, substitutionExpression); - } - return undefined; - } - function getContextualTypeForBinaryOperand(node) { - var binaryExpression = node.parent; - var operator = binaryExpression.operatorToken.kind; - if (operator >= 53 && operator <= 64) { - if (node === binaryExpression.right) { - return checkExpression(binaryExpression.left); - } - } - else if (operator === 49) { - var type = getContextualType(binaryExpression); - if (!type && node === binaryExpression.right) { - type = checkExpression(binaryExpression.left); - } - return type; - } - return undefined; - } - function applyToContextualType(type, mapper) { - if (!(type.flags & 16384)) { - return mapper(type); - } - var types = type.types; - var mappedType; - var mappedTypes; - for (var _i = 0, _n = types.length; _i < _n; _i++) { - var current = types[_i]; - var t = mapper(current); - if (t) { - if (!mappedType) { - mappedType = t; - } - else if (!mappedTypes) { - mappedTypes = [mappedType, t]; - } - else { - mappedTypes.push(t); - } - } - } - return mappedTypes ? getUnionType(mappedTypes) : mappedType; - } - function getTypeOfPropertyOfContextualType(type, name) { - return applyToContextualType(type, function (t) { - var prop = getPropertyOfObjectType(t, name); - return prop ? getTypeOfSymbol(prop) : undefined; - }); - } - function getIndexTypeOfContextualType(type, kind) { - return applyToContextualType(type, function (t) { return getIndexTypeOfObjectOrUnionType(t, kind); }); - } - function contextualTypeIsTupleLikeType(type) { - return !!(type.flags & 16384 ? ts.forEach(type.types, isTupleLikeType) : isTupleLikeType(type)); - } - function contextualTypeHasIndexSignature(type, kind) { - return !!(type.flags & 16384 ? ts.forEach(type.types, function (t) { return getIndexTypeOfObjectOrUnionType(t, kind); }) : getIndexTypeOfObjectOrUnionType(type, kind)); - } - function getContextualTypeForObjectLiteralMethod(node) { - ts.Debug.assert(ts.isObjectLiteralMethod(node)); - if (isInsideWithStatementBody(node)) { - return undefined; - } - return getContextualTypeForObjectLiteralElement(node); - } - function getContextualTypeForObjectLiteralElement(element) { - var objectLiteral = element.parent; - var type = getContextualType(objectLiteral); - if (type) { - if (!ts.hasDynamicName(element)) { - var symbolName = getSymbolOfNode(element).name; - var propertyType = getTypeOfPropertyOfContextualType(type, symbolName); - if (propertyType) { - return propertyType; - } - } - return isNumericName(element.name) && getIndexTypeOfContextualType(type, 1) || - getIndexTypeOfContextualType(type, 0); - } - return undefined; - } - function getContextualTypeForElementExpression(node) { - var arrayLiteral = node.parent; - var type = getContextualType(arrayLiteral); - if (type) { - var index = ts.indexOf(arrayLiteral.elements, node); - return getTypeOfPropertyOfContextualType(type, "" + index) - || getIndexTypeOfContextualType(type, 1) - || (languageVersion >= 2 ? checkIteratedType(type, undefined) : undefined); - } - return undefined; - } - function getContextualTypeForConditionalOperand(node) { - var conditional = node.parent; - return node === conditional.whenTrue || node === conditional.whenFalse ? getContextualType(conditional) : undefined; - } - function getContextualType(node) { - if (isInsideWithStatementBody(node)) { - return undefined; - } - if (node.contextualType) { - return node.contextualType; - } - var parent = node.parent; - switch (parent.kind) { - case 195: - case 129: - case 132: - case 131: - case 152: - return getContextualTypeForInitializerExpression(node); - case 163: - case 188: - return getContextualTypeForReturnExpression(node); - case 157: - case 158: - return getContextualTypeForArgument(parent, node); - case 160: - return getTypeFromTypeNode(parent.type); - case 169: - return getContextualTypeForBinaryOperand(node); - case 221: - return getContextualTypeForObjectLiteralElement(parent); - case 153: - return getContextualTypeForElementExpression(node); - case 170: - return getContextualTypeForConditionalOperand(node); - case 175: - ts.Debug.assert(parent.parent.kind === 171); - return getContextualTypeForSubstitutionExpression(parent.parent, node); - case 161: - return getContextualType(parent); - } - return undefined; - } - function getNonGenericSignature(type) { - var signatures = getSignaturesOfObjectOrUnionType(type, 0); - if (signatures.length === 1) { - var signature = signatures[0]; - if (!signature.typeParameters) { - return signature; - } - } - } - function isFunctionExpressionOrArrowFunction(node) { - return node.kind === 162 || node.kind === 163; - } - function getContextualSignatureForFunctionLikeDeclaration(node) { - return isFunctionExpressionOrArrowFunction(node) ? getContextualSignature(node) : undefined; - } - function getContextualSignature(node) { - ts.Debug.assert(node.kind !== 134 || ts.isObjectLiteralMethod(node)); - var type = ts.isObjectLiteralMethod(node) - ? getContextualTypeForObjectLiteralMethod(node) - : getContextualType(node); - if (!type) { - return undefined; - } - if (!(type.flags & 16384)) { - return getNonGenericSignature(type); - } - var signatureList; - var types = type.types; - for (var _i = 0, _n = types.length; _i < _n; _i++) { - var current = types[_i]; - if (signatureList && - getSignaturesOfObjectOrUnionType(current, 0).length > 1) { - return undefined; - } - var signature = getNonGenericSignature(current); - if (signature) { - if (!signatureList) { - signatureList = [signature]; - } - else if (!compareSignatures(signatureList[0], signature, false, compareTypes)) { - return undefined; - } - else { - signatureList.push(signature); - } - } - } - var result; - if (signatureList) { - result = cloneSignature(signatureList[0]); - result.resolvedReturnType = undefined; - result.unionSignatures = signatureList; - } - return result; - } - function isInferentialContext(mapper) { - return mapper && mapper !== identityMapper; - } - function isAssignmentTarget(node) { - var parent = node.parent; - if (parent.kind === 169 && parent.operatorToken.kind === 53 && parent.left === node) { - return true; - } - if (parent.kind === 221) { - return isAssignmentTarget(parent.parent); - } - if (parent.kind === 153) { - return isAssignmentTarget(parent); - } - return false; - } - function checkSpreadElementExpression(node, contextualMapper) { - var type = checkExpressionCached(node.expression, contextualMapper); - if (!isArrayLikeType(type)) { - error(node.expression, ts.Diagnostics.Type_0_is_not_an_array_type, typeToString(type)); - return unknownType; - } - return type; - } - function checkArrayLiteral(node, contextualMapper) { - var elements = node.elements; - if (!elements.length) { - return createArrayType(undefinedType); - } - var hasSpreadElement = false; - var elementTypes = []; - ts.forEach(elements, function (e) { - var type = checkExpression(e, contextualMapper); - if (e.kind === 173) { - elementTypes.push(getIndexTypeOfType(type, 1) || anyType); - hasSpreadElement = true; - } - else { - elementTypes.push(type); - } - }); - if (!hasSpreadElement) { - var contextualType = getContextualType(node); - if (contextualType && contextualTypeIsTupleLikeType(contextualType) || isAssignmentTarget(node)) { - return createTupleType(elementTypes); - } - } - return createArrayType(getUnionType(elementTypes)); - } - function isNumericName(name) { - return name.kind === 127 ? isNumericComputedName(name) : isNumericLiteralName(name.text); - } - function isNumericComputedName(name) { - return allConstituentTypesHaveKind(checkComputedPropertyName(name), 1 | 132); - } - function isNumericLiteralName(name) { - return (+name).toString() === name; - } - function checkComputedPropertyName(node) { - var links = getNodeLinks(node.expression); - if (!links.resolvedType) { - links.resolvedType = checkExpression(node.expression); - if (!allConstituentTypesHaveKind(links.resolvedType, 1 | 132 | 258 | 1048576)) { - error(node, ts.Diagnostics.A_computed_property_name_must_be_of_type_string_number_symbol_or_any); - } - else { - checkThatExpressionIsProperSymbolReference(node.expression, links.resolvedType, true); - } - } - return links.resolvedType; - } - function checkObjectLiteral(node, contextualMapper) { - checkGrammarObjectLiteralExpression(node); - var propertiesTable = {}; - var propertiesArray = []; - var contextualType = getContextualType(node); - var typeFlags; - for (var _i = 0, _a = node.properties, _n = _a.length; _i < _n; _i++) { - var memberDecl = _a[_i]; - var member = memberDecl.symbol; - if (memberDecl.kind === 221 || - memberDecl.kind === 222 || - ts.isObjectLiteralMethod(memberDecl)) { - var type = void 0; - if (memberDecl.kind === 221) { - type = checkPropertyAssignment(memberDecl, contextualMapper); - } - else if (memberDecl.kind === 134) { - type = checkObjectLiteralMethod(memberDecl, contextualMapper); - } - else { - ts.Debug.assert(memberDecl.kind === 222); - type = memberDecl.name.kind === 127 - ? unknownType - : checkExpression(memberDecl.name, contextualMapper); - } - typeFlags |= type.flags; - var prop = createSymbol(4 | 67108864 | member.flags, member.name); - prop.declarations = member.declarations; - prop.parent = member.parent; - if (member.valueDeclaration) { - prop.valueDeclaration = member.valueDeclaration; - } - prop.type = type; - prop.target = member; - member = prop; - } - else { - ts.Debug.assert(memberDecl.kind === 136 || memberDecl.kind === 137); - checkAccessorDeclaration(memberDecl); - } - if (!ts.hasDynamicName(memberDecl)) { - propertiesTable[member.name] = member; - } - propertiesArray.push(member); - } - var stringIndexType = getIndexType(0); - var numberIndexType = getIndexType(1); - var result = createAnonymousType(node.symbol, propertiesTable, emptyArray, emptyArray, stringIndexType, numberIndexType); - result.flags |= 131072 | 524288 | (typeFlags & 262144); - return result; - function getIndexType(kind) { - if (contextualType && contextualTypeHasIndexSignature(contextualType, kind)) { - var propTypes = []; - for (var i = 0; i < propertiesArray.length; i++) { - var propertyDecl = node.properties[i]; - if (kind === 0 || isNumericName(propertyDecl.name)) { - var type = getTypeOfSymbol(propertiesArray[i]); - if (!ts.contains(propTypes, type)) { - propTypes.push(type); - } - } - } - var result_1 = propTypes.length ? getUnionType(propTypes) : undefinedType; - typeFlags |= result_1.flags; - return result_1; - } - return undefined; - } - } - function getDeclarationKindFromSymbol(s) { - return s.valueDeclaration ? s.valueDeclaration.kind : 132; - } - function getDeclarationFlagsFromSymbol(s) { - return s.valueDeclaration ? ts.getCombinedNodeFlags(s.valueDeclaration) : s.flags & 134217728 ? 16 | 128 : 0; - } - function checkClassPropertyAccess(node, left, type, prop) { - var flags = getDeclarationFlagsFromSymbol(prop); - if (!(flags & (32 | 64))) { - return; - } - var enclosingClassDeclaration = ts.getAncestor(node, 198); - var enclosingClass = enclosingClassDeclaration ? getDeclaredTypeOfSymbol(getSymbolOfNode(enclosingClassDeclaration)) : undefined; - var declaringClass = getDeclaredTypeOfSymbol(prop.parent); - if (flags & 32) { - if (declaringClass !== enclosingClass) { - error(node, ts.Diagnostics.Property_0_is_private_and_only_accessible_within_class_1, symbolToString(prop), typeToString(declaringClass)); - } - return; - } - if (left.kind === 91) { - return; - } - if (!enclosingClass || !hasBaseType(enclosingClass, declaringClass)) { - error(node, ts.Diagnostics.Property_0_is_protected_and_only_accessible_within_class_1_and_its_subclasses, symbolToString(prop), typeToString(declaringClass)); - return; - } - if (flags & 128) { - return; - } - if (!(getTargetType(type).flags & (1024 | 2048) && hasBaseType(type, enclosingClass))) { - error(node, ts.Diagnostics.Property_0_is_protected_and_only_accessible_through_an_instance_of_class_1, symbolToString(prop), typeToString(enclosingClass)); - } - } - function checkPropertyAccessExpression(node) { - return checkPropertyAccessExpressionOrQualifiedName(node, node.expression, node.name); - } - function checkQualifiedName(node) { - return checkPropertyAccessExpressionOrQualifiedName(node, node.left, node.right); - } - function checkPropertyAccessExpressionOrQualifiedName(node, left, right) { - var type = checkExpressionOrQualifiedName(left); - if (type === unknownType) - return type; - if (type !== anyType) { - var apparentType = getApparentType(getWidenedType(type)); - if (apparentType === unknownType) { - return unknownType; - } - var prop = getPropertyOfType(apparentType, right.text); - if (!prop) { - if (right.text) { - error(right, ts.Diagnostics.Property_0_does_not_exist_on_type_1, ts.declarationNameToString(right), typeToString(type)); - } - return unknownType; - } - getNodeLinks(node).resolvedSymbol = prop; - if (prop.parent && prop.parent.flags & 32) { - if (left.kind === 91 && getDeclarationKindFromSymbol(prop) !== 134) { - error(right, ts.Diagnostics.Only_public_and_protected_methods_of_the_base_class_are_accessible_via_the_super_keyword); - } - else { - checkClassPropertyAccess(node, left, type, prop); - } - } - return getTypeOfSymbol(prop); - } - return anyType; - } - function isValidPropertyAccess(node, propertyName) { - var left = node.kind === 155 - ? node.expression - : node.left; - var type = checkExpressionOrQualifiedName(left); - if (type !== unknownType && type !== anyType) { - var prop = getPropertyOfType(getWidenedType(type), propertyName); - if (prop && prop.parent && prop.parent.flags & 32) { - if (left.kind === 91 && getDeclarationKindFromSymbol(prop) !== 134) { - return false; - } - else { - var modificationCount = diagnostics.getModificationCount(); - checkClassPropertyAccess(node, left, type, prop); - return diagnostics.getModificationCount() === modificationCount; - } - } - } - return true; - } - function checkIndexedAccess(node) { - if (!node.argumentExpression) { - var sourceFile = getSourceFile(node); - if (node.parent.kind === 158 && node.parent.expression === node) { - var start = ts.skipTrivia(sourceFile.text, node.expression.end); - var end = node.end; - grammarErrorAtPos(sourceFile, start, end - start, ts.Diagnostics.new_T_cannot_be_used_to_create_an_array_Use_new_Array_T_instead); - } - else { - var start = node.end - "]".length; - var end = node.end; - grammarErrorAtPos(sourceFile, start, end - start, ts.Diagnostics.Expression_expected); - } - } - var objectType = getApparentType(checkExpression(node.expression)); - var indexType = node.argumentExpression ? checkExpression(node.argumentExpression) : unknownType; - if (objectType === unknownType) { - return unknownType; - } - var isConstEnum = isConstEnumObjectType(objectType); - if (isConstEnum && - (!node.argumentExpression || node.argumentExpression.kind !== 8)) { - error(node.argumentExpression, ts.Diagnostics.A_const_enum_member_can_only_be_accessed_using_a_string_literal); - return unknownType; - } - if (node.argumentExpression) { - var name_6 = getPropertyNameForIndexedAccess(node.argumentExpression, indexType); - if (name_6 !== undefined) { - var prop = getPropertyOfType(objectType, name_6); - if (prop) { - getNodeLinks(node).resolvedSymbol = prop; - return getTypeOfSymbol(prop); - } - else if (isConstEnum) { - error(node.argumentExpression, ts.Diagnostics.Property_0_does_not_exist_on_const_enum_1, name_6, symbolToString(objectType.symbol)); - return unknownType; - } - } - } - if (allConstituentTypesHaveKind(indexType, 1 | 258 | 132 | 1048576)) { - if (allConstituentTypesHaveKind(indexType, 1 | 132)) { - var numberIndexType = getIndexTypeOfType(objectType, 1); - if (numberIndexType) { - return numberIndexType; - } - } - var stringIndexType = getIndexTypeOfType(objectType, 0); - if (stringIndexType) { - return stringIndexType; - } - if (compilerOptions.noImplicitAny && !compilerOptions.suppressImplicitAnyIndexErrors && objectType !== anyType) { - error(node, ts.Diagnostics.Index_signature_of_object_type_implicitly_has_an_any_type); - } - return anyType; - } - error(node, ts.Diagnostics.An_index_expression_argument_must_be_of_type_string_number_symbol_or_any); - return unknownType; - } - function getPropertyNameForIndexedAccess(indexArgumentExpression, indexArgumentType) { - if (indexArgumentExpression.kind === 8 || indexArgumentExpression.kind === 7) { - return indexArgumentExpression.text; - } - if (checkThatExpressionIsProperSymbolReference(indexArgumentExpression, indexArgumentType, false)) { - var rightHandSideName = indexArgumentExpression.name.text; - return ts.getPropertyNameForKnownSymbolName(rightHandSideName); - } - return undefined; - } - function checkThatExpressionIsProperSymbolReference(expression, expressionType, reportError) { - if (expressionType === unknownType) { - return false; - } - if (!ts.isWellKnownSymbolSyntactically(expression)) { - return false; - } - if ((expressionType.flags & 1048576) === 0) { - if (reportError) { - error(expression, ts.Diagnostics.A_computed_property_name_of_the_form_0_must_be_of_type_symbol, ts.getTextOfNode(expression)); - } - return false; - } - var leftHandSide = expression.expression; - var leftHandSideSymbol = getResolvedSymbol(leftHandSide); - if (!leftHandSideSymbol) { - return false; - } - var globalESSymbol = getGlobalESSymbolConstructorSymbol(); - if (!globalESSymbol) { - return false; - } - if (leftHandSideSymbol !== globalESSymbol) { - if (reportError) { - error(leftHandSide, ts.Diagnostics.Symbol_reference_does_not_refer_to_the_global_Symbol_constructor_object); - } - return false; - } - return true; - } - function resolveUntypedCall(node) { - if (node.kind === 159) { - checkExpression(node.template); - } - else { - ts.forEach(node.arguments, function (argument) { - checkExpression(argument); - }); - } - return anySignature; - } - function resolveErrorCall(node) { - resolveUntypedCall(node); - return unknownSignature; - } - function reorderCandidates(signatures, result) { - var lastParent; - var lastSymbol; - var cutoffIndex = 0; - var index; - var specializedIndex = -1; - var spliceIndex; - ts.Debug.assert(!result.length); - for (var _i = 0, _n = signatures.length; _i < _n; _i++) { - var signature = signatures[_i]; - var symbol = signature.declaration && getSymbolOfNode(signature.declaration); - var parent_4 = signature.declaration && signature.declaration.parent; - if (!lastSymbol || symbol === lastSymbol) { - if (lastParent && parent_4 === lastParent) { - index++; - } - else { - lastParent = parent_4; - index = cutoffIndex; - } - } - else { - index = cutoffIndex = result.length; - lastParent = parent_4; - } - lastSymbol = symbol; - if (signature.hasStringLiterals) { - specializedIndex++; - spliceIndex = specializedIndex; - cutoffIndex++; - } - else { - spliceIndex = index; - } - result.splice(spliceIndex, 0, signature); - } - } - function getSpreadArgumentIndex(args) { - for (var i = 0; i < args.length; i++) { - if (args[i].kind === 173) { - return i; - } - } - return -1; - } - function hasCorrectArity(node, args, signature) { - var adjustedArgCount; - var typeArguments; - var callIsIncomplete; - if (node.kind === 159) { - var tagExpression = node; - adjustedArgCount = args.length; - typeArguments = undefined; - if (tagExpression.template.kind === 171) { - var templateExpression = tagExpression.template; - var lastSpan = ts.lastOrUndefined(templateExpression.templateSpans); - ts.Debug.assert(lastSpan !== undefined); - callIsIncomplete = ts.getFullWidth(lastSpan.literal) === 0 || !!lastSpan.literal.isUnterminated; - } - else { - var templateLiteral = tagExpression.template; - ts.Debug.assert(templateLiteral.kind === 10); - callIsIncomplete = !!templateLiteral.isUnterminated; - } - } - else { - var callExpression = node; - if (!callExpression.arguments) { - ts.Debug.assert(callExpression.kind === 158); - return signature.minArgumentCount === 0; - } - adjustedArgCount = callExpression.arguments.hasTrailingComma ? args.length + 1 : args.length; - callIsIncomplete = callExpression.arguments.end === callExpression.end; - typeArguments = callExpression.typeArguments; - } - var hasRightNumberOfTypeArgs = !typeArguments || - (signature.typeParameters && typeArguments.length === signature.typeParameters.length); - if (!hasRightNumberOfTypeArgs) { - return false; - } - var spreadArgIndex = getSpreadArgumentIndex(args); - if (spreadArgIndex >= 0) { - return signature.hasRestParameter && spreadArgIndex >= signature.parameters.length - 1; - } - if (!signature.hasRestParameter && adjustedArgCount > signature.parameters.length) { - return false; - } - var hasEnoughArguments = adjustedArgCount >= signature.minArgumentCount; - return callIsIncomplete || hasEnoughArguments; - } - function getSingleCallSignature(type) { - if (type.flags & 48128) { - var resolved = resolveObjectOrUnionTypeMembers(type); - if (resolved.callSignatures.length === 1 && resolved.constructSignatures.length === 0 && - resolved.properties.length === 0 && !resolved.stringIndexType && !resolved.numberIndexType) { - return resolved.callSignatures[0]; - } - } - return undefined; - } - function instantiateSignatureInContextOf(signature, contextualSignature, contextualMapper) { - var context = createInferenceContext(signature.typeParameters, true); - forEachMatchingParameterType(contextualSignature, signature, function (source, target) { - inferTypes(context, instantiateType(source, contextualMapper), target); - }); - return getSignatureInstantiation(signature, getInferredTypes(context)); - } - function inferTypeArguments(signature, args, excludeArgument, context) { - var typeParameters = signature.typeParameters; - var inferenceMapper = createInferenceMapper(context); - for (var i = 0; i < typeParameters.length; i++) { - if (!context.inferences[i].isFixed) { - context.inferredTypes[i] = undefined; - } - } - if (context.failedTypeParameterIndex !== undefined && !context.inferences[context.failedTypeParameterIndex].isFixed) { - context.failedTypeParameterIndex = undefined; - } - for (var i = 0; i < args.length; i++) { - var arg = args[i]; - if (arg.kind !== 174) { - var paramType = getTypeAtPosition(signature, arg.kind === 173 ? -1 : i); - var argType = void 0; - if (i === 0 && args[i].parent.kind === 159) { - argType = globalTemplateStringsArrayType; - } - else { - var mapper = excludeArgument && excludeArgument[i] !== undefined ? identityMapper : inferenceMapper; - argType = checkExpressionWithContextualType(arg, paramType, mapper); - } - inferTypes(context, argType, paramType); - } - } - if (excludeArgument) { - for (var i = 0; i < args.length; i++) { - if (excludeArgument[i] === false) { - var arg = args[i]; - var paramType = getTypeAtPosition(signature, arg.kind === 173 ? -1 : i); - inferTypes(context, checkExpressionWithContextualType(arg, paramType, inferenceMapper), paramType); - } - } - } - getInferredTypes(context); - } - function checkTypeArguments(signature, typeArguments, typeArgumentResultTypes, reportErrors) { - var typeParameters = signature.typeParameters; - var typeArgumentsAreAssignable = true; - for (var i = 0; i < typeParameters.length; i++) { - var typeArgNode = typeArguments[i]; - var typeArgument = getTypeFromTypeNode(typeArgNode); - typeArgumentResultTypes[i] = typeArgument; - if (typeArgumentsAreAssignable) { - var constraint = getConstraintOfTypeParameter(typeParameters[i]); - if (constraint) { - typeArgumentsAreAssignable = checkTypeAssignableTo(typeArgument, constraint, reportErrors ? typeArgNode : undefined, ts.Diagnostics.Type_0_does_not_satisfy_the_constraint_1); - } - } - } - return typeArgumentsAreAssignable; - } - function checkApplicableSignature(node, args, signature, relation, excludeArgument, reportErrors) { - for (var i = 0; i < args.length; i++) { - var arg = args[i]; - if (arg.kind !== 174) { - var paramType = getTypeAtPosition(signature, arg.kind === 173 ? -1 : i); - var argType = i === 0 && node.kind === 159 ? globalTemplateStringsArrayType : - arg.kind === 8 && !reportErrors ? getStringLiteralType(arg) : - checkExpressionWithContextualType(arg, paramType, excludeArgument && excludeArgument[i] ? identityMapper : undefined); - if (!checkTypeRelatedTo(argType, paramType, relation, reportErrors ? arg : undefined, ts.Diagnostics.Argument_of_type_0_is_not_assignable_to_parameter_of_type_1)) { - return false; - } - } - } - return true; - } - function getEffectiveCallArguments(node) { - var args; - if (node.kind === 159) { - var template = node.template; - args = [template]; - if (template.kind === 171) { - ts.forEach(template.templateSpans, function (span) { - args.push(span.expression); - }); - } - } - else { - args = node.arguments || emptyArray; - } - return args; - } - function getEffectiveTypeArguments(callExpression) { - if (callExpression.expression.kind === 91) { - var containingClass = ts.getAncestor(callExpression, 198); - var baseClassTypeNode = containingClass && ts.getClassBaseTypeNode(containingClass); - return baseClassTypeNode && baseClassTypeNode.typeArguments; - } - else { - return callExpression.typeArguments; - } - } - function resolveCall(node, signatures, candidatesOutArray) { - var isTaggedTemplate = node.kind === 159; - var typeArguments; - if (!isTaggedTemplate) { - typeArguments = getEffectiveTypeArguments(node); - if (node.expression.kind !== 91) { - ts.forEach(typeArguments, checkSourceElement); - } - } - var candidates = candidatesOutArray || []; - reorderCandidates(signatures, candidates); - if (!candidates.length) { - error(node, ts.Diagnostics.Supplied_parameters_do_not_match_any_signature_of_call_target); - return resolveErrorCall(node); - } - var args = getEffectiveCallArguments(node); - var excludeArgument; - for (var i = isTaggedTemplate ? 1 : 0; i < args.length; i++) { - if (isContextSensitive(args[i])) { - if (!excludeArgument) { - excludeArgument = new Array(args.length); - } - excludeArgument[i] = true; - } - } - var candidateForArgumentError; - var candidateForTypeArgumentError; - var resultOfFailedInference; - var result; - if (candidates.length > 1) { - result = chooseOverload(candidates, subtypeRelation); - } - if (!result) { - candidateForArgumentError = undefined; - candidateForTypeArgumentError = undefined; - resultOfFailedInference = undefined; - result = chooseOverload(candidates, assignableRelation); - } - if (result) { - return result; - } - if (candidateForArgumentError) { - checkApplicableSignature(node, args, candidateForArgumentError, assignableRelation, undefined, true); - } - else if (candidateForTypeArgumentError) { - if (!isTaggedTemplate && node.typeArguments) { - checkTypeArguments(candidateForTypeArgumentError, node.typeArguments, [], true); - } - else { - ts.Debug.assert(resultOfFailedInference.failedTypeParameterIndex >= 0); - var failedTypeParameter = candidateForTypeArgumentError.typeParameters[resultOfFailedInference.failedTypeParameterIndex]; - var inferenceCandidates = getInferenceCandidates(resultOfFailedInference, resultOfFailedInference.failedTypeParameterIndex); - var diagnosticChainHead = ts.chainDiagnosticMessages(undefined, ts.Diagnostics.The_type_argument_for_type_parameter_0_cannot_be_inferred_from_the_usage_Consider_specifying_the_type_arguments_explicitly, typeToString(failedTypeParameter)); - reportNoCommonSupertypeError(inferenceCandidates, node.expression || node.tag, diagnosticChainHead); - } - } - else { - error(node, ts.Diagnostics.Supplied_parameters_do_not_match_any_signature_of_call_target); - } - if (!produceDiagnostics) { - for (var _i = 0, _n = candidates.length; _i < _n; _i++) { - var candidate = candidates[_i]; - if (hasCorrectArity(node, args, candidate)) { - return candidate; - } - } - } - return resolveErrorCall(node); - function chooseOverload(candidates, relation) { - for (var _i = 0, _n = candidates.length; _i < _n; _i++) { - var originalCandidate = candidates[_i]; - if (!hasCorrectArity(node, args, originalCandidate)) { - continue; - } - var candidate = void 0; - var typeArgumentsAreValid = void 0; - var inferenceContext = originalCandidate.typeParameters - ? createInferenceContext(originalCandidate.typeParameters, false) - : undefined; - while (true) { - candidate = originalCandidate; - if (candidate.typeParameters) { - var typeArgumentTypes = void 0; - if (typeArguments) { - typeArgumentTypes = new Array(candidate.typeParameters.length); - typeArgumentsAreValid = checkTypeArguments(candidate, typeArguments, typeArgumentTypes, false); - } - else { - inferTypeArguments(candidate, args, excludeArgument, inferenceContext); - typeArgumentsAreValid = inferenceContext.failedTypeParameterIndex === undefined; - typeArgumentTypes = inferenceContext.inferredTypes; - } - if (!typeArgumentsAreValid) { - break; - } - candidate = getSignatureInstantiation(candidate, typeArgumentTypes); - } - if (!checkApplicableSignature(node, args, candidate, relation, excludeArgument, false)) { - break; - } - var index = excludeArgument ? ts.indexOf(excludeArgument, true) : -1; - if (index < 0) { - return candidate; - } - excludeArgument[index] = false; - } - if (originalCandidate.typeParameters) { - var instantiatedCandidate = candidate; - if (typeArgumentsAreValid) { - candidateForArgumentError = instantiatedCandidate; - } - else { - candidateForTypeArgumentError = originalCandidate; - if (!typeArguments) { - resultOfFailedInference = inferenceContext; - } - } - } - else { - ts.Debug.assert(originalCandidate === candidate); - candidateForArgumentError = originalCandidate; - } - } - return undefined; - } - } - function resolveCallExpression(node, candidatesOutArray) { - if (node.expression.kind === 91) { - var superType = checkSuperExpression(node.expression); - if (superType !== unknownType) { - return resolveCall(node, getSignaturesOfType(superType, 1), candidatesOutArray); - } - return resolveUntypedCall(node); - } - var funcType = checkExpression(node.expression); - var apparentType = getApparentType(funcType); - if (apparentType === unknownType) { - return resolveErrorCall(node); - } - var callSignatures = getSignaturesOfType(apparentType, 0); - var constructSignatures = getSignaturesOfType(apparentType, 1); - if (funcType === anyType || (!callSignatures.length && !constructSignatures.length && !(funcType.flags & 16384) && isTypeAssignableTo(funcType, globalFunctionType))) { - if (node.typeArguments) { - error(node, ts.Diagnostics.Untyped_function_calls_may_not_accept_type_arguments); - } - return resolveUntypedCall(node); - } - if (!callSignatures.length) { - if (constructSignatures.length) { - error(node, ts.Diagnostics.Value_of_type_0_is_not_callable_Did_you_mean_to_include_new, typeToString(funcType)); - } - else { - error(node, ts.Diagnostics.Cannot_invoke_an_expression_whose_type_lacks_a_call_signature); - } - return resolveErrorCall(node); - } - return resolveCall(node, callSignatures, candidatesOutArray); - } - function resolveNewExpression(node, candidatesOutArray) { - if (node.arguments && languageVersion < 2) { - var spreadIndex = getSpreadArgumentIndex(node.arguments); - if (spreadIndex >= 0) { - error(node.arguments[spreadIndex], ts.Diagnostics.Spread_operator_in_new_expressions_is_only_available_when_targeting_ECMAScript_6_and_higher); - } - } - var expressionType = checkExpression(node.expression); - if (expressionType === anyType) { - if (node.typeArguments) { - error(node, ts.Diagnostics.Untyped_function_calls_may_not_accept_type_arguments); - } - return resolveUntypedCall(node); - } - expressionType = getApparentType(expressionType); - if (expressionType === unknownType) { - return resolveErrorCall(node); - } - var constructSignatures = getSignaturesOfType(expressionType, 1); - if (constructSignatures.length) { - return resolveCall(node, constructSignatures, candidatesOutArray); - } - var callSignatures = getSignaturesOfType(expressionType, 0); - if (callSignatures.length) { - var signature = resolveCall(node, callSignatures, candidatesOutArray); - if (getReturnTypeOfSignature(signature) !== voidType) { - error(node, ts.Diagnostics.Only_a_void_function_can_be_called_with_the_new_keyword); - } - return signature; - } - error(node, ts.Diagnostics.Cannot_use_new_with_an_expression_whose_type_lacks_a_call_or_construct_signature); - return resolveErrorCall(node); - } - function resolveTaggedTemplateExpression(node, candidatesOutArray) { - var tagType = checkExpression(node.tag); - var apparentType = getApparentType(tagType); - if (apparentType === unknownType) { - return resolveErrorCall(node); - } - var callSignatures = getSignaturesOfType(apparentType, 0); - if (tagType === anyType || (!callSignatures.length && !(tagType.flags & 16384) && isTypeAssignableTo(tagType, globalFunctionType))) { - return resolveUntypedCall(node); - } - if (!callSignatures.length) { - error(node, ts.Diagnostics.Cannot_invoke_an_expression_whose_type_lacks_a_call_signature); - return resolveErrorCall(node); - } - return resolveCall(node, callSignatures, candidatesOutArray); - } - function getResolvedSignature(node, candidatesOutArray) { - var links = getNodeLinks(node); - if (!links.resolvedSignature || candidatesOutArray) { - links.resolvedSignature = anySignature; - if (node.kind === 157) { - links.resolvedSignature = resolveCallExpression(node, candidatesOutArray); - } - else if (node.kind === 158) { - links.resolvedSignature = resolveNewExpression(node, candidatesOutArray); - } - else if (node.kind === 159) { - links.resolvedSignature = resolveTaggedTemplateExpression(node, candidatesOutArray); - } - else { - ts.Debug.fail("Branch in 'getResolvedSignature' should be unreachable."); - } - } - return links.resolvedSignature; - } - function checkCallExpression(node) { - checkGrammarTypeArguments(node, node.typeArguments) || checkGrammarArguments(node, node.arguments); - var signature = getResolvedSignature(node); - if (node.expression.kind === 91) { - return voidType; - } - if (node.kind === 158) { - var declaration = signature.declaration; - if (declaration && - declaration.kind !== 135 && - declaration.kind !== 139 && - declaration.kind !== 143) { - if (compilerOptions.noImplicitAny) { - error(node, ts.Diagnostics.new_expression_whose_target_lacks_a_construct_signature_implicitly_has_an_any_type); - } - return anyType; - } - } - return getReturnTypeOfSignature(signature); - } - function checkTaggedTemplateExpression(node) { - return getReturnTypeOfSignature(getResolvedSignature(node)); - } - function checkTypeAssertion(node) { - var exprType = checkExpression(node.expression); - var targetType = getTypeFromTypeNode(node.type); - if (produceDiagnostics && targetType !== unknownType) { - var widenedType = getWidenedType(exprType); - if (!(isTypeAssignableTo(targetType, widenedType))) { - checkTypeAssignableTo(exprType, targetType, node, ts.Diagnostics.Neither_type_0_nor_type_1_is_assignable_to_the_other); - } - } - return targetType; - } - function getTypeAtPosition(signature, pos) { - if (pos >= 0) { - return signature.hasRestParameter ? - pos < signature.parameters.length - 1 ? getTypeOfSymbol(signature.parameters[pos]) : getRestTypeOfSignature(signature) : - pos < signature.parameters.length ? getTypeOfSymbol(signature.parameters[pos]) : anyType; - } - return signature.hasRestParameter ? - getTypeOfSymbol(signature.parameters[signature.parameters.length - 1]) : - anyArrayType; - } - function assignContextualParameterTypes(signature, context, mapper) { - var len = signature.parameters.length - (signature.hasRestParameter ? 1 : 0); - for (var i = 0; i < len; i++) { - var parameter = signature.parameters[i]; - var links = getSymbolLinks(parameter); - links.type = instantiateType(getTypeAtPosition(context, i), mapper); - } - if (signature.hasRestParameter && context.hasRestParameter && signature.parameters.length >= context.parameters.length) { - var parameter = signature.parameters[signature.parameters.length - 1]; - var links = getSymbolLinks(parameter); - links.type = instantiateType(getTypeOfSymbol(context.parameters[context.parameters.length - 1]), mapper); - } - } - function getReturnTypeFromBody(func, contextualMapper) { - var contextualSignature = getContextualSignatureForFunctionLikeDeclaration(func); - if (!func.body) { - return unknownType; - } - var type; - if (func.body.kind !== 176) { - type = checkExpressionCached(func.body, contextualMapper); - } - else { - var types = checkAndAggregateReturnExpressionTypes(func.body, contextualMapper); - if (types.length === 0) { - return voidType; - } - type = contextualSignature ? getUnionType(types) : getCommonSupertype(types); - if (!type) { - error(func, ts.Diagnostics.No_best_common_type_exists_among_return_expressions); - return unknownType; - } - } - if (!contextualSignature) { - reportErrorsFromWidening(func, type); - } - return getWidenedType(type); - } - function checkAndAggregateReturnExpressionTypes(body, contextualMapper) { - var aggregatedTypes = []; - ts.forEachReturnStatement(body, function (returnStatement) { - var expr = returnStatement.expression; - if (expr) { - var type = checkExpressionCached(expr, contextualMapper); - if (!ts.contains(aggregatedTypes, type)) { - aggregatedTypes.push(type); - } - } - }); - return aggregatedTypes; - } - function bodyContainsAReturnStatement(funcBody) { - return ts.forEachReturnStatement(funcBody, function (returnStatement) { - return true; - }); - } - function bodyContainsSingleThrowStatement(body) { - return (body.statements.length === 1) && (body.statements[0].kind === 192); - } - function checkIfNonVoidFunctionHasReturnExpressionsOrSingleThrowStatment(func, returnType) { - if (!produceDiagnostics) { - return; - } - if (returnType === voidType || returnType === anyType) { - return; - } - if (ts.nodeIsMissing(func.body) || func.body.kind !== 176) { - return; - } - var bodyBlock = func.body; - if (bodyContainsAReturnStatement(bodyBlock)) { - return; - } - if (bodyContainsSingleThrowStatement(bodyBlock)) { - return; - } - error(func.type, ts.Diagnostics.A_function_whose_declared_type_is_neither_void_nor_any_must_return_a_value_or_consist_of_a_single_throw_statement); - } - function checkFunctionExpressionOrObjectLiteralMethod(node, contextualMapper) { - ts.Debug.assert(node.kind !== 134 || ts.isObjectLiteralMethod(node)); - var hasGrammarError = checkGrammarFunctionLikeDeclaration(node); - if (!hasGrammarError && node.kind === 162) { - checkGrammarFunctionName(node.name) || checkGrammarForGenerator(node); - } - if (contextualMapper === identityMapper && isContextSensitive(node)) { - return anyFunctionType; - } - var links = getNodeLinks(node); - var type = getTypeOfSymbol(node.symbol); - if (!(links.flags & 64)) { - var contextualSignature = getContextualSignature(node); - if (!(links.flags & 64)) { - links.flags |= 64; - if (contextualSignature) { - var signature = getSignaturesOfType(type, 0)[0]; - if (isContextSensitive(node)) { - assignContextualParameterTypes(signature, contextualSignature, contextualMapper || identityMapper); - } - if (!node.type) { - signature.resolvedReturnType = resolvingType; - var returnType = getReturnTypeFromBody(node, contextualMapper); - if (signature.resolvedReturnType === resolvingType) { - signature.resolvedReturnType = returnType; - } - } - } - checkSignatureDeclaration(node); - } - } - if (produceDiagnostics && node.kind !== 134 && node.kind !== 133) { - checkCollisionWithCapturedSuperVariable(node, node.name); - checkCollisionWithCapturedThisVariable(node, node.name); - } - return type; - } - function checkFunctionExpressionOrObjectLiteralMethodBody(node) { - ts.Debug.assert(node.kind !== 134 || ts.isObjectLiteralMethod(node)); - if (node.type) { - checkIfNonVoidFunctionHasReturnExpressionsOrSingleThrowStatment(node, getTypeFromTypeNode(node.type)); - } - if (node.body) { - if (node.body.kind === 176) { - checkSourceElement(node.body); - } - else { - var exprType = checkExpression(node.body); - if (node.type) { - checkTypeAssignableTo(exprType, getTypeFromTypeNode(node.type), node.body, undefined); - } - checkFunctionExpressionBodies(node.body); - } - } - } - function checkArithmeticOperandType(operand, type, diagnostic) { - if (!allConstituentTypesHaveKind(type, 1 | 132)) { - error(operand, diagnostic); - return false; - } - return true; - } - function checkReferenceExpression(n, invalidReferenceMessage, constantVariableMessage) { - function findSymbol(n) { - var symbol = getNodeLinks(n).resolvedSymbol; - return symbol && getExportSymbolOfValueSymbolIfExported(symbol); - } - function isReferenceOrErrorExpression(n) { - switch (n.kind) { - case 65: { - var symbol = findSymbol(n); - return !symbol || symbol === unknownSymbol || symbol === argumentsSymbol || (symbol.flags & 3) !== 0; - } - case 155: { - var symbol = findSymbol(n); - return !symbol || symbol === unknownSymbol || (symbol.flags & ~8) !== 0; - } - case 156: - return true; - case 161: - return isReferenceOrErrorExpression(n.expression); - default: - return false; - } - } - function isConstVariableReference(n) { - switch (n.kind) { - case 65: - case 155: { - var symbol = findSymbol(n); - return symbol && (symbol.flags & 3) !== 0 && (getDeclarationFlagsFromSymbol(symbol) & 8192) !== 0; - } - case 156: { - var index = n.argumentExpression; - var symbol = findSymbol(n.expression); - if (symbol && index && index.kind === 8) { - var name_7 = index.text; - var prop = getPropertyOfType(getTypeOfSymbol(symbol), name_7); - return prop && (prop.flags & 3) !== 0 && (getDeclarationFlagsFromSymbol(prop) & 8192) !== 0; - } - return false; - } - case 161: - return isConstVariableReference(n.expression); - default: - return false; - } - } - function isImportedNameFromExternalModule(n) { - switch (n.kind) { - case 156: - case 155: { - var symbol = findSymbol(n.expression); - return symbol && symbol.flags & 8388608 && isExternalModuleSymbol(resolveAlias(symbol)); - } - case 161: - return isImportedNameFromExternalModule(n.expression); - default: - return false; - } - } - if (!isReferenceOrErrorExpression(n)) { - error(n, invalidReferenceMessage); - return false; - } - if (isConstVariableReference(n)) { - error(n, constantVariableMessage); - return false; - } - if (isImportedNameFromExternalModule(n)) { - error(n, invalidReferenceMessage); - } - return true; - } - function checkDeleteExpression(node) { - if (node.parserContextFlags & 1 && node.expression.kind === 65) { - grammarErrorOnNode(node.expression, ts.Diagnostics.delete_cannot_be_called_on_an_identifier_in_strict_mode); - } - var operandType = checkExpression(node.expression); - return booleanType; - } - function checkTypeOfExpression(node) { - var operandType = checkExpression(node.expression); - return stringType; - } - function checkVoidExpression(node) { - var operandType = checkExpression(node.expression); - return undefinedType; - } - function checkPrefixUnaryExpression(node) { - if ((node.operator === 38 || node.operator === 39)) { - checkGrammarEvalOrArgumentsInStrictMode(node, node.operand); - } - var operandType = checkExpression(node.operand); - switch (node.operator) { - case 33: - case 34: - case 47: - if (someConstituentTypeHasKind(operandType, 1048576)) { - error(node.operand, ts.Diagnostics.The_0_operator_cannot_be_applied_to_type_symbol, ts.tokenToString(node.operator)); - } - return numberType; - case 46: - return booleanType; - case 38: - case 39: - var ok = checkArithmeticOperandType(node.operand, operandType, ts.Diagnostics.An_arithmetic_operand_must_be_of_type_any_number_or_an_enum_type); - if (ok) { - checkReferenceExpression(node.operand, ts.Diagnostics.The_operand_of_an_increment_or_decrement_operator_must_be_a_variable_property_or_indexer, ts.Diagnostics.The_operand_of_an_increment_or_decrement_operator_cannot_be_a_constant); - } - return numberType; - } - return unknownType; - } - function checkPostfixUnaryExpression(node) { - checkGrammarEvalOrArgumentsInStrictMode(node, node.operand); - var operandType = checkExpression(node.operand); - var ok = checkArithmeticOperandType(node.operand, operandType, ts.Diagnostics.An_arithmetic_operand_must_be_of_type_any_number_or_an_enum_type); - if (ok) { - checkReferenceExpression(node.operand, ts.Diagnostics.The_operand_of_an_increment_or_decrement_operator_must_be_a_variable_property_or_indexer, ts.Diagnostics.The_operand_of_an_increment_or_decrement_operator_cannot_be_a_constant); - } - return numberType; - } - function someConstituentTypeHasKind(type, kind) { - if (type.flags & kind) { - return true; - } - if (type.flags & 16384) { - var types = type.types; - for (var _i = 0, _n = types.length; _i < _n; _i++) { - var current = types[_i]; - if (current.flags & kind) { - return true; - } - } - return false; - } - return false; - } - function allConstituentTypesHaveKind(type, kind) { - if (type.flags & kind) { - return true; - } - if (type.flags & 16384) { - var types = type.types; - for (var _i = 0, _n = types.length; _i < _n; _i++) { - var current = types[_i]; - if (!(current.flags & kind)) { - return false; - } - } - return true; - } - return false; - } - function isConstEnumObjectType(type) { - return type.flags & (48128 | 32768) && type.symbol && isConstEnumSymbol(type.symbol); - } - function isConstEnumSymbol(symbol) { - return (symbol.flags & 128) !== 0; - } - function checkInstanceOfExpression(node, leftType, rightType) { - if (allConstituentTypesHaveKind(leftType, 1049086)) { - error(node.left, ts.Diagnostics.The_left_hand_side_of_an_instanceof_expression_must_be_of_type_any_an_object_type_or_a_type_parameter); - } - if (!(rightType.flags & 1 || isTypeSubtypeOf(rightType, globalFunctionType))) { - error(node.right, ts.Diagnostics.The_right_hand_side_of_an_instanceof_expression_must_be_of_type_any_or_of_a_type_assignable_to_the_Function_interface_type); - } - return booleanType; - } - function checkInExpression(node, leftType, rightType) { - if (!allConstituentTypesHaveKind(leftType, 1 | 258 | 132 | 1048576)) { - error(node.left, ts.Diagnostics.The_left_hand_side_of_an_in_expression_must_be_of_type_any_string_number_or_symbol); - } - if (!allConstituentTypesHaveKind(rightType, 1 | 48128 | 512)) { - error(node.right, ts.Diagnostics.The_right_hand_side_of_an_in_expression_must_be_of_type_any_an_object_type_or_a_type_parameter); - } - return booleanType; - } - function checkObjectLiteralAssignment(node, sourceType, contextualMapper) { - var properties = node.properties; - for (var _i = 0, _n = properties.length; _i < _n; _i++) { - var p = properties[_i]; - if (p.kind === 221 || p.kind === 222) { - var name_8 = p.name; - var type = sourceType.flags & 1 ? sourceType : - getTypeOfPropertyOfType(sourceType, name_8.text) || - isNumericLiteralName(name_8.text) && getIndexTypeOfType(sourceType, 1) || - getIndexTypeOfType(sourceType, 0); - if (type) { - checkDestructuringAssignment(p.initializer || name_8, type); - } - else { - error(name_8, ts.Diagnostics.Type_0_has_no_property_1_and_no_string_index_signature, typeToString(sourceType), ts.declarationNameToString(name_8)); - } - } - else { - error(p, ts.Diagnostics.Property_assignment_expected); - } - } - return sourceType; - } - function checkArrayLiteralAssignment(node, sourceType, contextualMapper) { - if (!isArrayLikeType(sourceType)) { - error(node, ts.Diagnostics.Type_0_is_not_an_array_type, typeToString(sourceType)); - return sourceType; - } - var elements = node.elements; - for (var i = 0; i < elements.length; i++) { - var e = elements[i]; - if (e.kind !== 174) { - if (e.kind !== 173) { - var propName = "" + i; - var type = sourceType.flags & 1 ? sourceType : - isTupleLikeType(sourceType) ? getTypeOfPropertyOfType(sourceType, propName) : - getIndexTypeOfType(sourceType, 1); - if (type) { - checkDestructuringAssignment(e, type, contextualMapper); - } - else { - if (isTupleType(sourceType)) { - error(e, ts.Diagnostics.Tuple_type_0_with_length_1_cannot_be_assigned_to_tuple_with_length_2, typeToString(sourceType), sourceType.elementTypes.length, elements.length); - } - else { - error(e, ts.Diagnostics.Type_0_has_no_property_1, typeToString(sourceType), propName); - } - } - } - else { - if (i === elements.length - 1) { - checkReferenceAssignment(e.expression, sourceType, contextualMapper); - } - else { - error(e, ts.Diagnostics.A_rest_element_must_be_last_in_an_array_destructuring_pattern); - } - } - } - } - return sourceType; - } - function checkDestructuringAssignment(target, sourceType, contextualMapper) { - if (target.kind === 169 && target.operatorToken.kind === 53) { - checkBinaryExpression(target, contextualMapper); - target = target.left; - } - if (target.kind === 154) { - return checkObjectLiteralAssignment(target, sourceType, contextualMapper); - } - if (target.kind === 153) { - return checkArrayLiteralAssignment(target, sourceType, contextualMapper); - } - return checkReferenceAssignment(target, sourceType, contextualMapper); - } - function checkReferenceAssignment(target, sourceType, contextualMapper) { - var targetType = checkExpression(target, contextualMapper); - if (checkReferenceExpression(target, ts.Diagnostics.Invalid_left_hand_side_of_assignment_expression, ts.Diagnostics.Left_hand_side_of_assignment_expression_cannot_be_a_constant)) { - checkTypeAssignableTo(sourceType, targetType, target, undefined); - } - return sourceType; - } - function checkBinaryExpression(node, contextualMapper) { - if (ts.isLeftHandSideExpression(node.left) && ts.isAssignmentOperator(node.operatorToken.kind)) { - checkGrammarEvalOrArgumentsInStrictMode(node, node.left); - } - var operator = node.operatorToken.kind; - if (operator === 53 && (node.left.kind === 154 || node.left.kind === 153)) { - return checkDestructuringAssignment(node.left, checkExpression(node.right, contextualMapper), contextualMapper); - } - var leftType = checkExpression(node.left, contextualMapper); - var rightType = checkExpression(node.right, contextualMapper); - switch (operator) { - case 35: - case 56: - case 36: - case 57: - case 37: - case 58: - case 34: - case 55: - case 40: - case 59: - case 41: - case 60: - case 42: - case 61: - case 44: - case 63: - case 45: - case 64: - case 43: - case 62: - if (leftType.flags & (32 | 64)) - leftType = rightType; - if (rightType.flags & (32 | 64)) - rightType = leftType; - var suggestedOperator; - if ((leftType.flags & 8) && - (rightType.flags & 8) && - (suggestedOperator = getSuggestedBooleanOperator(node.operatorToken.kind)) !== undefined) { - error(node, ts.Diagnostics.The_0_operator_is_not_allowed_for_boolean_types_Consider_using_1_instead, ts.tokenToString(node.operatorToken.kind), ts.tokenToString(suggestedOperator)); - } - else { - var leftOk = checkArithmeticOperandType(node.left, leftType, ts.Diagnostics.The_left_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_or_an_enum_type); - var rightOk = checkArithmeticOperandType(node.right, rightType, ts.Diagnostics.The_right_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_or_an_enum_type); - if (leftOk && rightOk) { - checkAssignmentOperator(numberType); - } - } - return numberType; - case 33: - case 54: - if (leftType.flags & (32 | 64)) - leftType = rightType; - if (rightType.flags & (32 | 64)) - rightType = leftType; - var resultType; - if (allConstituentTypesHaveKind(leftType, 132) && allConstituentTypesHaveKind(rightType, 132)) { - resultType = numberType; - } - else { - if (allConstituentTypesHaveKind(leftType, 258) || allConstituentTypesHaveKind(rightType, 258)) { - resultType = stringType; - } - else if (leftType.flags & 1 || rightType.flags & 1) { - resultType = anyType; - } - if (resultType && !checkForDisallowedESSymbolOperand(operator)) { - return resultType; - } - } - if (!resultType) { - reportOperatorError(); - return anyType; - } - if (operator === 54) { - checkAssignmentOperator(resultType); - } - return resultType; - case 24: - case 25: - case 26: - case 27: - if (!checkForDisallowedESSymbolOperand(operator)) { - return booleanType; - } - case 28: - case 29: - case 30: - case 31: - if (!isTypeAssignableTo(leftType, rightType) && !isTypeAssignableTo(rightType, leftType)) { - reportOperatorError(); - } - return booleanType; - case 87: - return checkInstanceOfExpression(node, leftType, rightType); - case 86: - return checkInExpression(node, leftType, rightType); - case 48: - return rightType; - case 49: - return getUnionType([leftType, rightType]); - case 53: - checkAssignmentOperator(rightType); - return rightType; - case 23: - return rightType; - } - function checkForDisallowedESSymbolOperand(operator) { - var offendingSymbolOperand = someConstituentTypeHasKind(leftType, 1048576) ? node.left : - someConstituentTypeHasKind(rightType, 1048576) ? node.right : - undefined; - if (offendingSymbolOperand) { - error(offendingSymbolOperand, ts.Diagnostics.The_0_operator_cannot_be_applied_to_type_symbol, ts.tokenToString(operator)); - return false; - } - return true; - } - function getSuggestedBooleanOperator(operator) { - switch (operator) { - case 44: - case 63: - return 49; - case 45: - case 64: - return 31; - case 43: - case 62: - return 48; - default: - return undefined; - } - } - function checkAssignmentOperator(valueType) { - if (produceDiagnostics && operator >= 53 && operator <= 64) { - var ok = checkReferenceExpression(node.left, ts.Diagnostics.Invalid_left_hand_side_of_assignment_expression, ts.Diagnostics.Left_hand_side_of_assignment_expression_cannot_be_a_constant); - if (ok) { - checkTypeAssignableTo(valueType, leftType, node.left, undefined); - } - } - } - function reportOperatorError() { - error(node, ts.Diagnostics.Operator_0_cannot_be_applied_to_types_1_and_2, ts.tokenToString(node.operatorToken.kind), typeToString(leftType), typeToString(rightType)); - } - } - function checkYieldExpression(node) { - if (!(node.parserContextFlags & 4)) { - grammarErrorOnFirstToken(node, ts.Diagnostics.yield_expression_must_be_contained_within_a_generator_declaration); - } - else { - grammarErrorOnFirstToken(node, ts.Diagnostics.yield_expressions_are_not_currently_supported); - } - } - function checkConditionalExpression(node, contextualMapper) { - checkExpression(node.condition); - var type1 = checkExpression(node.whenTrue, contextualMapper); - var type2 = checkExpression(node.whenFalse, contextualMapper); - return getUnionType([type1, type2]); - } - function checkTemplateExpression(node) { - ts.forEach(node.templateSpans, function (templateSpan) { - checkExpression(templateSpan.expression); - }); - return stringType; - } - function checkExpressionWithContextualType(node, contextualType, contextualMapper) { - var saveContextualType = node.contextualType; - node.contextualType = contextualType; - var result = checkExpression(node, contextualMapper); - node.contextualType = saveContextualType; - return result; - } - function checkExpressionCached(node, contextualMapper) { - var links = getNodeLinks(node); - if (!links.resolvedType) { - links.resolvedType = checkExpression(node, contextualMapper); - } - return links.resolvedType; - } - function checkPropertyAssignment(node, contextualMapper) { - if (node.name.kind === 127) { - checkComputedPropertyName(node.name); - } - return checkExpression(node.initializer, contextualMapper); - } - function checkObjectLiteralMethod(node, contextualMapper) { - checkGrammarMethod(node); - if (node.name.kind === 127) { - checkComputedPropertyName(node.name); - } - var uninstantiatedType = checkFunctionExpressionOrObjectLiteralMethod(node, contextualMapper); - return instantiateTypeWithSingleGenericCallSignature(node, uninstantiatedType, contextualMapper); - } - function instantiateTypeWithSingleGenericCallSignature(node, type, contextualMapper) { - if (contextualMapper && contextualMapper !== identityMapper) { - var signature = getSingleCallSignature(type); - if (signature && signature.typeParameters) { - var contextualType = getContextualType(node); - if (contextualType) { - var contextualSignature = getSingleCallSignature(contextualType); - if (contextualSignature && !contextualSignature.typeParameters) { - return getOrCreateTypeFromSignature(instantiateSignatureInContextOf(signature, contextualSignature, contextualMapper)); - } - } - } - } - return type; - } - function checkExpression(node, contextualMapper) { - return checkExpressionOrQualifiedName(node, contextualMapper); - } - function checkExpressionOrQualifiedName(node, contextualMapper) { - var type; - if (node.kind == 126) { - type = checkQualifiedName(node); - } - else { - var uninstantiatedType = checkExpressionWorker(node, contextualMapper); - type = instantiateTypeWithSingleGenericCallSignature(node, uninstantiatedType, contextualMapper); - } - if (isConstEnumObjectType(type)) { - var ok = (node.parent.kind === 155 && node.parent.expression === node) || - (node.parent.kind === 156 && node.parent.expression === node) || - ((node.kind === 65 || node.kind === 126) && isInRightSideOfImportOrExportAssignment(node)); - if (!ok) { - error(node, ts.Diagnostics.const_enums_can_only_be_used_in_property_or_index_access_expressions_or_the_right_hand_side_of_an_import_declaration_or_export_assignment); - } - } - return type; - } - function checkNumericLiteral(node) { - checkGrammarNumbericLiteral(node); - return numberType; - } - function checkExpressionWorker(node, contextualMapper) { - switch (node.kind) { - case 65: - return checkIdentifier(node); - case 93: - return checkThisExpression(node); - case 91: - return checkSuperExpression(node); - case 89: - return nullType; - case 95: - case 80: - return booleanType; - case 7: - return checkNumericLiteral(node); - case 171: - return checkTemplateExpression(node); - case 8: - case 10: - return stringType; - case 9: - return globalRegExpType; - case 153: - return checkArrayLiteral(node, contextualMapper); - case 154: - return checkObjectLiteral(node, contextualMapper); - case 155: - return checkPropertyAccessExpression(node); - case 156: - return checkIndexedAccess(node); - case 157: - case 158: - return checkCallExpression(node); - case 159: - return checkTaggedTemplateExpression(node); - case 160: - return checkTypeAssertion(node); - case 161: - return checkExpression(node.expression, contextualMapper); - case 162: - case 163: - return checkFunctionExpressionOrObjectLiteralMethod(node, contextualMapper); - case 165: - return checkTypeOfExpression(node); - case 164: - return checkDeleteExpression(node); - case 166: - return checkVoidExpression(node); - case 167: - return checkPrefixUnaryExpression(node); - case 168: - return checkPostfixUnaryExpression(node); - case 169: - return checkBinaryExpression(node, contextualMapper); - case 170: - return checkConditionalExpression(node, contextualMapper); - case 173: - return checkSpreadElementExpression(node, contextualMapper); - case 174: - return undefinedType; - case 172: - checkYieldExpression(node); - return unknownType; - } - return unknownType; - } - function checkTypeParameter(node) { - if (node.expression) { - grammarErrorOnFirstToken(node.expression, ts.Diagnostics.Type_expected); - } - checkSourceElement(node.constraint); - if (produceDiagnostics) { - checkTypeParameterHasIllegalReferencesInConstraint(node); - checkTypeNameIsReserved(node.name, ts.Diagnostics.Type_parameter_name_cannot_be_0); - } - } - function checkParameter(node) { - // Grammar checking - // It is a SyntaxError if the Identifier "eval" or the Identifier "arguments" occurs as the - // Identifier in a PropertySetParameterList of a PropertyAssignment that is contained in strict code - // or if its FunctionBody is strict code(11.1.5). - // It is a SyntaxError if the identifier eval or arguments appears within a FormalParameterList of a - // strict mode FunctionLikeDeclaration or FunctionExpression(13.1) - checkGrammarDecorators(node) || checkGrammarModifiers(node) || checkGrammarEvalOrArgumentsInStrictMode(node, node.name); - checkVariableLikeDeclaration(node); - var func = ts.getContainingFunction(node); - if (node.flags & 112) { - func = ts.getContainingFunction(node); - if (!(func.kind === 135 && ts.nodeIsPresent(func.body))) { - error(node, ts.Diagnostics.A_parameter_property_is_only_allowed_in_a_constructor_implementation); - } - } - if (node.questionToken && ts.isBindingPattern(node.name) && func.body) { - error(node, ts.Diagnostics.A_binding_pattern_parameter_cannot_be_optional_in_an_implementation_signature); - } - if (node.dotDotDotToken) { - if (!isArrayType(getTypeOfSymbol(node.symbol))) { - error(node, ts.Diagnostics.A_rest_parameter_must_be_of_an_array_type); - } - } - } - function checkSignatureDeclaration(node) { - if (node.kind === 140) { - checkGrammarIndexSignature(node); - } - else if (node.kind === 142 || node.kind === 197 || node.kind === 143 || - node.kind === 138 || node.kind === 135 || - node.kind === 139) { - checkGrammarFunctionLikeDeclaration(node); - } - checkTypeParameters(node.typeParameters); - ts.forEach(node.parameters, checkParameter); - if (node.type) { - checkSourceElement(node.type); - } - if (produceDiagnostics) { - checkCollisionWithArgumentsInGeneratedCode(node); - if (compilerOptions.noImplicitAny && !node.type) { - switch (node.kind) { - case 139: - error(node, ts.Diagnostics.Construct_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type); - break; - case 138: - error(node, ts.Diagnostics.Call_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type); - break; - } - } - } - checkSpecializedSignatureDeclaration(node); - } - function checkTypeForDuplicateIndexSignatures(node) { - if (node.kind === 199) { - var nodeSymbol = getSymbolOfNode(node); - if (nodeSymbol.declarations.length > 0 && nodeSymbol.declarations[0] !== node) { - return; - } - } - var indexSymbol = getIndexSymbol(getSymbolOfNode(node)); - if (indexSymbol) { - var seenNumericIndexer = false; - var seenStringIndexer = false; - for (var _i = 0, _a = indexSymbol.declarations, _n = _a.length; _i < _n; _i++) { - var decl = _a[_i]; - var declaration = decl; - if (declaration.parameters.length === 1 && declaration.parameters[0].type) { - switch (declaration.parameters[0].type.kind) { - case 121: - if (!seenStringIndexer) { - seenStringIndexer = true; - } - else { - error(declaration, ts.Diagnostics.Duplicate_string_index_signature); - } - break; - case 119: - if (!seenNumericIndexer) { - seenNumericIndexer = true; - } - else { - error(declaration, ts.Diagnostics.Duplicate_number_index_signature); - } - break; - } - } - } - } - } - function checkPropertyDeclaration(node) { - checkGrammarDecorators(node) || checkGrammarModifiers(node) || checkGrammarProperty(node) || checkGrammarComputedPropertyName(node.name); - checkVariableLikeDeclaration(node); - } - function checkMethodDeclaration(node) { - checkGrammarMethod(node) || checkGrammarComputedPropertyName(node.name); - checkFunctionLikeDeclaration(node); - } - function checkConstructorDeclaration(node) { - checkSignatureDeclaration(node); - checkGrammarConstructorTypeParameters(node) || checkGrammarConstructorTypeAnnotation(node); - checkSourceElement(node.body); - var symbol = getSymbolOfNode(node); - var firstDeclaration = ts.getDeclarationOfKind(symbol, node.kind); - if (node === firstDeclaration) { - checkFunctionOrConstructorSymbol(symbol); - } - if (ts.nodeIsMissing(node.body)) { - return; - } - if (!produceDiagnostics) { - return; - } - function isSuperCallExpression(n) { - return n.kind === 157 && n.expression.kind === 91; - } - function containsSuperCall(n) { - if (isSuperCallExpression(n)) { - return true; - } - switch (n.kind) { - case 162: - case 197: - case 163: - case 154: return false; - default: return ts.forEachChild(n, containsSuperCall); - } - } - function markThisReferencesAsErrors(n) { - if (n.kind === 93) { - error(n, ts.Diagnostics.this_cannot_be_referenced_in_current_location); - } - else if (n.kind !== 162 && n.kind !== 197) { - ts.forEachChild(n, markThisReferencesAsErrors); - } - } - function isInstancePropertyWithInitializer(n) { - return n.kind === 132 && - !(n.flags & 128) && - !!n.initializer; - } - if (ts.getClassBaseTypeNode(node.parent)) { - if (containsSuperCall(node.body)) { - var superCallShouldBeFirst = ts.forEach(node.parent.members, isInstancePropertyWithInitializer) || - ts.forEach(node.parameters, function (p) { return p.flags & (16 | 32 | 64); }); - if (superCallShouldBeFirst) { - var statements = node.body.statements; - if (!statements.length || statements[0].kind !== 179 || !isSuperCallExpression(statements[0].expression)) { - error(node, ts.Diagnostics.A_super_call_must_be_the_first_statement_in_the_constructor_when_a_class_contains_initialized_properties_or_has_parameter_properties); - } - else { - markThisReferencesAsErrors(statements[0].expression); - } - } - } - else { - error(node, ts.Diagnostics.Constructors_for_derived_classes_must_contain_a_super_call); - } - } - } - function checkAccessorDeclaration(node) { - if (produceDiagnostics) { - checkGrammarFunctionLikeDeclaration(node) || checkGrammarAccessor(node) || checkGrammarComputedPropertyName(node.name); - if (node.kind === 136) { - if (!ts.isInAmbientContext(node) && ts.nodeIsPresent(node.body) && !(bodyContainsAReturnStatement(node.body) || bodyContainsSingleThrowStatement(node.body))) { - error(node.name, ts.Diagnostics.A_get_accessor_must_return_a_value_or_consist_of_a_single_throw_statement); - } - } - if (!ts.hasDynamicName(node)) { - var otherKind = node.kind === 136 ? 137 : 136; - var otherAccessor = ts.getDeclarationOfKind(node.symbol, otherKind); - if (otherAccessor) { - if (((node.flags & 112) !== (otherAccessor.flags & 112))) { - error(node.name, ts.Diagnostics.Getter_and_setter_accessors_do_not_agree_in_visibility); - } - var currentAccessorType = getAnnotatedAccessorType(node); - var otherAccessorType = getAnnotatedAccessorType(otherAccessor); - if (currentAccessorType && otherAccessorType) { - if (!isTypeIdenticalTo(currentAccessorType, otherAccessorType)) { - error(node, ts.Diagnostics.get_and_set_accessor_must_have_the_same_type); - } - } - } - } - checkAndStoreTypeOfAccessors(getSymbolOfNode(node)); - } - checkFunctionLikeDeclaration(node); - } - function checkMissingDeclaration(node) { - checkDecorators(node); - } - function checkTypeReference(node) { - checkGrammarTypeArguments(node, node.typeArguments); - var type = getTypeFromTypeReferenceNode(node); - if (type !== unknownType && node.typeArguments) { - var len = node.typeArguments.length; - for (var i = 0; i < len; i++) { - checkSourceElement(node.typeArguments[i]); - var constraint = getConstraintOfTypeParameter(type.target.typeParameters[i]); - if (produceDiagnostics && constraint) { - var typeArgument = type.typeArguments[i]; - checkTypeAssignableTo(typeArgument, constraint, node, ts.Diagnostics.Type_0_does_not_satisfy_the_constraint_1); - } - } - } - } - function checkTypeQuery(node) { - getTypeFromTypeQueryNode(node); - } - function checkTypeLiteral(node) { - ts.forEach(node.members, checkSourceElement); - if (produceDiagnostics) { - var type = getTypeFromTypeLiteralOrFunctionOrConstructorTypeNode(node); - checkIndexConstraints(type); - checkTypeForDuplicateIndexSignatures(node); - } - } - function checkArrayType(node) { - checkSourceElement(node.elementType); - } - function checkTupleType(node) { - var hasErrorFromDisallowedTrailingComma = checkGrammarForDisallowedTrailingComma(node.elementTypes); - if (!hasErrorFromDisallowedTrailingComma && node.elementTypes.length === 0) { - grammarErrorOnNode(node, ts.Diagnostics.A_tuple_type_element_list_cannot_be_empty); - } - ts.forEach(node.elementTypes, checkSourceElement); - } - function checkUnionType(node) { - ts.forEach(node.types, checkSourceElement); - } - function isPrivateWithinAmbient(node) { - return (node.flags & 32) && ts.isInAmbientContext(node); - } - function checkSpecializedSignatureDeclaration(signatureDeclarationNode) { - if (!produceDiagnostics) { - return; - } - var signature = getSignatureFromDeclaration(signatureDeclarationNode); - if (!signature.hasStringLiterals) { - return; - } - if (ts.nodeIsPresent(signatureDeclarationNode.body)) { - error(signatureDeclarationNode, ts.Diagnostics.A_signature_with_an_implementation_cannot_use_a_string_literal_type); - return; - } - var signaturesToCheck; - if (!signatureDeclarationNode.name && signatureDeclarationNode.parent && signatureDeclarationNode.parent.kind === 199) { - ts.Debug.assert(signatureDeclarationNode.kind === 138 || signatureDeclarationNode.kind === 139); - var signatureKind = signatureDeclarationNode.kind === 138 ? 0 : 1; - var containingSymbol = getSymbolOfNode(signatureDeclarationNode.parent); - var containingType = getDeclaredTypeOfSymbol(containingSymbol); - signaturesToCheck = getSignaturesOfType(containingType, signatureKind); - } - else { - signaturesToCheck = getSignaturesOfSymbol(getSymbolOfNode(signatureDeclarationNode)); - } - for (var _i = 0, _n = signaturesToCheck.length; _i < _n; _i++) { - var otherSignature = signaturesToCheck[_i]; - if (!otherSignature.hasStringLiterals && isSignatureAssignableTo(signature, otherSignature)) { - return; - } - } - error(signatureDeclarationNode, ts.Diagnostics.Specialized_overload_signature_is_not_assignable_to_any_non_specialized_signature); - } - function getEffectiveDeclarationFlags(n, flagsToCheck) { - var flags = ts.getCombinedNodeFlags(n); - if (n.parent.kind !== 199 && ts.isInAmbientContext(n)) { - if (!(flags & 2)) { - flags |= 1; - } - flags |= 2; - } - return flags & flagsToCheck; - } - function checkFunctionOrConstructorSymbol(symbol) { - if (!produceDiagnostics) { - return; - } - function getCanonicalOverload(overloads, implementation) { - var implementationSharesContainerWithFirstOverload = implementation !== undefined && implementation.parent === overloads[0].parent; - return implementationSharesContainerWithFirstOverload ? implementation : overloads[0]; - } - function checkFlagAgreementBetweenOverloads(overloads, implementation, flagsToCheck, someOverloadFlags, allOverloadFlags) { - var someButNotAllOverloadFlags = someOverloadFlags ^ allOverloadFlags; - if (someButNotAllOverloadFlags !== 0) { - var canonicalFlags = getEffectiveDeclarationFlags(getCanonicalOverload(overloads, implementation), flagsToCheck); - ts.forEach(overloads, function (o) { - var deviation = getEffectiveDeclarationFlags(o, flagsToCheck) ^ canonicalFlags; - if (deviation & 1) { - error(o.name, ts.Diagnostics.Overload_signatures_must_all_be_exported_or_not_exported); - } - else if (deviation & 2) { - error(o.name, ts.Diagnostics.Overload_signatures_must_all_be_ambient_or_non_ambient); - } - else if (deviation & (32 | 64)) { - error(o.name, ts.Diagnostics.Overload_signatures_must_all_be_public_private_or_protected); - } - }); - } - } - function checkQuestionTokenAgreementBetweenOverloads(overloads, implementation, someHaveQuestionToken, allHaveQuestionToken) { - if (someHaveQuestionToken !== allHaveQuestionToken) { - var canonicalHasQuestionToken = ts.hasQuestionToken(getCanonicalOverload(overloads, implementation)); - ts.forEach(overloads, function (o) { - var deviation = ts.hasQuestionToken(o) !== canonicalHasQuestionToken; - if (deviation) { - error(o.name, ts.Diagnostics.Overload_signatures_must_all_be_optional_or_required); - } - }); - } - } - var flagsToCheck = 1 | 2 | 32 | 64; - var someNodeFlags = 0; - var allNodeFlags = flagsToCheck; - var someHaveQuestionToken = false; - var allHaveQuestionToken = true; - var hasOverloads = false; - var bodyDeclaration; - var lastSeenNonAmbientDeclaration; - var previousDeclaration; - var declarations = symbol.declarations; - var isConstructor = (symbol.flags & 16384) !== 0; - function reportImplementationExpectedError(node) { - if (node.name && ts.getFullWidth(node.name) === 0) { - return; - } - var seen = false; - var subsequentNode = ts.forEachChild(node.parent, function (c) { - if (seen) { - return c; - } - else { - seen = c === node; - } - }); - if (subsequentNode) { - if (subsequentNode.kind === node.kind) { - var errorNode_1 = subsequentNode.name || subsequentNode; - if (node.name && subsequentNode.name && node.name.text === subsequentNode.name.text) { - ts.Debug.assert(node.kind === 134 || node.kind === 133); - ts.Debug.assert((node.flags & 128) !== (subsequentNode.flags & 128)); - var diagnostic = node.flags & 128 ? ts.Diagnostics.Function_overload_must_be_static : ts.Diagnostics.Function_overload_must_not_be_static; - error(errorNode_1, diagnostic); - return; - } - else if (ts.nodeIsPresent(subsequentNode.body)) { - error(errorNode_1, ts.Diagnostics.Function_implementation_name_must_be_0, ts.declarationNameToString(node.name)); - return; - } - } - } - var errorNode = node.name || node; - if (isConstructor) { - error(errorNode, ts.Diagnostics.Constructor_implementation_is_missing); - } - else { - error(errorNode, ts.Diagnostics.Function_implementation_is_missing_or_not_immediately_following_the_declaration); - } - } - var isExportSymbolInsideModule = symbol.parent && symbol.parent.flags & 1536; - var duplicateFunctionDeclaration = false; - var multipleConstructorImplementation = false; - for (var _i = 0, _n = declarations.length; _i < _n; _i++) { - var current = declarations[_i]; - var node = current; - var inAmbientContext = ts.isInAmbientContext(node); - var inAmbientContextOrInterface = node.parent.kind === 199 || node.parent.kind === 145 || inAmbientContext; - if (inAmbientContextOrInterface) { - previousDeclaration = undefined; - } - if (node.kind === 197 || node.kind === 134 || node.kind === 133 || node.kind === 135) { - var currentNodeFlags = getEffectiveDeclarationFlags(node, flagsToCheck); - someNodeFlags |= currentNodeFlags; - allNodeFlags &= currentNodeFlags; - someHaveQuestionToken = someHaveQuestionToken || ts.hasQuestionToken(node); - allHaveQuestionToken = allHaveQuestionToken && ts.hasQuestionToken(node); - if (ts.nodeIsPresent(node.body) && bodyDeclaration) { - if (isConstructor) { - multipleConstructorImplementation = true; - } - else { - duplicateFunctionDeclaration = true; - } - } - else if (!isExportSymbolInsideModule && previousDeclaration && previousDeclaration.parent === node.parent && previousDeclaration.end !== node.pos) { - reportImplementationExpectedError(previousDeclaration); - } - if (ts.nodeIsPresent(node.body)) { - if (!bodyDeclaration) { - bodyDeclaration = node; - } - } - else { - hasOverloads = true; - } - previousDeclaration = node; - if (!inAmbientContextOrInterface) { - lastSeenNonAmbientDeclaration = node; - } - } - } - if (multipleConstructorImplementation) { - ts.forEach(declarations, function (declaration) { - error(declaration, ts.Diagnostics.Multiple_constructor_implementations_are_not_allowed); - }); - } - if (duplicateFunctionDeclaration) { - ts.forEach(declarations, function (declaration) { - error(declaration.name, ts.Diagnostics.Duplicate_function_implementation); - }); - } - if (!isExportSymbolInsideModule && lastSeenNonAmbientDeclaration && !lastSeenNonAmbientDeclaration.body) { - reportImplementationExpectedError(lastSeenNonAmbientDeclaration); - } - if (hasOverloads) { - checkFlagAgreementBetweenOverloads(declarations, bodyDeclaration, flagsToCheck, someNodeFlags, allNodeFlags); - checkQuestionTokenAgreementBetweenOverloads(declarations, bodyDeclaration, someHaveQuestionToken, allHaveQuestionToken); - if (bodyDeclaration) { - var signatures = getSignaturesOfSymbol(symbol); - var bodySignature = getSignatureFromDeclaration(bodyDeclaration); - if (!bodySignature.hasStringLiterals) { - for (var _a = 0, _b = signatures.length; _a < _b; _a++) { - var signature = signatures[_a]; - if (!signature.hasStringLiterals && !isSignatureAssignableTo(bodySignature, signature)) { - error(signature.declaration, ts.Diagnostics.Overload_signature_is_not_compatible_with_function_implementation); - break; - } - } - } - } - } - } - function checkExportsOnMergedDeclarations(node) { - if (!produceDiagnostics) { - return; - } - var symbol = node.localSymbol; - if (!symbol) { - symbol = getSymbolOfNode(node); - if (!(symbol.flags & 7340032)) { - return; - } - } - if (ts.getDeclarationOfKind(symbol, node.kind) !== node) { - return; - } - var exportedDeclarationSpaces = 0; - var nonExportedDeclarationSpaces = 0; - ts.forEach(symbol.declarations, function (d) { - var declarationSpaces = getDeclarationSpaces(d); - if (getEffectiveDeclarationFlags(d, 1)) { - exportedDeclarationSpaces |= declarationSpaces; - } - else { - nonExportedDeclarationSpaces |= declarationSpaces; - } - }); - var commonDeclarationSpace = exportedDeclarationSpaces & nonExportedDeclarationSpaces; - if (commonDeclarationSpace) { - ts.forEach(symbol.declarations, function (d) { - if (getDeclarationSpaces(d) & commonDeclarationSpace) { - error(d.name, ts.Diagnostics.Individual_declarations_in_merged_declaration_0_must_be_all_exported_or_all_local, ts.declarationNameToString(d.name)); - } - }); - } - function getDeclarationSpaces(d) { - switch (d.kind) { - case 199: - return 2097152; - case 202: - return d.name.kind === 8 || ts.getModuleInstanceState(d) !== 0 - ? 4194304 | 1048576 - : 4194304; - case 198: - case 201: - return 2097152 | 1048576; - case 205: - var result = 0; - var target = resolveAlias(getSymbolOfNode(d)); - ts.forEach(target.declarations, function (d) { result |= getDeclarationSpaces(d); }); - return result; - default: - return 1048576; - } - } - } - function checkDecorator(node) { - var expression = node.expression; - var exprType = checkExpression(expression); - switch (node.parent.kind) { - case 198: - var classSymbol = getSymbolOfNode(node.parent); - var classConstructorType = getTypeOfSymbol(classSymbol); - var classDecoratorType = instantiateSingleCallFunctionType(globalClassDecoratorType, [classConstructorType]); - checkTypeAssignableTo(exprType, classDecoratorType, node); - break; - case 132: - checkTypeAssignableTo(exprType, globalPropertyDecoratorType, node); - break; - case 134: - case 136: - case 137: - var methodType = getTypeOfNode(node.parent); - var methodDecoratorType = instantiateSingleCallFunctionType(globalMethodDecoratorType, [methodType]); - checkTypeAssignableTo(exprType, methodDecoratorType, node); - break; - case 129: - checkTypeAssignableTo(exprType, globalParameterDecoratorType, node); - break; - } - } - function checkDecorators(node) { - if (!node.decorators) { - return; - } - switch (node.kind) { - case 198: - case 134: - case 136: - case 137: - case 132: - case 129: - emitDecorate = true; - break; - default: - return; - } - ts.forEach(node.decorators, checkDecorator); - } - function checkFunctionDeclaration(node) { - if (produceDiagnostics) { - checkFunctionLikeDeclaration(node) || - checkGrammarDisallowedModifiersInBlockOrObjectLiteralExpression(node) || - checkGrammarFunctionName(node.name) || - checkGrammarForGenerator(node); - checkCollisionWithCapturedSuperVariable(node, node.name); - checkCollisionWithCapturedThisVariable(node, node.name); - checkCollisionWithRequireExportsInGeneratedCode(node, node.name); - } - } - function checkFunctionLikeDeclaration(node) { - checkDecorators(node); - checkSignatureDeclaration(node); - if (node.name && node.name.kind === 127) { - checkComputedPropertyName(node.name); - } - if (!ts.hasDynamicName(node)) { - var symbol = getSymbolOfNode(node); - var localSymbol = node.localSymbol || symbol; - var firstDeclaration = ts.getDeclarationOfKind(localSymbol, node.kind); - if (node === firstDeclaration) { - checkFunctionOrConstructorSymbol(localSymbol); - } - if (symbol.parent) { - if (ts.getDeclarationOfKind(symbol, node.kind) === node) { - checkFunctionOrConstructorSymbol(symbol); - } - } - } - checkSourceElement(node.body); - if (node.type && !isAccessor(node.kind)) { - checkIfNonVoidFunctionHasReturnExpressionsOrSingleThrowStatment(node, getTypeFromTypeNode(node.type)); - } - if (compilerOptions.noImplicitAny && ts.nodeIsMissing(node.body) && !node.type && !isPrivateWithinAmbient(node)) { - reportImplicitAnyError(node, anyType); - } - } - function checkBlock(node) { - if (node.kind === 176) { - checkGrammarStatementInAmbientContext(node); - } - ts.forEach(node.statements, checkSourceElement); - if (ts.isFunctionBlock(node) || node.kind === 203) { - checkFunctionExpressionBodies(node); - } - } - function checkCollisionWithArgumentsInGeneratedCode(node) { - if (!ts.hasRestParameters(node) || ts.isInAmbientContext(node) || ts.nodeIsMissing(node.body)) { - return; - } - ts.forEach(node.parameters, function (p) { - if (p.name && !ts.isBindingPattern(p.name) && p.name.text === argumentsSymbol.name) { - error(p, ts.Diagnostics.Duplicate_identifier_arguments_Compiler_uses_arguments_to_initialize_rest_parameters); - } - }); - } - function needCollisionCheckForIdentifier(node, identifier, name) { - if (!(identifier && identifier.text === name)) { - return false; - } - if (node.kind === 132 || - node.kind === 131 || - node.kind === 134 || - node.kind === 133 || - node.kind === 136 || - node.kind === 137) { - return false; - } - if (ts.isInAmbientContext(node)) { - return false; - } - var root = getRootDeclaration(node); - if (root.kind === 129 && ts.nodeIsMissing(root.parent.body)) { - return false; - } - return true; - } - function checkCollisionWithCapturedThisVariable(node, name) { - if (needCollisionCheckForIdentifier(node, name, "_this")) { - potentialThisCollisions.push(node); - } - } - function checkIfThisIsCapturedInEnclosingScope(node) { - var current = node; - while (current) { - if (getNodeCheckFlags(current) & 4) { - var isDeclaration_1 = node.kind !== 65; - if (isDeclaration_1) { - error(node.name, ts.Diagnostics.Duplicate_identifier_this_Compiler_uses_variable_declaration_this_to_capture_this_reference); - } - else { - error(node, ts.Diagnostics.Expression_resolves_to_variable_declaration_this_that_compiler_uses_to_capture_this_reference); - } - return; - } - current = current.parent; - } - } - function checkCollisionWithCapturedSuperVariable(node, name) { - if (!needCollisionCheckForIdentifier(node, name, "_super")) { - return; - } - var enclosingClass = ts.getAncestor(node, 198); - if (!enclosingClass || ts.isInAmbientContext(enclosingClass)) { - return; - } - if (ts.getClassBaseTypeNode(enclosingClass)) { - var isDeclaration_2 = node.kind !== 65; - if (isDeclaration_2) { - error(node, ts.Diagnostics.Duplicate_identifier_super_Compiler_uses_super_to_capture_base_class_reference); - } - else { - error(node, ts.Diagnostics.Expression_resolves_to_super_that_compiler_uses_to_capture_base_class_reference); - } - } - } - function checkCollisionWithRequireExportsInGeneratedCode(node, name) { - if (!needCollisionCheckForIdentifier(node, name, "require") && !needCollisionCheckForIdentifier(node, name, "exports")) { - return; - } - if (node.kind === 202 && ts.getModuleInstanceState(node) !== 1) { - return; - } - var parent = getDeclarationContainer(node); - if (parent.kind === 224 && ts.isExternalModule(parent)) { - error(name, ts.Diagnostics.Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_an_external_module, ts.declarationNameToString(name), ts.declarationNameToString(name)); - } - } - function checkVarDeclaredNamesNotShadowed(node) { - // - ScriptBody : StatementList - // It is a Syntax Error if any element of the LexicallyDeclaredNames of StatementList - // also occurs in the VarDeclaredNames of StatementList. - if ((ts.getCombinedNodeFlags(node) & 12288) !== 0 || isParameterDeclaration(node)) { - return; - } - if (node.kind === 195 && !node.initializer) { - return; - } - var symbol = getSymbolOfNode(node); - if (symbol.flags & 1) { - var localDeclarationSymbol = resolveName(node, node.name.text, 3, undefined, undefined); - if (localDeclarationSymbol && - localDeclarationSymbol !== symbol && - localDeclarationSymbol.flags & 2) { - if (getDeclarationFlagsFromSymbol(localDeclarationSymbol) & 12288) { - var varDeclList = ts.getAncestor(localDeclarationSymbol.valueDeclaration, 196); - var container = varDeclList.parent.kind === 177 && varDeclList.parent.parent - ? varDeclList.parent.parent - : undefined; - var namesShareScope = container && - (container.kind === 176 && ts.isFunctionLike(container.parent) || - container.kind === 203 || - container.kind === 202 || - container.kind === 224); - if (!namesShareScope) { - var name_9 = symbolToString(localDeclarationSymbol); - error(node, ts.Diagnostics.Cannot_initialize_outer_scoped_variable_0_in_the_same_scope_as_block_scoped_declaration_1, name_9, name_9); - } - } - } - } - } - function isParameterDeclaration(node) { - while (node.kind === 152) { - node = node.parent.parent; - } - return node.kind === 129; - } - function checkParameterInitializer(node) { - if (getRootDeclaration(node).kind !== 129) { - return; - } - var func = ts.getContainingFunction(node); - visit(node.initializer); - function visit(n) { - if (n.kind === 65) { - var referencedSymbol = getNodeLinks(n).resolvedSymbol; - if (referencedSymbol && referencedSymbol !== unknownSymbol && getSymbol(func.locals, referencedSymbol.name, 107455) === referencedSymbol) { - if (referencedSymbol.valueDeclaration.kind === 129) { - if (referencedSymbol.valueDeclaration === node) { - error(n, ts.Diagnostics.Parameter_0_cannot_be_referenced_in_its_initializer, ts.declarationNameToString(node.name)); - return; - } - if (referencedSymbol.valueDeclaration.pos < node.pos) { - return; - } - } - error(n, ts.Diagnostics.Initializer_of_parameter_0_cannot_reference_identifier_1_declared_after_it, ts.declarationNameToString(node.name), ts.declarationNameToString(n)); - } - } - else { - ts.forEachChild(n, visit); - } - } - } - function checkVariableLikeDeclaration(node) { - checkDecorators(node); - checkSourceElement(node.type); - if (node.name.kind === 127) { - checkComputedPropertyName(node.name); - if (node.initializer) { - checkExpressionCached(node.initializer); - } - } - if (ts.isBindingPattern(node.name)) { - ts.forEach(node.name.elements, checkSourceElement); - } - if (node.initializer && getRootDeclaration(node).kind === 129 && ts.nodeIsMissing(ts.getContainingFunction(node).body)) { - error(node, ts.Diagnostics.A_parameter_initializer_is_only_allowed_in_a_function_or_constructor_implementation); - return; - } - if (ts.isBindingPattern(node.name)) { - if (node.initializer) { - checkTypeAssignableTo(checkExpressionCached(node.initializer), getWidenedTypeForVariableLikeDeclaration(node), node, undefined); - checkParameterInitializer(node); - } - return; - } - var symbol = getSymbolOfNode(node); - var type = getTypeOfVariableOrParameterOrProperty(symbol); - if (node === symbol.valueDeclaration) { - if (node.initializer) { - checkTypeAssignableTo(checkExpressionCached(node.initializer), type, node, undefined); - checkParameterInitializer(node); - } - } - else { - var declarationType = getWidenedTypeForVariableLikeDeclaration(node); - if (type !== unknownType && declarationType !== unknownType && !isTypeIdenticalTo(type, declarationType)) { - error(node.name, ts.Diagnostics.Subsequent_variable_declarations_must_have_the_same_type_Variable_0_must_be_of_type_1_but_here_has_type_2, ts.declarationNameToString(node.name), typeToString(type), typeToString(declarationType)); - } - if (node.initializer) { - checkTypeAssignableTo(checkExpressionCached(node.initializer), declarationType, node, undefined); - } - } - if (node.kind !== 132 && node.kind !== 131) { - checkExportsOnMergedDeclarations(node); - if (node.kind === 195 || node.kind === 152) { - checkVarDeclaredNamesNotShadowed(node); - } - checkCollisionWithCapturedSuperVariable(node, node.name); - checkCollisionWithCapturedThisVariable(node, node.name); - checkCollisionWithRequireExportsInGeneratedCode(node, node.name); - } - } - function checkVariableDeclaration(node) { - checkGrammarVariableDeclaration(node); - return checkVariableLikeDeclaration(node); - } - function checkBindingElement(node) { - checkGrammarBindingElement(node); - return checkVariableLikeDeclaration(node); - } - function checkVariableStatement(node) { - checkGrammarDecorators(node) || checkGrammarDisallowedModifiersInBlockOrObjectLiteralExpression(node) || checkGrammarModifiers(node) || checkGrammarVariableDeclarationList(node.declarationList) || checkGrammarForDisallowedLetOrConstStatement(node); - ts.forEach(node.declarationList.declarations, checkSourceElement); - } - function checkGrammarDisallowedModifiersInBlockOrObjectLiteralExpression(node) { - if (node.modifiers) { - if (inBlockOrObjectLiteralExpression(node)) { - return grammarErrorOnFirstToken(node, ts.Diagnostics.Modifiers_cannot_appear_here); - } - } - } - function inBlockOrObjectLiteralExpression(node) { - while (node) { - if (node.kind === 176 || node.kind === 154) { - return true; - } - node = node.parent; - } - } - function checkExpressionStatement(node) { - checkGrammarStatementInAmbientContext(node); - checkExpression(node.expression); - } - function checkIfStatement(node) { - checkGrammarStatementInAmbientContext(node); - checkExpression(node.expression); - checkSourceElement(node.thenStatement); - checkSourceElement(node.elseStatement); - } - function checkDoStatement(node) { - checkGrammarStatementInAmbientContext(node); - checkSourceElement(node.statement); - checkExpression(node.expression); - } - function checkWhileStatement(node) { - checkGrammarStatementInAmbientContext(node); - checkExpression(node.expression); - checkSourceElement(node.statement); - } - function checkForStatement(node) { - if (!checkGrammarStatementInAmbientContext(node)) { - if (node.initializer && node.initializer.kind == 196) { - checkGrammarVariableDeclarationList(node.initializer); - } - } - if (node.initializer) { - if (node.initializer.kind === 196) { - ts.forEach(node.initializer.declarations, checkVariableDeclaration); - } - else { - checkExpression(node.initializer); - } - } - if (node.condition) - checkExpression(node.condition); - if (node.iterator) - checkExpression(node.iterator); - checkSourceElement(node.statement); - } - function checkForOfStatement(node) { - checkGrammarForInOrForOfStatement(node); - if (node.initializer.kind === 196) { - checkForInOrForOfVariableDeclaration(node); - } - else { - var varExpr = node.initializer; - var iteratedType = checkRightHandSideOfForOf(node.expression); - if (varExpr.kind === 153 || varExpr.kind === 154) { - checkDestructuringAssignment(varExpr, iteratedType || unknownType); - } - else { - var leftType = checkExpression(varExpr); - checkReferenceExpression(varExpr, ts.Diagnostics.Invalid_left_hand_side_in_for_of_statement, ts.Diagnostics.The_left_hand_side_of_a_for_of_statement_cannot_be_a_previously_defined_constant); - if (iteratedType) { - checkTypeAssignableTo(iteratedType, leftType, varExpr, undefined); - } - } - } - checkSourceElement(node.statement); - } - function checkForInStatement(node) { - checkGrammarForInOrForOfStatement(node); - if (node.initializer.kind === 196) { - var variable = node.initializer.declarations[0]; - if (variable && ts.isBindingPattern(variable.name)) { - error(variable.name, ts.Diagnostics.The_left_hand_side_of_a_for_in_statement_cannot_be_a_destructuring_pattern); - } - checkForInOrForOfVariableDeclaration(node); - } - else { - var varExpr = node.initializer; - var leftType = checkExpression(varExpr); - if (varExpr.kind === 153 || varExpr.kind === 154) { - error(varExpr, ts.Diagnostics.The_left_hand_side_of_a_for_in_statement_cannot_be_a_destructuring_pattern); - } - else if (!allConstituentTypesHaveKind(leftType, 1 | 258)) { - error(varExpr, ts.Diagnostics.The_left_hand_side_of_a_for_in_statement_must_be_of_type_string_or_any); - } - else { - checkReferenceExpression(varExpr, ts.Diagnostics.Invalid_left_hand_side_in_for_in_statement, ts.Diagnostics.The_left_hand_side_of_a_for_in_statement_cannot_be_a_previously_defined_constant); - } - } - var rightType = checkExpression(node.expression); - if (!allConstituentTypesHaveKind(rightType, 1 | 48128 | 512)) { - error(node.expression, ts.Diagnostics.The_right_hand_side_of_a_for_in_statement_must_be_of_type_any_an_object_type_or_a_type_parameter); - } - checkSourceElement(node.statement); - } - function checkForInOrForOfVariableDeclaration(iterationStatement) { - var variableDeclarationList = iterationStatement.initializer; - if (variableDeclarationList.declarations.length >= 1) { - var decl = variableDeclarationList.declarations[0]; - checkVariableDeclaration(decl); - } - } - function checkRightHandSideOfForOf(rhsExpression) { - var expressionType = getTypeOfExpression(rhsExpression); - return languageVersion >= 2 - ? checkIteratedType(expressionType, rhsExpression) - : checkElementTypeOfArrayOrString(expressionType, rhsExpression); - } - function checkIteratedType(iterable, expressionForError) { - ts.Debug.assert(languageVersion >= 2); - var iteratedType = getIteratedType(iterable, expressionForError); - if (expressionForError && iteratedType) { - var completeIterableType = globalIterableType !== emptyObjectType - ? createTypeReference(globalIterableType, [iteratedType]) - : emptyObjectType; - checkTypeAssignableTo(iterable, completeIterableType, expressionForError); - } - return iteratedType; - function getIteratedType(iterable, expressionForError) { - // We want to treat type as an iterable, and get the type it is an iterable of. The iterable - // must have the following structure (annotated with the names of the variables below): - // - // { // iterable - // [Symbol.iterator]: { // iteratorFunction - // (): { // iterator - // next: { // iteratorNextFunction - // (): { // iteratorNextResult - // value: T // iteratorNextValue - // } - // } - // } - // } - // } - // - // T is the type we are after. At every level that involves analyzing return types - // of signatures, we union the return types of all the signatures. - // - // Another thing to note is that at any step of this process, we could run into a dead end, - // meaning either the property is missing, or we run into the anyType. If either of these things - // happens, we return undefined to signal that we could not find the iterated type. If a property - // is missing, and the previous step did not result in 'any', then we also give an error if the - // caller requested it. Then the caller can decide what to do in the case where there is no iterated - // type. This is different from returning anyType, because that would signify that we have matched the - // whole pattern and that T (above) is 'any'. - if (allConstituentTypesHaveKind(iterable, 1)) { - return undefined; - } - var iteratorFunction = getTypeOfPropertyOfType(iterable, ts.getPropertyNameForKnownSymbolName("iterator")); - if (iteratorFunction && allConstituentTypesHaveKind(iteratorFunction, 1)) { - return undefined; - } - var iteratorFunctionSignatures = iteratorFunction ? getSignaturesOfType(iteratorFunction, 0) : emptyArray; - if (iteratorFunctionSignatures.length === 0) { - if (expressionForError) { - error(expressionForError, ts.Diagnostics.The_right_hand_side_of_a_for_of_statement_must_have_a_Symbol_iterator_method_that_returns_an_iterator); - } - return undefined; - } - var iterator = getUnionType(ts.map(iteratorFunctionSignatures, getReturnTypeOfSignature)); - if (allConstituentTypesHaveKind(iterator, 1)) { - return undefined; - } - var iteratorNextFunction = getTypeOfPropertyOfType(iterator, "next"); - if (iteratorNextFunction && allConstituentTypesHaveKind(iteratorNextFunction, 1)) { - return undefined; - } - var iteratorNextFunctionSignatures = iteratorNextFunction ? getSignaturesOfType(iteratorNextFunction, 0) : emptyArray; - if (iteratorNextFunctionSignatures.length === 0) { - if (expressionForError) { - error(expressionForError, ts.Diagnostics.The_iterator_returned_by_the_right_hand_side_of_a_for_of_statement_must_have_a_next_method); - } - return undefined; - } - var iteratorNextResult = getUnionType(ts.map(iteratorNextFunctionSignatures, getReturnTypeOfSignature)); - if (allConstituentTypesHaveKind(iteratorNextResult, 1)) { - return undefined; - } - var iteratorNextValue = getTypeOfPropertyOfType(iteratorNextResult, "value"); - if (!iteratorNextValue) { - if (expressionForError) { - error(expressionForError, ts.Diagnostics.The_type_returned_by_the_next_method_of_an_iterator_must_have_a_value_property); - } - return undefined; - } - return iteratorNextValue; - } - } - function checkElementTypeOfArrayOrString(arrayOrStringType, expressionForError) { - ts.Debug.assert(languageVersion < 2); - var arrayType = removeTypesFromUnionType(arrayOrStringType, 258, true, true); - var hasStringConstituent = arrayOrStringType !== arrayType; - var reportedError = false; - if (hasStringConstituent) { - if (languageVersion < 1) { - error(expressionForError, ts.Diagnostics.Using_a_string_in_a_for_of_statement_is_only_supported_in_ECMAScript_5_and_higher); - reportedError = true; - } - if (arrayType === emptyObjectType) { - return stringType; - } - } - if (!isArrayLikeType(arrayType)) { - if (!reportedError) { - var diagnostic = hasStringConstituent - ? ts.Diagnostics.Type_0_is_not_an_array_type - : ts.Diagnostics.Type_0_is_not_an_array_type_or_a_string_type; - error(expressionForError, diagnostic, typeToString(arrayType)); - } - return hasStringConstituent ? stringType : unknownType; - } - var arrayElementType = getIndexTypeOfType(arrayType, 1) || unknownType; - if (hasStringConstituent) { - if (arrayElementType.flags & 258) { - return stringType; - } - return getUnionType([arrayElementType, stringType]); - } - return arrayElementType; - } - function checkBreakOrContinueStatement(node) { - checkGrammarStatementInAmbientContext(node) || checkGrammarBreakOrContinueStatement(node); - } - function isGetAccessorWithAnnotatatedSetAccessor(node) { - return !!(node.kind === 136 && getSetAccessorTypeAnnotationNode(ts.getDeclarationOfKind(node.symbol, 137))); - } - function checkReturnStatement(node) { - if (!checkGrammarStatementInAmbientContext(node)) { - var functionBlock = ts.getContainingFunction(node); - if (!functionBlock) { - grammarErrorOnFirstToken(node, ts.Diagnostics.A_return_statement_can_only_be_used_within_a_function_body); - } - } - if (node.expression) { - var func = ts.getContainingFunction(node); - if (func) { - var returnType = getReturnTypeOfSignature(getSignatureFromDeclaration(func)); - var exprType = checkExpressionCached(node.expression); - if (func.kind === 137) { - error(node.expression, ts.Diagnostics.Setters_cannot_return_a_value); - } - else { - if (func.kind === 135) { - if (!isTypeAssignableTo(exprType, returnType)) { - error(node.expression, ts.Diagnostics.Return_type_of_constructor_signature_must_be_assignable_to_the_instance_type_of_the_class); - } - } - else if (func.type || isGetAccessorWithAnnotatatedSetAccessor(func)) { - checkTypeAssignableTo(exprType, returnType, node.expression, undefined); - } - } - } - } - } - function checkWithStatement(node) { - if (!checkGrammarStatementInAmbientContext(node)) { - if (node.parserContextFlags & 1) { - grammarErrorOnFirstToken(node, ts.Diagnostics.with_statements_are_not_allowed_in_strict_mode); - } - } - checkExpression(node.expression); - error(node.expression, ts.Diagnostics.All_symbols_within_a_with_block_will_be_resolved_to_any); - } - function checkSwitchStatement(node) { - checkGrammarStatementInAmbientContext(node); - var firstDefaultClause; - var hasDuplicateDefaultClause = false; - var expressionType = checkExpression(node.expression); - ts.forEach(node.caseBlock.clauses, function (clause) { - if (clause.kind === 218 && !hasDuplicateDefaultClause) { - if (firstDefaultClause === undefined) { - firstDefaultClause = clause; - } - else { - var sourceFile = ts.getSourceFileOfNode(node); - var start = ts.skipTrivia(sourceFile.text, clause.pos); - var end = clause.statements.length > 0 ? clause.statements[0].pos : clause.end; - grammarErrorAtPos(sourceFile, start, end - start, ts.Diagnostics.A_default_clause_cannot_appear_more_than_once_in_a_switch_statement); - hasDuplicateDefaultClause = true; - } - } - if (produceDiagnostics && clause.kind === 217) { - var caseClause = clause; - var caseType = checkExpression(caseClause.expression); - if (!isTypeAssignableTo(expressionType, caseType)) { - checkTypeAssignableTo(caseType, expressionType, caseClause.expression, undefined); - } - } - ts.forEach(clause.statements, checkSourceElement); - }); - } - function checkLabeledStatement(node) { - if (!checkGrammarStatementInAmbientContext(node)) { - var current = node.parent; - while (current) { - if (ts.isFunctionLike(current)) { - break; - } - if (current.kind === 191 && current.label.text === node.label.text) { - var sourceFile = ts.getSourceFileOfNode(node); - grammarErrorOnNode(node.label, ts.Diagnostics.Duplicate_label_0, ts.getTextOfNodeFromSourceText(sourceFile.text, node.label)); - break; - } - current = current.parent; - } - } - checkSourceElement(node.statement); - } - function checkThrowStatement(node) { - if (!checkGrammarStatementInAmbientContext(node)) { - if (node.expression === undefined) { - grammarErrorAfterFirstToken(node, ts.Diagnostics.Line_break_not_permitted_here); - } - } - if (node.expression) { - checkExpression(node.expression); - } - } - function checkTryStatement(node) { - checkGrammarStatementInAmbientContext(node); - checkBlock(node.tryBlock); - var catchClause = node.catchClause; - if (catchClause) { - if (catchClause.variableDeclaration) { - if (catchClause.variableDeclaration.name.kind !== 65) { - grammarErrorOnFirstToken(catchClause.variableDeclaration.name, ts.Diagnostics.Catch_clause_variable_name_must_be_an_identifier); - } - else if (catchClause.variableDeclaration.type) { - grammarErrorOnFirstToken(catchClause.variableDeclaration.type, ts.Diagnostics.Catch_clause_variable_cannot_have_a_type_annotation); - } - else if (catchClause.variableDeclaration.initializer) { - grammarErrorOnFirstToken(catchClause.variableDeclaration.initializer, ts.Diagnostics.Catch_clause_variable_cannot_have_an_initializer); - } - else { - var identifierName = catchClause.variableDeclaration.name.text; - var locals = catchClause.block.locals; - if (locals && ts.hasProperty(locals, identifierName)) { - var localSymbol = locals[identifierName]; - if (localSymbol && (localSymbol.flags & 2) !== 0) { - grammarErrorOnNode(localSymbol.valueDeclaration, ts.Diagnostics.Cannot_redeclare_identifier_0_in_catch_clause, identifierName); - } - } - checkGrammarEvalOrArgumentsInStrictMode(node, catchClause.variableDeclaration.name); - } - } - checkBlock(catchClause.block); - } - if (node.finallyBlock) { - checkBlock(node.finallyBlock); - } - } - function checkIndexConstraints(type) { - var declaredNumberIndexer = getIndexDeclarationOfSymbol(type.symbol, 1); - var declaredStringIndexer = getIndexDeclarationOfSymbol(type.symbol, 0); - var stringIndexType = getIndexTypeOfType(type, 0); - var numberIndexType = getIndexTypeOfType(type, 1); - if (stringIndexType || numberIndexType) { - ts.forEach(getPropertiesOfObjectType(type), function (prop) { - var propType = getTypeOfSymbol(prop); - checkIndexConstraintForProperty(prop, propType, type, declaredStringIndexer, stringIndexType, 0); - checkIndexConstraintForProperty(prop, propType, type, declaredNumberIndexer, numberIndexType, 1); - }); - if (type.flags & 1024 && type.symbol.valueDeclaration.kind === 198) { - var classDeclaration = type.symbol.valueDeclaration; - for (var _i = 0, _a = classDeclaration.members, _n = _a.length; _i < _n; _i++) { - var member = _a[_i]; - if (!(member.flags & 128) && ts.hasDynamicName(member)) { - var propType = getTypeOfSymbol(member.symbol); - checkIndexConstraintForProperty(member.symbol, propType, type, declaredStringIndexer, stringIndexType, 0); - checkIndexConstraintForProperty(member.symbol, propType, type, declaredNumberIndexer, numberIndexType, 1); - } - } - } - } - var errorNode; - if (stringIndexType && numberIndexType) { - errorNode = declaredNumberIndexer || declaredStringIndexer; - if (!errorNode && (type.flags & 2048)) { - var someBaseTypeHasBothIndexers = ts.forEach(type.baseTypes, function (base) { return getIndexTypeOfType(base, 0) && getIndexTypeOfType(base, 1); }); - errorNode = someBaseTypeHasBothIndexers ? undefined : type.symbol.declarations[0]; - } - } - if (errorNode && !isTypeAssignableTo(numberIndexType, stringIndexType)) { - error(errorNode, ts.Diagnostics.Numeric_index_type_0_is_not_assignable_to_string_index_type_1, typeToString(numberIndexType), typeToString(stringIndexType)); - } - function checkIndexConstraintForProperty(prop, propertyType, containingType, indexDeclaration, indexType, indexKind) { - if (!indexType) { - return; - } - if (indexKind === 1 && !isNumericName(prop.valueDeclaration.name)) { - return; - } - var errorNode; - if (prop.valueDeclaration.name.kind === 127 || prop.parent === containingType.symbol) { - errorNode = prop.valueDeclaration; - } - else if (indexDeclaration) { - errorNode = indexDeclaration; - } - else if (containingType.flags & 2048) { - var someBaseClassHasBothPropertyAndIndexer = ts.forEach(containingType.baseTypes, function (base) { return getPropertyOfObjectType(base, prop.name) && getIndexTypeOfType(base, indexKind); }); - errorNode = someBaseClassHasBothPropertyAndIndexer ? undefined : containingType.symbol.declarations[0]; - } - if (errorNode && !isTypeAssignableTo(propertyType, indexType)) { - var errorMessage = indexKind === 0 - ? ts.Diagnostics.Property_0_of_type_1_is_not_assignable_to_string_index_type_2 - : ts.Diagnostics.Property_0_of_type_1_is_not_assignable_to_numeric_index_type_2; - error(errorNode, errorMessage, symbolToString(prop), typeToString(propertyType), typeToString(indexType)); - } - } - } - function checkTypeNameIsReserved(name, message) { - switch (name.text) { - case "any": - case "number": - case "boolean": - case "string": - case "symbol": - case "void": - error(name, message, name.text); - } - } - function checkTypeParameters(typeParameterDeclarations) { - if (typeParameterDeclarations) { - for (var i = 0, n = typeParameterDeclarations.length; i < n; i++) { - var node = typeParameterDeclarations[i]; - checkTypeParameter(node); - if (produceDiagnostics) { - for (var j = 0; j < i; j++) { - if (typeParameterDeclarations[j].symbol === node.symbol) { - error(node.name, ts.Diagnostics.Duplicate_identifier_0, ts.declarationNameToString(node.name)); - } - } - } - } - } - } - function checkClassDeclaration(node) { - checkGrammarClassDeclarationHeritageClauses(node); - checkDecorators(node); - if (node.name) { - checkTypeNameIsReserved(node.name, ts.Diagnostics.Class_name_cannot_be_0); - checkCollisionWithCapturedThisVariable(node, node.name); - checkCollisionWithRequireExportsInGeneratedCode(node, node.name); - } - checkTypeParameters(node.typeParameters); - checkExportsOnMergedDeclarations(node); - var symbol = getSymbolOfNode(node); - var type = getDeclaredTypeOfSymbol(symbol); - var staticType = getTypeOfSymbol(symbol); - var baseTypeNode = ts.getClassBaseTypeNode(node); - if (baseTypeNode) { - emitExtends = emitExtends || !ts.isInAmbientContext(node); - checkTypeReference(baseTypeNode); - } - if (type.baseTypes.length) { - if (produceDiagnostics) { - var baseType = type.baseTypes[0]; - checkTypeAssignableTo(type, baseType, node.name || node, ts.Diagnostics.Class_0_incorrectly_extends_base_class_1); - var staticBaseType = getTypeOfSymbol(baseType.symbol); - checkTypeAssignableTo(staticType, getTypeWithoutConstructors(staticBaseType), node.name || node, ts.Diagnostics.Class_static_side_0_incorrectly_extends_base_class_static_side_1); - if (baseType.symbol !== resolveEntityName(baseTypeNode.typeName, 107455)) { - error(baseTypeNode, ts.Diagnostics.Type_name_0_in_extends_clause_does_not_reference_constructor_function_for_0, typeToString(baseType)); - } - checkKindsOfPropertyMemberOverrides(type, baseType); - } - checkExpressionOrQualifiedName(baseTypeNode.typeName); - } - var implementedTypeNodes = ts.getClassImplementedTypeNodes(node); - if (implementedTypeNodes) { - ts.forEach(implementedTypeNodes, function (typeRefNode) { - checkTypeReference(typeRefNode); - if (produceDiagnostics) { - var t = getTypeFromTypeReferenceNode(typeRefNode); - if (t !== unknownType) { - var declaredType = (t.flags & 4096) ? t.target : t; - if (declaredType.flags & (1024 | 2048)) { - checkTypeAssignableTo(type, t, node.name || node, ts.Diagnostics.Class_0_incorrectly_implements_interface_1); - } - else { - error(typeRefNode, ts.Diagnostics.A_class_may_only_implement_another_class_or_interface); - } - } - } - }); - } - ts.forEach(node.members, checkSourceElement); - if (produceDiagnostics) { - checkIndexConstraints(type); - checkTypeForDuplicateIndexSignatures(node); - } - } - function getTargetSymbol(s) { - return s.flags & 16777216 ? getSymbolLinks(s).target : s; - } - function checkKindsOfPropertyMemberOverrides(type, baseType) { - // TypeScript 1.0 spec (April 2014): 8.2.3 - // A derived class inherits all members from its base class it doesn't override. - // Inheritance means that a derived class implicitly contains all non - overridden members of the base class. - // Both public and private property members are inherited, but only public property members can be overridden. - // A property member in a derived class is said to override a property member in a base class - // when the derived class property member has the same name and kind(instance or static) - // as the base class property member. - // The type of an overriding property member must be assignable(section 3.8.4) - // to the type of the overridden property member, or otherwise a compile - time error occurs. - // Base class instance member functions can be overridden by derived class instance member functions, - // but not by other kinds of members. - // Base class instance member variables and accessors can be overridden by - // derived class instance member variables and accessors, but not by other kinds of members. - var baseProperties = getPropertiesOfObjectType(baseType); - for (var _i = 0, _n = baseProperties.length; _i < _n; _i++) { - var baseProperty = baseProperties[_i]; - var base = getTargetSymbol(baseProperty); - if (base.flags & 134217728) { - continue; - } - var derived = getTargetSymbol(getPropertyOfObjectType(type, base.name)); - if (derived) { - var baseDeclarationFlags = getDeclarationFlagsFromSymbol(base); - var derivedDeclarationFlags = getDeclarationFlagsFromSymbol(derived); - if ((baseDeclarationFlags & 32) || (derivedDeclarationFlags & 32)) { - continue; - } - if ((baseDeclarationFlags & 128) !== (derivedDeclarationFlags & 128)) { - continue; - } - if ((base.flags & derived.flags & 8192) || ((base.flags & 98308) && (derived.flags & 98308))) { - continue; - } - var errorMessage = void 0; - if (base.flags & 8192) { - if (derived.flags & 98304) { - errorMessage = ts.Diagnostics.Class_0_defines_instance_member_function_1_but_extended_class_2_defines_it_as_instance_member_accessor; - } - else { - ts.Debug.assert((derived.flags & 4) !== 0); - errorMessage = ts.Diagnostics.Class_0_defines_instance_member_function_1_but_extended_class_2_defines_it_as_instance_member_property; - } - } - else if (base.flags & 4) { - ts.Debug.assert((derived.flags & 8192) !== 0); - errorMessage = ts.Diagnostics.Class_0_defines_instance_member_property_1_but_extended_class_2_defines_it_as_instance_member_function; - } - else { - ts.Debug.assert((base.flags & 98304) !== 0); - ts.Debug.assert((derived.flags & 8192) !== 0); - errorMessage = ts.Diagnostics.Class_0_defines_instance_member_accessor_1_but_extended_class_2_defines_it_as_instance_member_function; - } - error(derived.valueDeclaration.name, errorMessage, typeToString(baseType), symbolToString(base), typeToString(type)); - } - } - } - function isAccessor(kind) { - return kind === 136 || kind === 137; - } - function areTypeParametersIdentical(list1, list2) { - if (!list1 && !list2) { - return true; - } - if (!list1 || !list2 || list1.length !== list2.length) { - return false; - } - for (var i = 0, len = list1.length; i < len; i++) { - var tp1 = list1[i]; - var tp2 = list2[i]; - if (tp1.name.text !== tp2.name.text) { - return false; - } - if (!tp1.constraint && !tp2.constraint) { - continue; - } - if (!tp1.constraint || !tp2.constraint) { - return false; - } - if (!isTypeIdenticalTo(getTypeFromTypeNode(tp1.constraint), getTypeFromTypeNode(tp2.constraint))) { - return false; - } - } - return true; - } - function checkInheritedPropertiesAreIdentical(type, typeNode) { - if (!type.baseTypes.length || type.baseTypes.length === 1) { - return true; - } - var seen = {}; - ts.forEach(type.declaredProperties, function (p) { seen[p.name] = { prop: p, containingType: type }; }); - var ok = true; - for (var _i = 0, _a = type.baseTypes, _n = _a.length; _i < _n; _i++) { - var base = _a[_i]; - var properties = getPropertiesOfObjectType(base); - for (var _b = 0, _c = properties.length; _b < _c; _b++) { - var prop = properties[_b]; - if (!ts.hasProperty(seen, prop.name)) { - seen[prop.name] = { prop: prop, containingType: base }; - } - else { - var existing = seen[prop.name]; - var isInheritedProperty = existing.containingType !== type; - if (isInheritedProperty && !isPropertyIdenticalTo(existing.prop, prop)) { - ok = false; - var typeName1 = typeToString(existing.containingType); - var typeName2 = typeToString(base); - var errorInfo = ts.chainDiagnosticMessages(undefined, ts.Diagnostics.Named_property_0_of_types_1_and_2_are_not_identical, symbolToString(prop), typeName1, typeName2); - errorInfo = ts.chainDiagnosticMessages(errorInfo, ts.Diagnostics.Interface_0_cannot_simultaneously_extend_types_1_and_2, typeToString(type), typeName1, typeName2); - diagnostics.add(ts.createDiagnosticForNodeFromMessageChain(typeNode, errorInfo)); - } - } - } - } - return ok; - } - function checkInterfaceDeclaration(node) { - checkGrammarDecorators(node) || checkGrammarModifiers(node) || checkGrammarInterfaceDeclaration(node); - checkTypeParameters(node.typeParameters); - if (produceDiagnostics) { - checkTypeNameIsReserved(node.name, ts.Diagnostics.Interface_name_cannot_be_0); - checkExportsOnMergedDeclarations(node); - var symbol = getSymbolOfNode(node); - var firstInterfaceDecl = ts.getDeclarationOfKind(symbol, 199); - if (symbol.declarations.length > 1) { - if (node !== firstInterfaceDecl && !areTypeParametersIdentical(firstInterfaceDecl.typeParameters, node.typeParameters)) { - error(node.name, ts.Diagnostics.All_declarations_of_an_interface_must_have_identical_type_parameters); - } - } - if (node === firstInterfaceDecl) { - var type = getDeclaredTypeOfSymbol(symbol); - if (checkInheritedPropertiesAreIdentical(type, node.name)) { - ts.forEach(type.baseTypes, function (baseType) { - checkTypeAssignableTo(type, baseType, node.name, ts.Diagnostics.Interface_0_incorrectly_extends_interface_1); - }); - checkIndexConstraints(type); - } - } - } - ts.forEach(ts.getInterfaceBaseTypeNodes(node), checkTypeReference); - ts.forEach(node.members, checkSourceElement); - if (produceDiagnostics) { - checkTypeForDuplicateIndexSignatures(node); - } - } - function checkTypeAliasDeclaration(node) { - checkGrammarDecorators(node) || checkGrammarModifiers(node); - checkTypeNameIsReserved(node.name, ts.Diagnostics.Type_alias_name_cannot_be_0); - checkSourceElement(node.type); - } - function computeEnumMemberValues(node) { - var nodeLinks = getNodeLinks(node); - if (!(nodeLinks.flags & 128)) { - var enumSymbol = getSymbolOfNode(node); - var enumType = getDeclaredTypeOfSymbol(enumSymbol); - var autoValue = 0; - var ambient = ts.isInAmbientContext(node); - var enumIsConst = ts.isConst(node); - ts.forEach(node.members, function (member) { - if (member.name.kind !== 127 && isNumericLiteralName(member.name.text)) { - error(member.name, ts.Diagnostics.An_enum_member_cannot_have_a_numeric_name); - } - var initializer = member.initializer; - if (initializer) { - autoValue = getConstantValueForEnumMemberInitializer(initializer); - if (autoValue === undefined) { - if (enumIsConst) { - error(initializer, ts.Diagnostics.In_const_enum_declarations_member_initializer_must_be_constant_expression); - } - else if (!ambient) { - checkTypeAssignableTo(checkExpression(initializer), enumType, initializer, undefined); - } - } - else if (enumIsConst) { - if (isNaN(autoValue)) { - error(initializer, ts.Diagnostics.const_enum_member_initializer_was_evaluated_to_disallowed_value_NaN); - } - else if (!isFinite(autoValue)) { - error(initializer, ts.Diagnostics.const_enum_member_initializer_was_evaluated_to_a_non_finite_value); - } - } - } - else if (ambient && !enumIsConst) { - autoValue = undefined; - } - if (autoValue !== undefined) { - getNodeLinks(member).enumMemberValue = autoValue++; - } - }); - nodeLinks.flags |= 128; - } - function getConstantValueForEnumMemberInitializer(initializer) { - return evalConstant(initializer); - function evalConstant(e) { - switch (e.kind) { - case 167: - var value = evalConstant(e.operand); - if (value === undefined) { - return undefined; - } - switch (e.operator) { - case 33: return value; - case 34: return -value; - case 47: return ~value; - } - return undefined; - case 169: - var left = evalConstant(e.left); - if (left === undefined) { - return undefined; - } - var right = evalConstant(e.right); - if (right === undefined) { - return undefined; - } - switch (e.operatorToken.kind) { - case 44: return left | right; - case 43: return left & right; - case 41: return left >> right; - case 42: return left >>> right; - case 40: return left << right; - case 45: return left ^ right; - case 35: return left * right; - case 36: return left / right; - case 33: return left + right; - case 34: return left - right; - case 37: return left % right; - } - return undefined; - case 7: - return +e.text; - case 161: - return evalConstant(e.expression); - case 65: - case 156: - case 155: - var member = initializer.parent; - var currentType = getTypeOfSymbol(getSymbolOfNode(member.parent)); - var enumType; - var propertyName; - if (e.kind === 65) { - enumType = currentType; - propertyName = e.text; - } - else { - var expression; - if (e.kind === 156) { - if (e.argumentExpression === undefined || - e.argumentExpression.kind !== 8) { - return undefined; - } - expression = e.expression; - propertyName = e.argumentExpression.text; - } - else { - expression = e.expression; - propertyName = e.name.text; - } - var current = expression; - while (current) { - if (current.kind === 65) { - break; - } - else if (current.kind === 155) { - current = current.expression; - } - else { - return undefined; - } - } - enumType = checkExpression(expression); - if (!(enumType.symbol && (enumType.symbol.flags & 384))) { - return undefined; - } - } - if (propertyName === undefined) { - return undefined; - } - var property = getPropertyOfObjectType(enumType, propertyName); - if (!property || !(property.flags & 8)) { - return undefined; - } - var propertyDecl = property.valueDeclaration; - if (member === propertyDecl) { - return undefined; - } - if (!isDefinedBefore(propertyDecl, member)) { - return undefined; - } - return getNodeLinks(propertyDecl).enumMemberValue; - } - } - } - } - function checkEnumDeclaration(node) { - if (!produceDiagnostics) { - return; - } - checkGrammarDecorators(node) || checkGrammarModifiers(node) || checkGrammarEnumDeclaration(node); - checkTypeNameIsReserved(node.name, ts.Diagnostics.Enum_name_cannot_be_0); - checkCollisionWithCapturedThisVariable(node, node.name); - checkCollisionWithRequireExportsInGeneratedCode(node, node.name); - checkExportsOnMergedDeclarations(node); - computeEnumMemberValues(node); - var enumSymbol = getSymbolOfNode(node); - var firstDeclaration = ts.getDeclarationOfKind(enumSymbol, node.kind); - if (node === firstDeclaration) { - if (enumSymbol.declarations.length > 1) { - var enumIsConst = ts.isConst(node); - ts.forEach(enumSymbol.declarations, function (decl) { - if (ts.isConstEnumDeclaration(decl) !== enumIsConst) { - error(decl.name, ts.Diagnostics.Enum_declarations_must_all_be_const_or_non_const); - } - }); - } - var seenEnumMissingInitialInitializer = false; - ts.forEach(enumSymbol.declarations, function (declaration) { - if (declaration.kind !== 201) { - return false; - } - var enumDeclaration = declaration; - if (!enumDeclaration.members.length) { - return false; - } - var firstEnumMember = enumDeclaration.members[0]; - if (!firstEnumMember.initializer) { - if (seenEnumMissingInitialInitializer) { - error(firstEnumMember.name, ts.Diagnostics.In_an_enum_with_multiple_declarations_only_one_declaration_can_omit_an_initializer_for_its_first_enum_element); - } - else { - seenEnumMissingInitialInitializer = true; - } - } - }); - } - } - function getFirstNonAmbientClassOrFunctionDeclaration(symbol) { - var declarations = symbol.declarations; - for (var _i = 0, _n = declarations.length; _i < _n; _i++) { - var declaration = declarations[_i]; - if ((declaration.kind === 198 || (declaration.kind === 197 && ts.nodeIsPresent(declaration.body))) && !ts.isInAmbientContext(declaration)) { - return declaration; - } - } - return undefined; - } - function checkModuleDeclaration(node) { - if (produceDiagnostics) { - if (!checkGrammarDecorators(node) && !checkGrammarModifiers(node)) { - if (!ts.isInAmbientContext(node) && node.name.kind === 8) { - grammarErrorOnNode(node.name, ts.Diagnostics.Only_ambient_modules_can_use_quoted_names); - } - } - checkCollisionWithCapturedThisVariable(node, node.name); - checkCollisionWithRequireExportsInGeneratedCode(node, node.name); - checkExportsOnMergedDeclarations(node); - var symbol = getSymbolOfNode(node); - if (symbol.flags & 512 - && symbol.declarations.length > 1 - && !ts.isInAmbientContext(node) - && ts.isInstantiatedModule(node, compilerOptions.preserveConstEnums)) { - var classOrFunc = getFirstNonAmbientClassOrFunctionDeclaration(symbol); - if (classOrFunc) { - if (ts.getSourceFileOfNode(node) !== ts.getSourceFileOfNode(classOrFunc)) { - error(node.name, ts.Diagnostics.A_module_declaration_cannot_be_in_a_different_file_from_a_class_or_function_with_which_it_is_merged); - } - else if (node.pos < classOrFunc.pos) { - error(node.name, ts.Diagnostics.A_module_declaration_cannot_be_located_prior_to_a_class_or_function_with_which_it_is_merged); - } - } - } - if (node.name.kind === 8) { - if (!isGlobalSourceFile(node.parent)) { - error(node.name, ts.Diagnostics.Ambient_external_modules_cannot_be_nested_in_other_modules); - } - if (isExternalModuleNameRelative(node.name.text)) { - error(node.name, ts.Diagnostics.Ambient_external_module_declaration_cannot_specify_relative_module_name); - } - } - } - checkSourceElement(node.body); - } - function getFirstIdentifier(node) { - while (node.kind === 126) { - node = node.left; - } - return node; - } - function checkExternalImportOrExportDeclaration(node) { - var moduleName = ts.getExternalModuleName(node); - if (ts.getFullWidth(moduleName) !== 0 && moduleName.kind !== 8) { - error(moduleName, ts.Diagnostics.String_literal_expected); - return false; - } - var inAmbientExternalModule = node.parent.kind === 203 && node.parent.parent.name.kind === 8; - if (node.parent.kind !== 224 && !inAmbientExternalModule) { - error(moduleName, node.kind === 212 ? - ts.Diagnostics.Export_declarations_are_not_permitted_in_an_internal_module : - ts.Diagnostics.Import_declarations_in_an_internal_module_cannot_reference_an_external_module); - return false; - } - if (inAmbientExternalModule && isExternalModuleNameRelative(moduleName.text)) { - error(node, ts.Diagnostics.Import_or_export_declaration_in_an_ambient_external_module_declaration_cannot_reference_external_module_through_relative_external_module_name); - return false; - } - return true; - } - function checkAliasSymbol(node) { - var symbol = getSymbolOfNode(node); - var target = resolveAlias(symbol); - if (target !== unknownSymbol) { - var excludedMeanings = (symbol.flags & 107455 ? 107455 : 0) | - (symbol.flags & 793056 ? 793056 : 0) | - (symbol.flags & 1536 ? 1536 : 0); - if (target.flags & excludedMeanings) { - var message = node.kind === 214 ? - ts.Diagnostics.Export_declaration_conflicts_with_exported_declaration_of_0 : - ts.Diagnostics.Import_declaration_conflicts_with_local_declaration_of_0; - error(node, message, symbolToString(symbol)); - } - } - } - function checkImportBinding(node) { - checkCollisionWithCapturedThisVariable(node, node.name); - checkCollisionWithRequireExportsInGeneratedCode(node, node.name); - checkAliasSymbol(node); - } - function checkImportDeclaration(node) { - if (!checkGrammarDecorators(node) && !checkGrammarModifiers(node) && (node.flags & 499)) { - grammarErrorOnFirstToken(node, ts.Diagnostics.An_import_declaration_cannot_have_modifiers); - } - if (checkExternalImportOrExportDeclaration(node)) { - var importClause = node.importClause; - if (importClause) { - if (importClause.name) { - checkImportBinding(importClause); - } - if (importClause.namedBindings) { - if (importClause.namedBindings.kind === 208) { - checkImportBinding(importClause.namedBindings); - } - else { - ts.forEach(importClause.namedBindings.elements, checkImportBinding); - } - } - } - } - } - function checkImportEqualsDeclaration(node) { - checkGrammarDecorators(node) || checkGrammarModifiers(node); - if (ts.isInternalModuleImportEqualsDeclaration(node) || checkExternalImportOrExportDeclaration(node)) { - checkImportBinding(node); - if (node.flags & 1) { - markExportAsReferenced(node); - } - if (ts.isInternalModuleImportEqualsDeclaration(node)) { - var target = resolveAlias(getSymbolOfNode(node)); - if (target !== unknownSymbol) { - if (target.flags & 107455) { - var moduleName = getFirstIdentifier(node.moduleReference); - if (!(resolveEntityName(moduleName, 107455 | 1536).flags & 1536)) { - error(moduleName, ts.Diagnostics.Module_0_is_hidden_by_a_local_declaration_with_the_same_name, ts.declarationNameToString(moduleName)); - } - } - if (target.flags & 793056) { - checkTypeNameIsReserved(node.name, ts.Diagnostics.Import_name_cannot_be_0); - } - } - } - else { - if (languageVersion >= 2) { - grammarErrorOnNode(node, ts.Diagnostics.Import_assignment_cannot_be_used_when_targeting_ECMAScript_6_or_higher_Consider_using_import_Asterisk_as_ns_from_mod_import_a_from_mod_or_import_d_from_mod_instead); - } - } - } - } - function checkExportDeclaration(node) { - if (!checkGrammarDecorators(node) && !checkGrammarModifiers(node) && (node.flags & 499)) { - grammarErrorOnFirstToken(node, ts.Diagnostics.An_export_declaration_cannot_have_modifiers); - } - if (!node.moduleSpecifier || checkExternalImportOrExportDeclaration(node)) { - if (node.exportClause) { - ts.forEach(node.exportClause.elements, checkExportSpecifier); - var inAmbientExternalModule = node.parent.kind === 203 && node.parent.parent.name.kind === 8; - if (node.parent.kind !== 224 && !inAmbientExternalModule) { - error(node, ts.Diagnostics.Export_declarations_are_not_permitted_in_an_internal_module); - } - } - else { - var moduleSymbol = resolveExternalModuleName(node, node.moduleSpecifier); - if (moduleSymbol && moduleSymbol.exports["export="]) { - error(node.moduleSpecifier, ts.Diagnostics.External_module_0_uses_export_and_cannot_be_used_with_export_Asterisk, symbolToString(moduleSymbol)); - } - } - } - } - function checkExportSpecifier(node) { - checkAliasSymbol(node); - if (!node.parent.parent.moduleSpecifier) { - markExportAsReferenced(node); - } - } - function checkExportAssignment(node) { - var container = node.parent.kind === 224 ? node.parent : node.parent.parent; - if (container.kind === 202 && container.name.kind === 65) { - error(node, ts.Diagnostics.An_export_assignment_cannot_be_used_in_an_internal_module); - return; - } - if (!checkGrammarDecorators(node) && !checkGrammarModifiers(node) && (node.flags & 499)) { - grammarErrorOnFirstToken(node, ts.Diagnostics.An_export_assignment_cannot_have_modifiers); - } - if (node.expression) { - if (node.expression.kind === 65) { - markExportAsReferenced(node); - } - else { - checkExpressionCached(node.expression); - } - } - if (node.type) { - checkSourceElement(node.type); - if (!ts.isInAmbientContext(node)) { - grammarErrorOnFirstToken(node.type, ts.Diagnostics.A_type_annotation_on_an_export_statement_is_only_allowed_in_an_ambient_external_module_declaration); - } - } - checkExternalModuleExports(container); - if (node.isExportEquals && languageVersion >= 2) { - grammarErrorOnNode(node, ts.Diagnostics.Export_assignment_cannot_be_used_when_targeting_ECMAScript_6_or_higher_Consider_using_export_default_instead); - } - } - function getModuleStatements(node) { - if (node.kind === 224) { - return node.statements; - } - if (node.kind === 202 && node.body.kind === 203) { - return node.body.statements; - } - return emptyArray; - } - function hasExportedMembers(moduleSymbol) { - for (var id in moduleSymbol.exports) { - if (id !== "export=") { - return true; - } - } - return false; - } - function checkExternalModuleExports(node) { - var moduleSymbol = getSymbolOfNode(node); - var links = getSymbolLinks(moduleSymbol); - if (!links.exportsChecked) { - var exportEqualsSymbol = moduleSymbol.exports["export="]; - if (exportEqualsSymbol && hasExportedMembers(moduleSymbol)) { - var declaration = getDeclarationOfAliasSymbol(exportEqualsSymbol) || exportEqualsSymbol.valueDeclaration; - error(declaration, ts.Diagnostics.An_export_assignment_cannot_be_used_in_a_module_with_other_exported_elements); - } - links.exportsChecked = true; - } - } - function checkSourceElement(node) { - if (!node) - return; - switch (node.kind) { - case 128: - return checkTypeParameter(node); - case 129: - return checkParameter(node); - case 132: - case 131: - return checkPropertyDeclaration(node); - case 142: - case 143: - case 138: - case 139: - return checkSignatureDeclaration(node); - case 140: - return checkSignatureDeclaration(node); - case 134: - case 133: - return checkMethodDeclaration(node); - case 135: - return checkConstructorDeclaration(node); - case 136: - case 137: - return checkAccessorDeclaration(node); - case 141: - return checkTypeReference(node); - case 144: - return checkTypeQuery(node); - case 145: - return checkTypeLiteral(node); - case 146: - return checkArrayType(node); - case 147: - return checkTupleType(node); - case 148: - return checkUnionType(node); - case 149: - return checkSourceElement(node.type); - case 197: - return checkFunctionDeclaration(node); - case 176: - case 203: - return checkBlock(node); - case 177: - return checkVariableStatement(node); - case 179: - return checkExpressionStatement(node); - case 180: - return checkIfStatement(node); - case 181: - return checkDoStatement(node); - case 182: - return checkWhileStatement(node); - case 183: - return checkForStatement(node); - case 184: - return checkForInStatement(node); - case 185: - return checkForOfStatement(node); - case 186: - case 187: - return checkBreakOrContinueStatement(node); - case 188: - return checkReturnStatement(node); - case 189: - return checkWithStatement(node); - case 190: - return checkSwitchStatement(node); - case 191: - return checkLabeledStatement(node); - case 192: - return checkThrowStatement(node); - case 193: - return checkTryStatement(node); - case 195: - return checkVariableDeclaration(node); - case 152: - return checkBindingElement(node); - case 198: - return checkClassDeclaration(node); - case 199: - return checkInterfaceDeclaration(node); - case 200: - return checkTypeAliasDeclaration(node); - case 201: - return checkEnumDeclaration(node); - case 202: - return checkModuleDeclaration(node); - case 206: - return checkImportDeclaration(node); - case 205: - return checkImportEqualsDeclaration(node); - case 212: - return checkExportDeclaration(node); - case 211: - return checkExportAssignment(node); - case 178: - checkGrammarStatementInAmbientContext(node); - return; - case 194: - checkGrammarStatementInAmbientContext(node); - return; - case 215: - return checkMissingDeclaration(node); - } - } - function checkFunctionExpressionBodies(node) { - switch (node.kind) { - case 162: - case 163: - ts.forEach(node.parameters, checkFunctionExpressionBodies); - checkFunctionExpressionOrObjectLiteralMethodBody(node); - break; - case 134: - case 133: - ts.forEach(node.parameters, checkFunctionExpressionBodies); - if (ts.isObjectLiteralMethod(node)) { - checkFunctionExpressionOrObjectLiteralMethodBody(node); - } - break; - case 135: - case 136: - case 137: - case 197: - ts.forEach(node.parameters, checkFunctionExpressionBodies); - break; - case 189: - checkFunctionExpressionBodies(node.expression); - break; - case 129: - case 132: - case 131: - case 150: - case 151: - case 152: - case 153: - case 154: - case 221: - case 155: - case 156: - case 157: - case 158: - case 159: - case 171: - case 175: - case 160: - case 161: - case 165: - case 166: - case 164: - case 167: - case 168: - case 169: - case 170: - case 173: - case 176: - case 203: - case 177: - case 179: - case 180: - case 181: - case 182: - case 183: - case 184: - case 185: - case 186: - case 187: - case 188: - case 190: - case 204: - case 217: - case 218: - case 191: - case 192: - case 193: - case 220: - case 195: - case 196: - case 198: - case 201: - case 223: - case 211: - case 224: - ts.forEachChild(node, checkFunctionExpressionBodies); - break; - } - } - function checkSourceFile(node) { - var start = new Date().getTime(); - checkSourceFileWorker(node); - ts.checkTime += new Date().getTime() - start; - } - function checkSourceFileWorker(node) { - var links = getNodeLinks(node); - if (!(links.flags & 1)) { - checkGrammarSourceFile(node); - emitExtends = false; - potentialThisCollisions.length = 0; - ts.forEach(node.statements, checkSourceElement); - checkFunctionExpressionBodies(node); - if (ts.isExternalModule(node)) { - checkExternalModuleExports(node); - } - if (potentialThisCollisions.length) { - ts.forEach(potentialThisCollisions, checkIfThisIsCapturedInEnclosingScope); - potentialThisCollisions.length = 0; - } - if (emitExtends) { - links.flags |= 8; - } - if (emitDecorate) { - links.flags |= 512; - } - links.flags |= 1; - } - } - function getDiagnostics(sourceFile) { - throwIfNonDiagnosticsProducing(); - if (sourceFile) { - checkSourceFile(sourceFile); - return diagnostics.getDiagnostics(sourceFile.fileName); - } - ts.forEach(host.getSourceFiles(), checkSourceFile); - return diagnostics.getDiagnostics(); - } - function getGlobalDiagnostics() { - throwIfNonDiagnosticsProducing(); - return diagnostics.getGlobalDiagnostics(); - } - function throwIfNonDiagnosticsProducing() { - if (!produceDiagnostics) { - throw new Error("Trying to get diagnostics from a type checker that does not produce them."); - } - } - function isInsideWithStatementBody(node) { - if (node) { - while (node.parent) { - if (node.parent.kind === 189 && node.parent.statement === node) { - return true; - } - node = node.parent; - } - } - return false; - } - function getSymbolsInScope(location, meaning) { - var symbols = {}; - var memberFlags = 0; - if (isInsideWithStatementBody(location)) { - return []; - } - populateSymbols(); - return symbolsToArray(symbols); - function populateSymbols() { - while (location) { - if (location.locals && !isGlobalSourceFile(location)) { - copySymbols(location.locals, meaning); - } - switch (location.kind) { - case 224: - if (!ts.isExternalModule(location)) { - break; - } - case 202: - copySymbols(getSymbolOfNode(location).exports, meaning & 8914931); - break; - case 201: - copySymbols(getSymbolOfNode(location).exports, meaning & 8); - break; - case 198: - case 199: - if (!(memberFlags & 128)) { - copySymbols(getSymbolOfNode(location).members, meaning & 793056); - } - break; - case 162: - if (location.name) { - copySymbol(location.symbol, meaning); - } - break; - } - memberFlags = location.flags; - location = location.parent; - } - copySymbols(globals, meaning); - } - function copySymbol(symbol, meaning) { - if (symbol.flags & meaning) { - var id = symbol.name; - if (!isReservedMemberName(id) && !ts.hasProperty(symbols, id)) { - symbols[id] = symbol; - } - } - } - function copySymbols(source, meaning) { - if (meaning) { - for (var id in source) { - if (ts.hasProperty(source, id)) { - copySymbol(source[id], meaning); - } - } - } - } - if (isInsideWithStatementBody(location)) { - return []; - } - while (location) { - if (location.locals && !isGlobalSourceFile(location)) { - copySymbols(location.locals, meaning); - } - switch (location.kind) { - case 224: - if (!ts.isExternalModule(location)) - break; - case 202: - copySymbols(getSymbolOfNode(location).exports, meaning & 8914931); - break; - case 201: - copySymbols(getSymbolOfNode(location).exports, meaning & 8); - break; - case 198: - case 199: - if (!(memberFlags & 128)) { - copySymbols(getSymbolOfNode(location).members, meaning & 793056); - } - break; - case 162: - if (location.name) { - copySymbol(location.symbol, meaning); - } - break; - } - memberFlags = location.flags; - location = location.parent; - } - copySymbols(globals, meaning); - return symbolsToArray(symbols); - } - function isTypeDeclarationName(name) { - return name.kind == 65 && - isTypeDeclaration(name.parent) && - name.parent.name === name; - } - function isTypeDeclaration(node) { - switch (node.kind) { - case 128: - case 198: - case 199: - case 200: - case 201: - return true; - } - } - function isTypeReferenceIdentifier(entityName) { - var node = entityName; - while (node.parent && node.parent.kind === 126) - node = node.parent; - return node.parent && node.parent.kind === 141; - } - function isTypeNode(node) { - if (141 <= node.kind && node.kind <= 149) { - return true; - } - switch (node.kind) { - case 112: - case 119: - case 121: - case 113: - case 122: - return true; - case 99: - return node.parent.kind !== 166; - case 8: - return node.parent.kind === 129; - case 65: - if (node.parent.kind === 126 && node.parent.right === node) { - node = node.parent; - } - case 126: - ts.Debug.assert(node.kind === 65 || node.kind === 126, "'node' was expected to be a qualified name or identifier in 'isTypeNode'."); - var parent_5 = node.parent; - if (parent_5.kind === 144) { - return false; - } - if (141 <= parent_5.kind && parent_5.kind <= 149) { - return true; - } - switch (parent_5.kind) { - case 128: - return node === parent_5.constraint; - case 132: - case 131: - case 129: - case 195: - return node === parent_5.type; - case 197: - case 162: - case 163: - case 135: - case 134: - case 133: - case 136: - case 137: - return node === parent_5.type; - case 138: - case 139: - case 140: - return node === parent_5.type; - case 160: - return node === parent_5.type; - case 157: - case 158: - return parent_5.typeArguments && ts.indexOf(parent_5.typeArguments, node) >= 0; - case 159: - return false; - } - } - return false; - } - function getLeftSideOfImportEqualsOrExportAssignment(nodeOnRightSide) { - while (nodeOnRightSide.parent.kind === 126) { - nodeOnRightSide = nodeOnRightSide.parent; - } - if (nodeOnRightSide.parent.kind === 205) { - return nodeOnRightSide.parent.moduleReference === nodeOnRightSide && nodeOnRightSide.parent; - } - if (nodeOnRightSide.parent.kind === 211) { - return nodeOnRightSide.parent.expression === nodeOnRightSide && nodeOnRightSide.parent; - } - return undefined; - } - function isInRightSideOfImportOrExportAssignment(node) { - return getLeftSideOfImportEqualsOrExportAssignment(node) !== undefined; - } - function isRightSideOfQualifiedNameOrPropertyAccess(node) { - return (node.parent.kind === 126 && node.parent.right === node) || - (node.parent.kind === 155 && node.parent.name === node); - } - function getSymbolOfEntityNameOrPropertyAccessExpression(entityName) { - if (ts.isDeclarationName(entityName)) { - return getSymbolOfNode(entityName.parent); - } - if (entityName.parent.kind === 211) { - return resolveEntityName(entityName, 107455 | 793056 | 1536 | 8388608); - } - if (entityName.kind !== 155) { - if (isInRightSideOfImportOrExportAssignment(entityName)) { - return getSymbolOfPartOfRightHandSideOfImportEquals(entityName); - } - } - if (isRightSideOfQualifiedNameOrPropertyAccess(entityName)) { - entityName = entityName.parent; - } - if (ts.isExpression(entityName)) { - if (ts.getFullWidth(entityName) === 0) { - return undefined; - } - if (entityName.kind === 65) { - var meaning = 107455 | 8388608; - return resolveEntityName(entityName, meaning); - } - else if (entityName.kind === 155) { - var symbol = getNodeLinks(entityName).resolvedSymbol; - if (!symbol) { - checkPropertyAccessExpression(entityName); - } - return getNodeLinks(entityName).resolvedSymbol; - } - else if (entityName.kind === 126) { - var symbol = getNodeLinks(entityName).resolvedSymbol; - if (!symbol) { - checkQualifiedName(entityName); - } - return getNodeLinks(entityName).resolvedSymbol; - } - } - else if (isTypeReferenceIdentifier(entityName)) { - var meaning = entityName.parent.kind === 141 ? 793056 : 1536; - meaning |= 8388608; - return resolveEntityName(entityName, meaning); - } - return undefined; - } - function getSymbolInfo(node) { - if (isInsideWithStatementBody(node)) { - return undefined; - } - if (ts.isDeclarationName(node)) { - return getSymbolOfNode(node.parent); - } - if (node.kind === 65 && isInRightSideOfImportOrExportAssignment(node)) { - return node.parent.kind === 211 - ? getSymbolOfEntityNameOrPropertyAccessExpression(node) - : getSymbolOfPartOfRightHandSideOfImportEquals(node); - } - switch (node.kind) { - case 65: - case 155: - case 126: - return getSymbolOfEntityNameOrPropertyAccessExpression(node); - case 93: - case 91: - var type = checkExpression(node); - return type.symbol; - case 114: - var constructorDeclaration = node.parent; - if (constructorDeclaration && constructorDeclaration.kind === 135) { - return constructorDeclaration.parent.symbol; - } - return undefined; - case 8: - var moduleName; - if ((ts.isExternalModuleImportEqualsDeclaration(node.parent.parent) && - ts.getExternalModuleImportEqualsDeclarationExpression(node.parent.parent) === node) || - ((node.parent.kind === 206 || node.parent.kind === 212) && - node.parent.moduleSpecifier === node)) { - return resolveExternalModuleName(node, node); - } - case 7: - if (node.parent.kind == 156 && node.parent.argumentExpression === node) { - var objectType = checkExpression(node.parent.expression); - if (objectType === unknownType) - return undefined; - var apparentType = getApparentType(objectType); - if (apparentType === unknownType) - return undefined; - return getPropertyOfType(apparentType, node.text); - } - break; - } - return undefined; - } - function getShorthandAssignmentValueSymbol(location) { - if (location && location.kind === 222) { - return resolveEntityName(location.name, 107455); - } - return undefined; - } - function getTypeOfNode(node) { - if (isInsideWithStatementBody(node)) { - return unknownType; - } - if (ts.isExpression(node)) { - return getTypeOfExpression(node); - } - if (isTypeNode(node)) { - return getTypeFromTypeNode(node); - } - if (isTypeDeclaration(node)) { - var symbol = getSymbolOfNode(node); - return getDeclaredTypeOfSymbol(symbol); - } - if (isTypeDeclarationName(node)) { - var symbol = getSymbolInfo(node); - return symbol && getDeclaredTypeOfSymbol(symbol); - } - if (ts.isDeclaration(node)) { - var symbol = getSymbolOfNode(node); - return getTypeOfSymbol(symbol); - } - if (ts.isDeclarationName(node)) { - var symbol = getSymbolInfo(node); - return symbol && getTypeOfSymbol(symbol); - } - if (isInRightSideOfImportOrExportAssignment(node)) { - var symbol = getSymbolInfo(node); - var declaredType = symbol && getDeclaredTypeOfSymbol(symbol); - return declaredType !== unknownType ? declaredType : getTypeOfSymbol(symbol); - } - return unknownType; - } - function getTypeOfExpression(expr) { - if (isRightSideOfQualifiedNameOrPropertyAccess(expr)) { - expr = expr.parent; - } - return checkExpression(expr); - } - function getAugmentedPropertiesOfType(type) { - type = getApparentType(type); - var propsByName = createSymbolTable(getPropertiesOfType(type)); - if (getSignaturesOfType(type, 0).length || getSignaturesOfType(type, 1).length) { - ts.forEach(getPropertiesOfType(globalFunctionType), function (p) { - if (!ts.hasProperty(propsByName, p.name)) { - propsByName[p.name] = p; - } - }); - } - return getNamedMembers(propsByName); - } - function getRootSymbols(symbol) { - if (symbol.flags & 268435456) { - var symbols = []; - var name_10 = symbol.name; - ts.forEach(getSymbolLinks(symbol).unionType.types, function (t) { - symbols.push(getPropertyOfType(t, name_10)); - }); - return symbols; - } - else if (symbol.flags & 67108864) { - var target = getSymbolLinks(symbol).target; - if (target) { - return [target]; - } - } - return [symbol]; - } - function isExternalModuleSymbol(symbol) { - return symbol.flags & 512 && symbol.declarations.length === 1 && symbol.declarations[0].kind === 224; - } - function getAliasNameSubstitution(symbol, getGeneratedNameForNode) { - if (languageVersion >= 2) { - return undefined; - } - var node = getDeclarationOfAliasSymbol(symbol); - if (node) { - if (node.kind === 207) { - return getGeneratedNameForNode(node.parent) + ".default"; - } - if (node.kind === 210) { - var moduleName = getGeneratedNameForNode(node.parent.parent.parent); - var propertyName = node.propertyName || node.name; - return moduleName + "." + ts.unescapeIdentifier(propertyName.text); - } - } - } - function getExportNameSubstitution(symbol, location, getGeneratedNameForNode) { - if (isExternalModuleSymbol(symbol.parent)) { - if (languageVersion >= 2) { - return undefined; - } - return "exports." + ts.unescapeIdentifier(symbol.name); - } - var node = location; - var containerSymbol = getParentOfSymbol(symbol); - while (node) { - if ((node.kind === 202 || node.kind === 201) && getSymbolOfNode(node) === containerSymbol) { - return getGeneratedNameForNode(node) + "." + ts.unescapeIdentifier(symbol.name); - } - node = node.parent; - } - } - function getExpressionNameSubstitution(node, getGeneratedNameForNode) { - var symbol = getNodeLinks(node).resolvedSymbol || (ts.isDeclarationName(node) ? getSymbolOfNode(node.parent) : undefined); - if (symbol) { - if (symbol.parent) { - return getExportNameSubstitution(symbol, node.parent, getGeneratedNameForNode); - } - var exportSymbol = getExportSymbolOfValueSymbolIfExported(symbol); - if (symbol !== exportSymbol && !(exportSymbol.flags & 944)) { - return getExportNameSubstitution(exportSymbol, node.parent, getGeneratedNameForNode); - } - if (symbol.flags & 8388608) { - return getAliasNameSubstitution(symbol, getGeneratedNameForNode); - } - } - } - function isValueAliasDeclaration(node) { - switch (node.kind) { - case 205: - case 207: - case 208: - case 210: - case 214: - return isAliasResolvedToValue(getSymbolOfNode(node)); - case 212: - var exportClause = node.exportClause; - return exportClause && ts.forEach(exportClause.elements, isValueAliasDeclaration); - case 211: - return node.expression && node.expression.kind === 65 ? isAliasResolvedToValue(getSymbolOfNode(node)) : true; - } - return false; - } - function isTopLevelValueImportEqualsWithEntityName(node) { - if (node.parent.kind !== 224 || !ts.isInternalModuleImportEqualsDeclaration(node)) { - return false; - } - return isAliasResolvedToValue(getSymbolOfNode(node)); - } - function isAliasResolvedToValue(symbol) { - var target = resolveAlias(symbol); - return target !== unknownSymbol && target.flags & 107455 && !isConstEnumOrConstEnumOnlyModule(target); - } - function isConstEnumOrConstEnumOnlyModule(s) { - return isConstEnumSymbol(s) || s.constEnumOnlyModule; - } - function isReferencedAliasDeclaration(node, checkChildren) { - if (ts.isAliasSymbolDeclaration(node)) { - var symbol = getSymbolOfNode(node); - if (getSymbolLinks(symbol).referenced) { - return true; - } - } - if (checkChildren) { - return ts.forEachChild(node, function (node) { return isReferencedAliasDeclaration(node, checkChildren); }); - } - return false; - } - function isImplementationOfOverload(node) { - if (ts.nodeIsPresent(node.body)) { - var symbol = getSymbolOfNode(node); - var signaturesOfSymbol = getSignaturesOfSymbol(symbol); - return signaturesOfSymbol.length > 1 || - (signaturesOfSymbol.length === 1 && signaturesOfSymbol[0].declaration !== node); - } - return false; - } - function getNodeCheckFlags(node) { - return getNodeLinks(node).flags; - } - function getEnumMemberValue(node) { - computeEnumMemberValues(node.parent); - return getNodeLinks(node).enumMemberValue; - } - function getConstantValue(node) { - if (node.kind === 223) { - return getEnumMemberValue(node); - } - var symbol = getNodeLinks(node).resolvedSymbol; - if (symbol && (symbol.flags & 8)) { - if (ts.isConstEnumDeclaration(symbol.valueDeclaration.parent)) { - return getEnumMemberValue(symbol.valueDeclaration); - } - } - return undefined; - } - function writeTypeOfDeclaration(declaration, enclosingDeclaration, flags, writer) { - var symbol = getSymbolOfNode(declaration); - var type = symbol && !(symbol.flags & (2048 | 131072)) - ? getTypeOfSymbol(symbol) - : unknownType; - getSymbolDisplayBuilder().buildTypeDisplay(type, writer, enclosingDeclaration, flags); - } - function writeReturnTypeOfSignatureDeclaration(signatureDeclaration, enclosingDeclaration, flags, writer) { - var signature = getSignatureFromDeclaration(signatureDeclaration); - getSymbolDisplayBuilder().buildTypeDisplay(getReturnTypeOfSignature(signature), writer, enclosingDeclaration, flags); - } - function writeTypeOfExpression(expr, enclosingDeclaration, flags, writer) { - var type = getTypeOfExpression(expr); - getSymbolDisplayBuilder().buildTypeDisplay(type, writer, enclosingDeclaration, flags); - } - function hasGlobalName(name) { - return ts.hasProperty(globals, name); - } - function resolvesToSomeValue(location, name) { - ts.Debug.assert(!ts.nodeIsSynthesized(location), "resolvesToSomeValue called with a synthesized location"); - return !!resolveName(location, name, 107455, undefined, undefined); - } - function getBlockScopedVariableId(n) { - ts.Debug.assert(!ts.nodeIsSynthesized(n)); - var isVariableDeclarationOrBindingElement = n.parent.kind === 152 || (n.parent.kind === 195 && n.parent.name === n); - var symbol = (isVariableDeclarationOrBindingElement ? getSymbolOfNode(n.parent) : undefined) || - getNodeLinks(n).resolvedSymbol || - resolveName(n, n.text, 107455 | 8388608, undefined, undefined); - var isLetOrConst = symbol && - (symbol.flags & 2) && - symbol.valueDeclaration.parent.kind !== 220; - if (isLetOrConst) { - getSymbolLinks(symbol); - return symbol.id; - } - return undefined; - } - function instantiateSingleCallFunctionType(functionType, typeArguments) { - if (functionType === unknownType) { - return unknownType; - } - var signature = getSingleCallSignature(functionType); - if (!signature) { - return unknownType; - } - var instantiatedSignature = getSignatureInstantiation(signature, typeArguments); - return getOrCreateTypeFromSignature(instantiatedSignature); - } - function createResolver() { - return { - getExpressionNameSubstitution: getExpressionNameSubstitution, - isValueAliasDeclaration: isValueAliasDeclaration, - hasGlobalName: hasGlobalName, - isReferencedAliasDeclaration: isReferencedAliasDeclaration, - getNodeCheckFlags: getNodeCheckFlags, - isTopLevelValueImportEqualsWithEntityName: isTopLevelValueImportEqualsWithEntityName, - isDeclarationVisible: isDeclarationVisible, - isImplementationOfOverload: isImplementationOfOverload, - writeTypeOfDeclaration: writeTypeOfDeclaration, - writeReturnTypeOfSignatureDeclaration: writeReturnTypeOfSignatureDeclaration, - writeTypeOfExpression: writeTypeOfExpression, - isSymbolAccessible: isSymbolAccessible, - isEntityNameVisible: isEntityNameVisible, - getConstantValue: getConstantValue, - resolvesToSomeValue: resolvesToSomeValue, - collectLinkedAliases: collectLinkedAliases, - getBlockScopedVariableId: getBlockScopedVariableId - }; - } - function initializeTypeChecker() { - ts.forEach(host.getSourceFiles(), function (file) { - ts.bindSourceFile(file); - }); - ts.forEach(host.getSourceFiles(), function (file) { - if (!ts.isExternalModule(file)) { - mergeSymbolTable(globals, file.locals); - } - }); - getSymbolLinks(undefinedSymbol).type = undefinedType; - getSymbolLinks(argumentsSymbol).type = getGlobalType("IArguments"); - getSymbolLinks(unknownSymbol).type = unknownType; - globals[undefinedSymbol.name] = undefinedSymbol; - globalArraySymbol = getGlobalTypeSymbol("Array"); - globalArrayType = getTypeOfGlobalSymbol(globalArraySymbol, 1); - globalObjectType = getGlobalType("Object"); - globalFunctionType = getGlobalType("Function"); - globalStringType = getGlobalType("String"); - globalNumberType = getGlobalType("Number"); - globalBooleanType = getGlobalType("Boolean"); - globalRegExpType = getGlobalType("RegExp"); - globalTypedPropertyDescriptorType = getTypeOfGlobalSymbol(getGlobalTypeSymbol("TypedPropertyDescriptor"), 1); - globalClassDecoratorType = getGlobalType("ClassDecorator"); - globalPropertyDecoratorType = getGlobalType("PropertyDecorator"); - globalMethodDecoratorType = getGlobalType("MethodDecorator"); - globalParameterDecoratorType = getGlobalType("ParameterDecorator"); - if (languageVersion >= 2) { - globalTemplateStringsArrayType = getGlobalType("TemplateStringsArray"); - globalESSymbolType = getGlobalType("Symbol"); - globalESSymbolConstructorSymbol = getGlobalValueSymbol("Symbol"); - globalIterableType = getGlobalType("Iterable", 1); - } - else { - globalTemplateStringsArrayType = unknownType; - globalESSymbolType = createAnonymousType(undefined, emptySymbols, emptyArray, emptyArray, undefined, undefined); - globalESSymbolConstructorSymbol = undefined; - } - anyArrayType = createArrayType(anyType); - } - function checkGrammarDecorators(node) { - if (!node.decorators) { - return false; - } - if (!ts.nodeCanBeDecorated(node)) { - return grammarErrorOnNode(node, ts.Diagnostics.Decorators_are_not_valid_here); - } - else if (languageVersion < 1) { - return grammarErrorOnNode(node, ts.Diagnostics.Decorators_are_only_available_when_targeting_ECMAScript_5_and_higher); - } - else if (node.kind === 136 || node.kind === 137) { - var accessors = ts.getAllAccessorDeclarations(node.parent.members, node); - if (accessors.firstAccessor.decorators && node === accessors.secondAccessor) { - return grammarErrorOnNode(node, ts.Diagnostics.Decorators_cannot_be_applied_to_multiple_get_Slashset_accessors_of_the_same_name); - } - } - return false; - } - function checkGrammarModifiers(node) { - switch (node.kind) { - case 136: - case 137: - case 135: - case 132: - case 131: - case 134: - case 133: - case 140: - case 198: - case 199: - case 202: - case 201: - case 177: - case 197: - case 200: - case 206: - case 205: - case 212: - case 211: - case 129: - break; - default: - return false; - } - if (!node.modifiers) { - return; - } - var lastStatic, lastPrivate, lastProtected, lastDeclare; - var flags = 0; - for (var _i = 0, _a = node.modifiers, _n = _a.length; _i < _n; _i++) { - var modifier = _a[_i]; - switch (modifier.kind) { - case 109: - case 108: - case 107: - var text = void 0; - if (modifier.kind === 109) { - text = "public"; - } - else if (modifier.kind === 108) { - text = "protected"; - lastProtected = modifier; - } - else { - text = "private"; - lastPrivate = modifier; - } - if (flags & 112) { - return grammarErrorOnNode(modifier, ts.Diagnostics.Accessibility_modifier_already_seen); - } - else if (flags & 128) { - return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_must_precede_1_modifier, text, "static"); - } - else if (node.parent.kind === 203 || node.parent.kind === 224) { - return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_cannot_appear_on_a_module_element, text); - } - flags |= ts.modifierToFlag(modifier.kind); - break; - case 110: - if (flags & 128) { - return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_already_seen, "static"); - } - else if (node.parent.kind === 203 || node.parent.kind === 224) { - return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_cannot_appear_on_a_module_element, "static"); - } - else if (node.kind === 129) { - return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_cannot_appear_on_a_parameter, "static"); - } - flags |= 128; - lastStatic = modifier; - break; - case 78: - if (flags & 1) { - return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_already_seen, "export"); - } - else if (flags & 2) { - return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_must_precede_1_modifier, "export", "declare"); - } - else if (node.parent.kind === 198) { - return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_cannot_appear_on_a_class_element, "export"); - } - else if (node.kind === 129) { - return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_cannot_appear_on_a_parameter, "export"); - } - flags |= 1; - break; - case 115: - if (flags & 2) { - return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_already_seen, "declare"); - } - else if (node.parent.kind === 198) { - return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_cannot_appear_on_a_class_element, "declare"); - } - else if (node.kind === 129) { - return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_cannot_appear_on_a_parameter, "declare"); - } - else if (ts.isInAmbientContext(node.parent) && node.parent.kind === 203) { - return grammarErrorOnNode(modifier, ts.Diagnostics.A_declare_modifier_cannot_be_used_in_an_already_ambient_context); - } - flags |= 2; - lastDeclare = modifier; - break; - } - } - if (node.kind === 135) { - if (flags & 128) { - return grammarErrorOnNode(lastStatic, ts.Diagnostics._0_modifier_cannot_appear_on_a_constructor_declaration, "static"); - } - else if (flags & 64) { - return grammarErrorOnNode(lastProtected, ts.Diagnostics._0_modifier_cannot_appear_on_a_constructor_declaration, "protected"); - } - else if (flags & 32) { - return grammarErrorOnNode(lastPrivate, ts.Diagnostics._0_modifier_cannot_appear_on_a_constructor_declaration, "private"); - } - } - else if ((node.kind === 206 || node.kind === 205) && flags & 2) { - return grammarErrorOnNode(lastDeclare, ts.Diagnostics.A_declare_modifier_cannot_be_used_with_an_import_declaration, "declare"); - } - else if (node.kind === 199 && flags & 2) { - return grammarErrorOnNode(lastDeclare, ts.Diagnostics.A_declare_modifier_cannot_be_used_with_an_interface_declaration, "declare"); - } - else if (node.kind === 129 && (flags & 112) && ts.isBindingPattern(node.name)) { - return grammarErrorOnNode(node, ts.Diagnostics.A_parameter_property_may_not_be_a_binding_pattern); - } - } - function checkGrammarForDisallowedTrailingComma(list) { - if (list && list.hasTrailingComma) { - var start = list.end - ",".length; - var end = list.end; - var sourceFile = ts.getSourceFileOfNode(list[0]); - return grammarErrorAtPos(sourceFile, start, end - start, ts.Diagnostics.Trailing_comma_not_allowed); - } - } - function checkGrammarTypeParameterList(node, typeParameters, file) { - if (checkGrammarForDisallowedTrailingComma(typeParameters)) { - return true; - } - if (typeParameters && typeParameters.length === 0) { - var start = typeParameters.pos - "<".length; - var end = ts.skipTrivia(file.text, typeParameters.end) + ">".length; - return grammarErrorAtPos(file, start, end - start, ts.Diagnostics.Type_parameter_list_cannot_be_empty); - } - } - function checkGrammarParameterList(parameters) { - if (checkGrammarForDisallowedTrailingComma(parameters)) { - return true; - } - var seenOptionalParameter = false; - var parameterCount = parameters.length; - for (var i = 0; i < parameterCount; i++) { - var parameter = parameters[i]; - if (parameter.dotDotDotToken) { - if (i !== (parameterCount - 1)) { - return grammarErrorOnNode(parameter.dotDotDotToken, ts.Diagnostics.A_rest_parameter_must_be_last_in_a_parameter_list); - } - if (parameter.questionToken) { - return grammarErrorOnNode(parameter.questionToken, ts.Diagnostics.A_rest_parameter_cannot_be_optional); - } - if (parameter.initializer) { - return grammarErrorOnNode(parameter.name, ts.Diagnostics.A_rest_parameter_cannot_have_an_initializer); - } - } - else if (parameter.questionToken || parameter.initializer) { - seenOptionalParameter = true; - if (parameter.questionToken && parameter.initializer) { - return grammarErrorOnNode(parameter.name, ts.Diagnostics.Parameter_cannot_have_question_mark_and_initializer); - } - } - else { - if (seenOptionalParameter) { - return grammarErrorOnNode(parameter.name, ts.Diagnostics.A_required_parameter_cannot_follow_an_optional_parameter); - } - } - } - } - function checkGrammarFunctionLikeDeclaration(node) { - var file = ts.getSourceFileOfNode(node); - return checkGrammarDecorators(node) || checkGrammarModifiers(node) || checkGrammarTypeParameterList(node, node.typeParameters, file) || - checkGrammarParameterList(node.parameters) || checkGrammarArrowFunction(node, file); - } - function checkGrammarArrowFunction(node, file) { - if (node.kind === 163) { - var arrowFunction = node; - var startLine = ts.getLineAndCharacterOfPosition(file, arrowFunction.equalsGreaterThanToken.pos).line; - var endLine = ts.getLineAndCharacterOfPosition(file, arrowFunction.equalsGreaterThanToken.end).line; - if (startLine !== endLine) { - return grammarErrorOnNode(arrowFunction.equalsGreaterThanToken, ts.Diagnostics.Line_terminator_not_permitted_before_arrow); - } - } - return false; - } - function checkGrammarIndexSignatureParameters(node) { - var parameter = node.parameters[0]; - if (node.parameters.length !== 1) { - if (parameter) { - return grammarErrorOnNode(parameter.name, ts.Diagnostics.An_index_signature_must_have_exactly_one_parameter); - } - else { - return grammarErrorOnNode(node, ts.Diagnostics.An_index_signature_must_have_exactly_one_parameter); - } - } - if (parameter.dotDotDotToken) { - return grammarErrorOnNode(parameter.dotDotDotToken, ts.Diagnostics.An_index_signature_cannot_have_a_rest_parameter); - } - if (parameter.flags & 499) { - return grammarErrorOnNode(parameter.name, ts.Diagnostics.An_index_signature_parameter_cannot_have_an_accessibility_modifier); - } - if (parameter.questionToken) { - return grammarErrorOnNode(parameter.questionToken, ts.Diagnostics.An_index_signature_parameter_cannot_have_a_question_mark); - } - if (parameter.initializer) { - return grammarErrorOnNode(parameter.name, ts.Diagnostics.An_index_signature_parameter_cannot_have_an_initializer); - } - if (!parameter.type) { - return grammarErrorOnNode(parameter.name, ts.Diagnostics.An_index_signature_parameter_must_have_a_type_annotation); - } - if (parameter.type.kind !== 121 && parameter.type.kind !== 119) { - return grammarErrorOnNode(parameter.name, ts.Diagnostics.An_index_signature_parameter_type_must_be_string_or_number); - } - if (!node.type) { - return grammarErrorOnNode(node, ts.Diagnostics.An_index_signature_must_have_a_type_annotation); - } - } - function checkGrammarForIndexSignatureModifier(node) { - if (node.flags & 499) { - grammarErrorOnFirstToken(node, ts.Diagnostics.Modifiers_not_permitted_on_index_signature_members); - } - } - function checkGrammarIndexSignature(node) { - return checkGrammarDecorators(node) || checkGrammarModifiers(node) || checkGrammarIndexSignatureParameters(node) || checkGrammarForIndexSignatureModifier(node); - } - function checkGrammarForAtLeastOneTypeArgument(node, typeArguments) { - if (typeArguments && typeArguments.length === 0) { - var sourceFile = ts.getSourceFileOfNode(node); - var start = typeArguments.pos - "<".length; - var end = ts.skipTrivia(sourceFile.text, typeArguments.end) + ">".length; - return grammarErrorAtPos(sourceFile, start, end - start, ts.Diagnostics.Type_argument_list_cannot_be_empty); - } - } - function checkGrammarTypeArguments(node, typeArguments) { - return checkGrammarForDisallowedTrailingComma(typeArguments) || - checkGrammarForAtLeastOneTypeArgument(node, typeArguments); - } - function checkGrammarForOmittedArgument(node, arguments) { - if (arguments) { - var sourceFile = ts.getSourceFileOfNode(node); - for (var _i = 0, _n = arguments.length; _i < _n; _i++) { - var arg = arguments[_i]; - if (arg.kind === 174) { - return grammarErrorAtPos(sourceFile, arg.pos, 0, ts.Diagnostics.Argument_expression_expected); - } - } - } - } - function checkGrammarArguments(node, arguments) { - return checkGrammarForDisallowedTrailingComma(arguments) || - checkGrammarForOmittedArgument(node, arguments); - } - function checkGrammarHeritageClause(node) { - var types = node.types; - if (checkGrammarForDisallowedTrailingComma(types)) { - return true; - } - if (types && types.length === 0) { - var listType = ts.tokenToString(node.token); - var sourceFile = ts.getSourceFileOfNode(node); - return grammarErrorAtPos(sourceFile, types.pos, 0, ts.Diagnostics._0_list_cannot_be_empty, listType); - } - } - function checkGrammarClassDeclarationHeritageClauses(node) { - var seenExtendsClause = false; - var seenImplementsClause = false; - if (!checkGrammarDecorators(node) && !checkGrammarModifiers(node) && node.heritageClauses) { - for (var _i = 0, _a = node.heritageClauses, _n = _a.length; _i < _n; _i++) { - var heritageClause = _a[_i]; - if (heritageClause.token === 79) { - if (seenExtendsClause) { - return grammarErrorOnFirstToken(heritageClause, ts.Diagnostics.extends_clause_already_seen); - } - if (seenImplementsClause) { - return grammarErrorOnFirstToken(heritageClause, ts.Diagnostics.extends_clause_must_precede_implements_clause); - } - if (heritageClause.types.length > 1) { - return grammarErrorOnFirstToken(heritageClause.types[1], ts.Diagnostics.Classes_can_only_extend_a_single_class); - } - seenExtendsClause = true; - } - else { - ts.Debug.assert(heritageClause.token === 103); - if (seenImplementsClause) { - return grammarErrorOnFirstToken(heritageClause, ts.Diagnostics.implements_clause_already_seen); - } - seenImplementsClause = true; - } - checkGrammarHeritageClause(heritageClause); - } - } - } - function checkGrammarInterfaceDeclaration(node) { - var seenExtendsClause = false; - if (node.heritageClauses) { - for (var _i = 0, _a = node.heritageClauses, _n = _a.length; _i < _n; _i++) { - var heritageClause = _a[_i]; - if (heritageClause.token === 79) { - if (seenExtendsClause) { - return grammarErrorOnFirstToken(heritageClause, ts.Diagnostics.extends_clause_already_seen); - } - seenExtendsClause = true; - } - else { - ts.Debug.assert(heritageClause.token === 103); - return grammarErrorOnFirstToken(heritageClause, ts.Diagnostics.Interface_declaration_cannot_have_implements_clause); - } - checkGrammarHeritageClause(heritageClause); - } - } - return false; - } - function checkGrammarComputedPropertyName(node) { - if (node.kind !== 127) { - return false; - } - var computedPropertyName = node; - if (computedPropertyName.expression.kind === 169 && computedPropertyName.expression.operatorToken.kind === 23) { - return grammarErrorOnNode(computedPropertyName.expression, ts.Diagnostics.A_comma_expression_is_not_allowed_in_a_computed_property_name); - } - } - function checkGrammarForGenerator(node) { - if (node.asteriskToken) { - return grammarErrorOnNode(node.asteriskToken, ts.Diagnostics.Generators_are_not_currently_supported); - } - } - function checkGrammarFunctionName(name) { - return checkGrammarEvalOrArgumentsInStrictMode(name, name); - } - function checkGrammarForInvalidQuestionMark(node, questionToken, message) { - if (questionToken) { - return grammarErrorOnNode(questionToken, message); - } - } - function checkGrammarObjectLiteralExpression(node) { - var seen = {}; - var Property = 1; - var GetAccessor = 2; - var SetAccesor = 4; - var GetOrSetAccessor = GetAccessor | SetAccesor; - var inStrictMode = (node.parserContextFlags & 1) !== 0; - for (var _i = 0, _a = node.properties, _n = _a.length; _i < _n; _i++) { - var prop = _a[_i]; - var name_11 = prop.name; - if (prop.kind === 174 || - name_11.kind === 127) { - checkGrammarComputedPropertyName(name_11); - continue; - } - var currentKind = void 0; - if (prop.kind === 221 || prop.kind === 222) { - checkGrammarForInvalidQuestionMark(prop, prop.questionToken, ts.Diagnostics.An_object_member_cannot_be_declared_optional); - if (name_11.kind === 7) { - checkGrammarNumbericLiteral(name_11); - } - currentKind = Property; - } - else if (prop.kind === 134) { - currentKind = Property; - } - else if (prop.kind === 136) { - currentKind = GetAccessor; - } - else if (prop.kind === 137) { - currentKind = SetAccesor; - } - else { - ts.Debug.fail("Unexpected syntax kind:" + prop.kind); - } - if (!ts.hasProperty(seen, name_11.text)) { - seen[name_11.text] = currentKind; - } - else { - var existingKind = seen[name_11.text]; - if (currentKind === Property && existingKind === Property) { - if (inStrictMode) { - grammarErrorOnNode(name_11, ts.Diagnostics.An_object_literal_cannot_have_multiple_properties_with_the_same_name_in_strict_mode); - } - } - else if ((currentKind & GetOrSetAccessor) && (existingKind & GetOrSetAccessor)) { - if (existingKind !== GetOrSetAccessor && currentKind !== existingKind) { - seen[name_11.text] = currentKind | existingKind; - } - else { - return grammarErrorOnNode(name_11, ts.Diagnostics.An_object_literal_cannot_have_multiple_get_Slashset_accessors_with_the_same_name); - } - } - else { - return grammarErrorOnNode(name_11, ts.Diagnostics.An_object_literal_cannot_have_property_and_accessor_with_the_same_name); - } - } - } - } - function checkGrammarForInOrForOfStatement(forInOrOfStatement) { - if (checkGrammarStatementInAmbientContext(forInOrOfStatement)) { - return true; - } - if (forInOrOfStatement.initializer.kind === 196) { - var variableList = forInOrOfStatement.initializer; - if (!checkGrammarVariableDeclarationList(variableList)) { - if (variableList.declarations.length > 1) { - var diagnostic = forInOrOfStatement.kind === 184 - ? ts.Diagnostics.Only_a_single_variable_declaration_is_allowed_in_a_for_in_statement - : ts.Diagnostics.Only_a_single_variable_declaration_is_allowed_in_a_for_of_statement; - return grammarErrorOnFirstToken(variableList.declarations[1], diagnostic); - } - var firstDeclaration = variableList.declarations[0]; - if (firstDeclaration.initializer) { - var diagnostic = forInOrOfStatement.kind === 184 - ? ts.Diagnostics.The_variable_declaration_of_a_for_in_statement_cannot_have_an_initializer - : ts.Diagnostics.The_variable_declaration_of_a_for_of_statement_cannot_have_an_initializer; - return grammarErrorOnNode(firstDeclaration.name, diagnostic); - } - if (firstDeclaration.type) { - var diagnostic = forInOrOfStatement.kind === 184 - ? ts.Diagnostics.The_left_hand_side_of_a_for_in_statement_cannot_use_a_type_annotation - : ts.Diagnostics.The_left_hand_side_of_a_for_of_statement_cannot_use_a_type_annotation; - return grammarErrorOnNode(firstDeclaration, diagnostic); - } - } - } - return false; - } - function checkGrammarAccessor(accessor) { - var kind = accessor.kind; - if (languageVersion < 1) { - return grammarErrorOnNode(accessor.name, ts.Diagnostics.Accessors_are_only_available_when_targeting_ECMAScript_5_and_higher); - } - else if (ts.isInAmbientContext(accessor)) { - return grammarErrorOnNode(accessor.name, ts.Diagnostics.An_accessor_cannot_be_declared_in_an_ambient_context); - } - else if (accessor.body === undefined) { - return grammarErrorAtPos(ts.getSourceFileOfNode(accessor), accessor.end - 1, ";".length, ts.Diagnostics._0_expected, "{"); - } - else if (accessor.typeParameters) { - return grammarErrorOnNode(accessor.name, ts.Diagnostics.An_accessor_cannot_have_type_parameters); - } - else if (kind === 136 && accessor.parameters.length) { - return grammarErrorOnNode(accessor.name, ts.Diagnostics.A_get_accessor_cannot_have_parameters); - } - else if (kind === 137) { - if (accessor.type) { - return grammarErrorOnNode(accessor.name, ts.Diagnostics.A_set_accessor_cannot_have_a_return_type_annotation); - } - else if (accessor.parameters.length !== 1) { - return grammarErrorOnNode(accessor.name, ts.Diagnostics.A_set_accessor_must_have_exactly_one_parameter); - } - else { - var parameter = accessor.parameters[0]; - if (parameter.dotDotDotToken) { - return grammarErrorOnNode(parameter.dotDotDotToken, ts.Diagnostics.A_set_accessor_cannot_have_rest_parameter); - } - else if (parameter.flags & 499) { - return grammarErrorOnNode(accessor.name, ts.Diagnostics.A_parameter_property_is_only_allowed_in_a_constructor_implementation); - } - else if (parameter.questionToken) { - return grammarErrorOnNode(parameter.questionToken, ts.Diagnostics.A_set_accessor_cannot_have_an_optional_parameter); - } - else if (parameter.initializer) { - return grammarErrorOnNode(accessor.name, ts.Diagnostics.A_set_accessor_parameter_cannot_have_an_initializer); - } - } - } - } - function checkGrammarForNonSymbolComputedProperty(node, message) { - if (node.kind === 127 && !ts.isWellKnownSymbolSyntactically(node.expression)) { - return grammarErrorOnNode(node, message); - } - } - function checkGrammarMethod(node) { - if (checkGrammarDisallowedModifiersInBlockOrObjectLiteralExpression(node) || - checkGrammarFunctionLikeDeclaration(node) || - checkGrammarForGenerator(node)) { - return true; - } - if (node.parent.kind === 154) { - if (checkGrammarForInvalidQuestionMark(node, node.questionToken, ts.Diagnostics.A_class_member_cannot_be_declared_optional)) { - return true; - } - else if (node.body === undefined) { - return grammarErrorAtPos(getSourceFile(node), node.end - 1, ";".length, ts.Diagnostics._0_expected, "{"); - } - } - if (node.parent.kind === 198) { - if (checkGrammarForInvalidQuestionMark(node, node.questionToken, ts.Diagnostics.A_class_member_cannot_be_declared_optional)) { - return true; - } - if (ts.isInAmbientContext(node)) { - return checkGrammarForNonSymbolComputedProperty(node.name, ts.Diagnostics.A_computed_property_name_in_an_ambient_context_must_directly_refer_to_a_built_in_symbol); - } - else if (!node.body) { - return checkGrammarForNonSymbolComputedProperty(node.name, ts.Diagnostics.A_computed_property_name_in_a_method_overload_must_directly_refer_to_a_built_in_symbol); - } - } - else if (node.parent.kind === 199) { - return checkGrammarForNonSymbolComputedProperty(node.name, ts.Diagnostics.A_computed_property_name_in_an_interface_must_directly_refer_to_a_built_in_symbol); - } - else if (node.parent.kind === 145) { - return checkGrammarForNonSymbolComputedProperty(node.name, ts.Diagnostics.A_computed_property_name_in_a_type_literal_must_directly_refer_to_a_built_in_symbol); - } - } - function isIterationStatement(node, lookInLabeledStatements) { - switch (node.kind) { - case 183: - case 184: - case 185: - case 181: - case 182: - return true; - case 191: - return lookInLabeledStatements && isIterationStatement(node.statement, lookInLabeledStatements); - } - return false; - } - function checkGrammarBreakOrContinueStatement(node) { - var current = node; - while (current) { - if (ts.isFunctionLike(current)) { - return grammarErrorOnNode(node, ts.Diagnostics.Jump_target_cannot_cross_function_boundary); - } - switch (current.kind) { - case 191: - if (node.label && current.label.text === node.label.text) { - var isMisplacedContinueLabel = node.kind === 186 - && !isIterationStatement(current.statement, true); - if (isMisplacedContinueLabel) { - return grammarErrorOnNode(node, ts.Diagnostics.A_continue_statement_can_only_jump_to_a_label_of_an_enclosing_iteration_statement); - } - return false; - } - break; - case 190: - if (node.kind === 187 && !node.label) { - return false; - } - break; - default: - if (isIterationStatement(current, false) && !node.label) { - return false; - } - break; - } - current = current.parent; - } - if (node.label) { - var message = node.kind === 187 - ? ts.Diagnostics.A_break_statement_can_only_jump_to_a_label_of_an_enclosing_statement - : ts.Diagnostics.A_continue_statement_can_only_jump_to_a_label_of_an_enclosing_iteration_statement; - return grammarErrorOnNode(node, message); - } - else { - var message = node.kind === 187 - ? ts.Diagnostics.A_break_statement_can_only_be_used_within_an_enclosing_iteration_or_switch_statement - : ts.Diagnostics.A_continue_statement_can_only_be_used_within_an_enclosing_iteration_statement; - return grammarErrorOnNode(node, message); - } - } - function checkGrammarBindingElement(node) { - if (node.dotDotDotToken) { - var elements = node.parent.elements; - if (node !== elements[elements.length - 1]) { - return grammarErrorOnNode(node, ts.Diagnostics.A_rest_element_must_be_last_in_an_array_destructuring_pattern); - } - if (node.initializer) { - return grammarErrorAtPos(ts.getSourceFileOfNode(node), node.initializer.pos - 1, 1, ts.Diagnostics.A_rest_element_cannot_have_an_initializer); - } - } - return checkGrammarEvalOrArgumentsInStrictMode(node, node.name); - } - function checkGrammarVariableDeclaration(node) { - if (node.parent.parent.kind !== 184 && node.parent.parent.kind !== 185) { - if (ts.isInAmbientContext(node)) { - if (ts.isBindingPattern(node.name)) { - return grammarErrorOnNode(node, ts.Diagnostics.Destructuring_declarations_are_not_allowed_in_ambient_contexts); - } - if (node.initializer) { - var equalsTokenLength = "=".length; - return grammarErrorAtPos(ts.getSourceFileOfNode(node), node.initializer.pos - equalsTokenLength, equalsTokenLength, ts.Diagnostics.Initializers_are_not_allowed_in_ambient_contexts); - } - } - else if (!node.initializer) { - if (ts.isBindingPattern(node.name) && !ts.isBindingPattern(node.parent)) { - return grammarErrorOnNode(node, ts.Diagnostics.A_destructuring_declaration_must_have_an_initializer); - } - if (ts.isConst(node)) { - return grammarErrorOnNode(node, ts.Diagnostics.const_declarations_must_be_initialized); - } - } - } - var checkLetConstNames = languageVersion >= 2 && (ts.isLet(node) || ts.isConst(node)); - return (checkLetConstNames && checkGrammarNameInLetOrConstDeclarations(node.name)) || - checkGrammarEvalOrArgumentsInStrictMode(node, node.name); - } - function checkGrammarNameInLetOrConstDeclarations(name) { - if (name.kind === 65) { - if (name.text === "let") { - return grammarErrorOnNode(name, ts.Diagnostics.let_is_not_allowed_to_be_used_as_a_name_in_let_or_const_declarations); - } - } - else { - var elements = name.elements; - for (var _i = 0, _n = elements.length; _i < _n; _i++) { - var element = elements[_i]; - checkGrammarNameInLetOrConstDeclarations(element.name); - } - } - } - function checkGrammarVariableDeclarationList(declarationList) { - var declarations = declarationList.declarations; - if (checkGrammarForDisallowedTrailingComma(declarationList.declarations)) { - return true; - } - if (!declarationList.declarations.length) { - return grammarErrorAtPos(ts.getSourceFileOfNode(declarationList), declarations.pos, declarations.end - declarations.pos, ts.Diagnostics.Variable_declaration_list_cannot_be_empty); - } - } - function allowLetAndConstDeclarations(parent) { - switch (parent.kind) { - case 180: - case 181: - case 182: - case 189: - case 183: - case 184: - case 185: - return false; - case 191: - return allowLetAndConstDeclarations(parent.parent); - } - return true; - } - function checkGrammarForDisallowedLetOrConstStatement(node) { - if (!allowLetAndConstDeclarations(node.parent)) { - if (ts.isLet(node.declarationList)) { - return grammarErrorOnNode(node, ts.Diagnostics.let_declarations_can_only_be_declared_inside_a_block); - } - else if (ts.isConst(node.declarationList)) { - return grammarErrorOnNode(node, ts.Diagnostics.const_declarations_can_only_be_declared_inside_a_block); - } - } - } - function isIntegerLiteral(expression) { - if (expression.kind === 167) { - var unaryExpression = expression; - if (unaryExpression.operator === 33 || unaryExpression.operator === 34) { - expression = unaryExpression.operand; - } - } - if (expression.kind === 7) { - return /^[0-9]+([eE]\+?[0-9]+)?$/.test(expression.text); - } - return false; - } - function checkGrammarEnumDeclaration(enumDecl) { - var enumIsConst = (enumDecl.flags & 8192) !== 0; - var hasError = false; - if (!enumIsConst) { - var inConstantEnumMemberSection = true; - var inAmbientContext = ts.isInAmbientContext(enumDecl); - for (var _i = 0, _a = enumDecl.members, _n = _a.length; _i < _n; _i++) { - var node = _a[_i]; - if (node.name.kind === 127) { - hasError = grammarErrorOnNode(node.name, ts.Diagnostics.Computed_property_names_are_not_allowed_in_enums); - } - else if (inAmbientContext) { - if (node.initializer && !isIntegerLiteral(node.initializer)) { - hasError = grammarErrorOnNode(node.name, ts.Diagnostics.Ambient_enum_elements_can_only_have_integer_literal_initializers) || hasError; - } - } - else if (node.initializer) { - inConstantEnumMemberSection = isIntegerLiteral(node.initializer); - } - else if (!inConstantEnumMemberSection) { - hasError = grammarErrorOnNode(node.name, ts.Diagnostics.Enum_member_must_have_initializer) || hasError; - } - } - } - return hasError; - } - function hasParseDiagnostics(sourceFile) { - return sourceFile.parseDiagnostics.length > 0; - } - function grammarErrorOnFirstToken(node, message, arg0, arg1, arg2) { - var sourceFile = ts.getSourceFileOfNode(node); - if (!hasParseDiagnostics(sourceFile)) { - var span = ts.getSpanOfTokenAtPosition(sourceFile, node.pos); - diagnostics.add(ts.createFileDiagnostic(sourceFile, span.start, span.length, message, arg0, arg1, arg2)); - return true; - } - } - function grammarErrorAtPos(sourceFile, start, length, message, arg0, arg1, arg2) { - if (!hasParseDiagnostics(sourceFile)) { - diagnostics.add(ts.createFileDiagnostic(sourceFile, start, length, message, arg0, arg1, arg2)); - return true; - } - } - function grammarErrorOnNode(node, message, arg0, arg1, arg2) { - var sourceFile = ts.getSourceFileOfNode(node); - if (!hasParseDiagnostics(sourceFile)) { - diagnostics.add(ts.createDiagnosticForNode(node, message, arg0, arg1, arg2)); - return true; - } - } - function checkGrammarEvalOrArgumentsInStrictMode(contextNode, name) { - if (name && name.kind === 65) { - var identifier = name; - if (contextNode && (contextNode.parserContextFlags & 1) && ts.isEvalOrArgumentsIdentifier(identifier)) { - var nameText = ts.declarationNameToString(identifier); - return grammarErrorOnNode(identifier, ts.Diagnostics.Invalid_use_of_0_in_strict_mode, nameText); - } - } - } - function checkGrammarConstructorTypeParameters(node) { - if (node.typeParameters) { - return grammarErrorAtPos(ts.getSourceFileOfNode(node), node.typeParameters.pos, node.typeParameters.end - node.typeParameters.pos, ts.Diagnostics.Type_parameters_cannot_appear_on_a_constructor_declaration); - } - } - function checkGrammarConstructorTypeAnnotation(node) { - if (node.type) { - return grammarErrorOnNode(node.type, ts.Diagnostics.Type_annotation_cannot_appear_on_a_constructor_declaration); - } - } - function checkGrammarProperty(node) { - if (node.parent.kind === 198) { - if (checkGrammarForInvalidQuestionMark(node, node.questionToken, ts.Diagnostics.A_class_member_cannot_be_declared_optional) || - checkGrammarForNonSymbolComputedProperty(node.name, ts.Diagnostics.A_computed_property_name_in_a_class_property_declaration_must_directly_refer_to_a_built_in_symbol)) { - return true; - } - } - else if (node.parent.kind === 199) { - if (checkGrammarForNonSymbolComputedProperty(node.name, ts.Diagnostics.A_computed_property_name_in_an_interface_must_directly_refer_to_a_built_in_symbol)) { - return true; - } - } - else if (node.parent.kind === 145) { - if (checkGrammarForNonSymbolComputedProperty(node.name, ts.Diagnostics.A_computed_property_name_in_a_type_literal_must_directly_refer_to_a_built_in_symbol)) { - return true; - } - } - if (ts.isInAmbientContext(node) && node.initializer) { - return grammarErrorOnFirstToken(node.initializer, ts.Diagnostics.Initializers_are_not_allowed_in_ambient_contexts); - } - } - function checkGrammarTopLevelElementForRequiredDeclareModifier(node) { - if (node.kind === 199 || - node.kind === 206 || - node.kind === 205 || - node.kind === 212 || - node.kind === 211 || - (node.flags & 2) || - (node.flags & (1 | 256))) { - return false; - } - return grammarErrorOnFirstToken(node, ts.Diagnostics.A_declare_modifier_is_required_for_a_top_level_declaration_in_a_d_ts_file); - } - function checkGrammarTopLevelElementsForRequiredDeclareModifier(file) { - for (var _i = 0, _a = file.statements, _n = _a.length; _i < _n; _i++) { - var decl = _a[_i]; - if (ts.isDeclaration(decl) || decl.kind === 177) { - if (checkGrammarTopLevelElementForRequiredDeclareModifier(decl)) { - return true; - } - } - } - } - function checkGrammarSourceFile(node) { - return ts.isInAmbientContext(node) && checkGrammarTopLevelElementsForRequiredDeclareModifier(node); - } - function checkGrammarStatementInAmbientContext(node) { - if (ts.isInAmbientContext(node)) { - if (isAccessor(node.parent.kind)) { - return getNodeLinks(node).hasReportedStatementInAmbientContext = true; - } - var links = getNodeLinks(node); - if (!links.hasReportedStatementInAmbientContext && ts.isFunctionLike(node.parent)) { - return getNodeLinks(node).hasReportedStatementInAmbientContext = grammarErrorOnFirstToken(node, ts.Diagnostics.An_implementation_cannot_be_declared_in_ambient_contexts); - } - if (node.parent.kind === 176 || node.parent.kind === 203 || node.parent.kind === 224) { - var links_1 = getNodeLinks(node.parent); - if (!links_1.hasReportedStatementInAmbientContext) { - return links_1.hasReportedStatementInAmbientContext = grammarErrorOnFirstToken(node, ts.Diagnostics.Statements_are_not_allowed_in_ambient_contexts); - } - } - else { - } - } - } - function checkGrammarNumbericLiteral(node) { - if (node.flags & 16384) { - if (node.parserContextFlags & 1) { - return grammarErrorOnNode(node, ts.Diagnostics.Octal_literals_are_not_allowed_in_strict_mode); - } - else if (languageVersion >= 1) { - return grammarErrorOnNode(node, ts.Diagnostics.Octal_literals_are_not_available_when_targeting_ECMAScript_5_and_higher); - } - } - } - function grammarErrorAfterFirstToken(node, message, arg0, arg1, arg2) { - var sourceFile = ts.getSourceFileOfNode(node); - if (!hasParseDiagnostics(sourceFile)) { - var span = ts.getSpanOfTokenAtPosition(sourceFile, node.pos); - diagnostics.add(ts.createFileDiagnostic(sourceFile, ts.textSpanEnd(span), 0, message, arg0, arg1, arg2)); - return true; - } - } - initializeTypeChecker(); - return checker; - } - ts.createTypeChecker = createTypeChecker; -})(ts || (ts = {})); -/// -var ts; -(function (ts) { - function getDeclarationDiagnostics(host, resolver, targetSourceFile) { - var diagnostics = []; - var jsFilePath = ts.getOwnEmitOutputFilePath(targetSourceFile, host, ".js"); - emitDeclarations(host, resolver, diagnostics, jsFilePath, targetSourceFile); - return diagnostics; - } - ts.getDeclarationDiagnostics = getDeclarationDiagnostics; - function emitDeclarations(host, resolver, diagnostics, jsFilePath, root) { - var newLine = host.getNewLine(); - var compilerOptions = host.getCompilerOptions(); - var languageVersion = compilerOptions.target || 0; - var write; - var writeLine; - var increaseIndent; - var decreaseIndent; - var writeTextOfNode; - var writer = createAndSetNewTextWriterWithSymbolWriter(); - var enclosingDeclaration; - var currentSourceFile; - var reportedDeclarationError = false; - var emitJsDocComments = compilerOptions.removeComments ? function (declaration) { } : writeJsDocComments; - var emit = compilerOptions.stripInternal ? stripInternal : emitNode; - var moduleElementDeclarationEmitInfo = []; - var asynchronousSubModuleDeclarationEmitInfo; - var referencePathsOutput = ""; - if (root) { - if (!compilerOptions.noResolve) { - var addedGlobalFileReference = false; - ts.forEach(root.referencedFiles, function (fileReference) { - var referencedFile = ts.tryResolveScriptReference(host, root, fileReference); - if (referencedFile && ((referencedFile.flags & 2048) || - ts.shouldEmitToOwnFile(referencedFile, compilerOptions) || - !addedGlobalFileReference)) { - writeReferencePath(referencedFile); - if (!ts.isExternalModuleOrDeclarationFile(referencedFile)) { - addedGlobalFileReference = true; - } - } - }); - } - emitSourceFile(root); - if (moduleElementDeclarationEmitInfo.length) { - var oldWriter = writer; - ts.forEach(moduleElementDeclarationEmitInfo, function (aliasEmitInfo) { - if (aliasEmitInfo.isVisible) { - ts.Debug.assert(aliasEmitInfo.node.kind === 206); - createAndSetNewTextWriterWithSymbolWriter(); - ts.Debug.assert(aliasEmitInfo.indent === 0); - writeImportDeclaration(aliasEmitInfo.node); - aliasEmitInfo.asynchronousOutput = writer.getText(); - } - }); - setWriter(oldWriter); - } - } - else { - var emittedReferencedFiles = []; - ts.forEach(host.getSourceFiles(), function (sourceFile) { - if (!ts.isExternalModuleOrDeclarationFile(sourceFile)) { - if (!compilerOptions.noResolve) { - ts.forEach(sourceFile.referencedFiles, function (fileReference) { - var referencedFile = ts.tryResolveScriptReference(host, sourceFile, fileReference); - if (referencedFile && (ts.isExternalModuleOrDeclarationFile(referencedFile) && - !ts.contains(emittedReferencedFiles, referencedFile))) { - writeReferencePath(referencedFile); - emittedReferencedFiles.push(referencedFile); - } - }); - } - emitSourceFile(sourceFile); - } - }); - } - return { - reportedDeclarationError: reportedDeclarationError, - moduleElementDeclarationEmitInfo: moduleElementDeclarationEmitInfo, - synchronousDeclarationOutput: writer.getText(), - referencePathsOutput: referencePathsOutput - }; - function hasInternalAnnotation(range) { - var text = currentSourceFile.text; - var comment = text.substring(range.pos, range.end); - return comment.indexOf("@internal") >= 0; - } - function stripInternal(node) { - if (node) { - var leadingCommentRanges = ts.getLeadingCommentRanges(currentSourceFile.text, node.pos); - if (ts.forEach(leadingCommentRanges, hasInternalAnnotation)) { - return; - } - emitNode(node); - } - } - function createAndSetNewTextWriterWithSymbolWriter() { - var writer = ts.createTextWriter(newLine); - writer.trackSymbol = trackSymbol; - writer.writeKeyword = writer.write; - writer.writeOperator = writer.write; - writer.writePunctuation = writer.write; - writer.writeSpace = writer.write; - writer.writeStringLiteral = writer.writeLiteral; - writer.writeParameter = writer.write; - writer.writeSymbol = writer.write; - setWriter(writer); - return writer; - } - function setWriter(newWriter) { - writer = newWriter; - write = newWriter.write; - writeTextOfNode = newWriter.writeTextOfNode; - writeLine = newWriter.writeLine; - increaseIndent = newWriter.increaseIndent; - decreaseIndent = newWriter.decreaseIndent; - } - function writeAsynchronousModuleElements(nodes) { - var oldWriter = writer; - ts.forEach(nodes, function (declaration) { - var nodeToCheck; - if (declaration.kind === 195) { - nodeToCheck = declaration.parent.parent; - } - else if (declaration.kind === 209 || declaration.kind === 210 || declaration.kind === 207) { - ts.Debug.fail("We should be getting ImportDeclaration instead to write"); - } - else { - nodeToCheck = declaration; - } - var moduleElementEmitInfo = ts.forEach(moduleElementDeclarationEmitInfo, function (declEmitInfo) { return declEmitInfo.node === nodeToCheck ? declEmitInfo : undefined; }); - if (!moduleElementEmitInfo && asynchronousSubModuleDeclarationEmitInfo) { - moduleElementEmitInfo = ts.forEach(asynchronousSubModuleDeclarationEmitInfo, function (declEmitInfo) { return declEmitInfo.node === nodeToCheck ? declEmitInfo : undefined; }); - } - if (moduleElementEmitInfo) { - if (moduleElementEmitInfo.node.kind === 206) { - moduleElementEmitInfo.isVisible = true; - } - else { - createAndSetNewTextWriterWithSymbolWriter(); - for (var declarationIndent = moduleElementEmitInfo.indent; declarationIndent; declarationIndent--) { - increaseIndent(); - } - if (nodeToCheck.kind === 202) { - ts.Debug.assert(asynchronousSubModuleDeclarationEmitInfo === undefined); - asynchronousSubModuleDeclarationEmitInfo = []; - } - writeModuleElement(nodeToCheck); - if (nodeToCheck.kind === 202) { - moduleElementEmitInfo.subModuleElementDeclarationEmitInfo = asynchronousSubModuleDeclarationEmitInfo; - asynchronousSubModuleDeclarationEmitInfo = undefined; - } - moduleElementEmitInfo.asynchronousOutput = writer.getText(); - } - } - }); - setWriter(oldWriter); - } - function handleSymbolAccessibilityError(symbolAccesibilityResult) { - if (symbolAccesibilityResult.accessibility === 0) { - if (symbolAccesibilityResult && symbolAccesibilityResult.aliasesToMakeVisible) { - writeAsynchronousModuleElements(symbolAccesibilityResult.aliasesToMakeVisible); - } - } - else { - reportedDeclarationError = true; - var errorInfo = writer.getSymbolAccessibilityDiagnostic(symbolAccesibilityResult); - if (errorInfo) { - if (errorInfo.typeName) { - diagnostics.push(ts.createDiagnosticForNode(symbolAccesibilityResult.errorNode || errorInfo.errorNode, errorInfo.diagnosticMessage, ts.getSourceTextOfNodeFromSourceFile(currentSourceFile, errorInfo.typeName), symbolAccesibilityResult.errorSymbolName, symbolAccesibilityResult.errorModuleName)); - } - else { - diagnostics.push(ts.createDiagnosticForNode(symbolAccesibilityResult.errorNode || errorInfo.errorNode, errorInfo.diagnosticMessage, symbolAccesibilityResult.errorSymbolName, symbolAccesibilityResult.errorModuleName)); - } - } - } - } - function trackSymbol(symbol, enclosingDeclaration, meaning) { - handleSymbolAccessibilityError(resolver.isSymbolAccessible(symbol, enclosingDeclaration, meaning)); - } - function writeTypeOfDeclaration(declaration, type, getSymbolAccessibilityDiagnostic) { - writer.getSymbolAccessibilityDiagnostic = getSymbolAccessibilityDiagnostic; - write(": "); - if (type) { - emitType(type); - } - else { - resolver.writeTypeOfDeclaration(declaration, enclosingDeclaration, 2, writer); - } - } - function writeReturnTypeAtSignature(signature, getSymbolAccessibilityDiagnostic) { - writer.getSymbolAccessibilityDiagnostic = getSymbolAccessibilityDiagnostic; - write(": "); - if (signature.type) { - emitType(signature.type); - } - else { - resolver.writeReturnTypeOfSignatureDeclaration(signature, enclosingDeclaration, 2, writer); - } - } - function emitLines(nodes) { - for (var _i = 0, _n = nodes.length; _i < _n; _i++) { - var node = nodes[_i]; - emit(node); - } - } - function emitSeparatedList(nodes, separator, eachNodeEmitFn, canEmitFn) { - var currentWriterPos = writer.getTextPos(); - for (var _i = 0, _n = nodes.length; _i < _n; _i++) { - var node = nodes[_i]; - if (!canEmitFn || canEmitFn(node)) { - if (currentWriterPos !== writer.getTextPos()) { - write(separator); - } - currentWriterPos = writer.getTextPos(); - eachNodeEmitFn(node); - } - } - } - function emitCommaList(nodes, eachNodeEmitFn, canEmitFn) { - emitSeparatedList(nodes, ", ", eachNodeEmitFn, canEmitFn); - } - function writeJsDocComments(declaration) { - if (declaration) { - var jsDocComments = ts.getJsDocComments(declaration, currentSourceFile); - ts.emitNewLineBeforeLeadingComments(currentSourceFile, writer, declaration, jsDocComments); - ts.emitComments(currentSourceFile, writer, jsDocComments, true, newLine, ts.writeCommentRange); - } - } - function emitTypeWithNewGetSymbolAccessibilityDiagnostic(type, getSymbolAccessibilityDiagnostic) { - writer.getSymbolAccessibilityDiagnostic = getSymbolAccessibilityDiagnostic; - emitType(type); - } - function emitType(type) { - switch (type.kind) { - case 112: - case 121: - case 119: - case 113: - case 122: - case 99: - case 8: - return writeTextOfNode(currentSourceFile, type); - case 141: - return emitTypeReference(type); - case 144: - return emitTypeQuery(type); - case 146: - return emitArrayType(type); - case 147: - return emitTupleType(type); - case 148: - return emitUnionType(type); - case 149: - return emitParenType(type); - case 142: - case 143: - return emitSignatureDeclarationWithJsDocComments(type); - case 145: - return emitTypeLiteral(type); - case 65: - return emitEntityName(type); - case 126: - return emitEntityName(type); - default: - ts.Debug.fail("Unknown type annotation: " + type.kind); - } - function emitEntityName(entityName) { - var visibilityResult = resolver.isEntityNameVisible(entityName, entityName.parent.kind === 205 ? entityName.parent : enclosingDeclaration); - handleSymbolAccessibilityError(visibilityResult); - writeEntityName(entityName); - function writeEntityName(entityName) { - if (entityName.kind === 65) { - writeTextOfNode(currentSourceFile, entityName); - } - else { - var qualifiedName = entityName; - writeEntityName(qualifiedName.left); - write("."); - writeTextOfNode(currentSourceFile, qualifiedName.right); - } - } - } - function emitTypeReference(type) { - emitEntityName(type.typeName); - if (type.typeArguments) { - write("<"); - emitCommaList(type.typeArguments, emitType); - write(">"); - } - } - function emitTypeQuery(type) { - write("typeof "); - emitEntityName(type.exprName); - } - function emitArrayType(type) { - emitType(type.elementType); - write("[]"); - } - function emitTupleType(type) { - write("["); - emitCommaList(type.elementTypes, emitType); - write("]"); - } - function emitUnionType(type) { - emitSeparatedList(type.types, " | ", emitType); - } - function emitParenType(type) { - write("("); - emitType(type.type); - write(")"); - } - function emitTypeLiteral(type) { - write("{"); - if (type.members.length) { - writeLine(); - increaseIndent(); - emitLines(type.members); - decreaseIndent(); - } - write("}"); - } - } - function emitSourceFile(node) { - currentSourceFile = node; - enclosingDeclaration = node; - emitLines(node.statements); - } - function emitExportAssignment(node) { - write(node.isExportEquals ? "export = " : "export default "); - if (node.expression.kind === 65) { - writeTextOfNode(currentSourceFile, node.expression); - } - else { - write(": "); - if (node.type) { - emitType(node.type); - } - else { - writer.getSymbolAccessibilityDiagnostic = getDefaultExportAccessibilityDiagnostic; - resolver.writeTypeOfExpression(node.expression, enclosingDeclaration, 2, writer); - } - } - write(";"); - writeLine(); - if (node.expression.kind === 65) { - var nodes = resolver.collectLinkedAliases(node.expression); - writeAsynchronousModuleElements(nodes); - } - function getDefaultExportAccessibilityDiagnostic(diagnostic) { - return { - diagnosticMessage: ts.Diagnostics.Default_export_of_the_module_has_or_is_using_private_name_0, - errorNode: node - }; - } - } - function isModuleElementVisible(node) { - return resolver.isDeclarationVisible(node); - } - function emitModuleElement(node, isModuleElementVisible) { - if (isModuleElementVisible) { - writeModuleElement(node); - } - else if (node.kind === 205 || - (node.parent.kind === 224 && ts.isExternalModule(currentSourceFile))) { - var isVisible; - if (asynchronousSubModuleDeclarationEmitInfo && node.parent.kind !== 224) { - asynchronousSubModuleDeclarationEmitInfo.push({ - node: node, - outputPos: writer.getTextPos(), - indent: writer.getIndent(), - isVisible: isVisible - }); - } - else { - if (node.kind === 206) { - var importDeclaration = node; - if (importDeclaration.importClause) { - isVisible = (importDeclaration.importClause.name && resolver.isDeclarationVisible(importDeclaration.importClause)) || - isVisibleNamedBinding(importDeclaration.importClause.namedBindings); - } - } - moduleElementDeclarationEmitInfo.push({ - node: node, - outputPos: writer.getTextPos(), - indent: writer.getIndent(), - isVisible: isVisible - }); - } - } - } - function writeModuleElement(node) { - switch (node.kind) { - case 197: - return writeFunctionDeclaration(node); - case 177: - return writeVariableStatement(node); - case 199: - return writeInterfaceDeclaration(node); - case 198: - return writeClassDeclaration(node); - case 200: - return writeTypeAliasDeclaration(node); - case 201: - return writeEnumDeclaration(node); - case 202: - return writeModuleDeclaration(node); - case 205: - return writeImportEqualsDeclaration(node); - case 206: - return writeImportDeclaration(node); - default: - ts.Debug.fail("Unknown symbol kind"); - } - } - function emitModuleElementDeclarationFlags(node) { - if (node.parent === currentSourceFile) { - if (node.flags & 1) { - write("export "); - } - if (node.flags & 256) { - write("default "); - } - else if (node.kind !== 199) { - write("declare "); - } - } - } - function emitClassMemberDeclarationFlags(node) { - if (node.flags & 32) { - write("private "); - } - else if (node.flags & 64) { - write("protected "); - } - if (node.flags & 128) { - write("static "); - } - } - function writeImportEqualsDeclaration(node) { - emitJsDocComments(node); - if (node.flags & 1) { - write("export "); - } - write("import "); - writeTextOfNode(currentSourceFile, node.name); - write(" = "); - if (ts.isInternalModuleImportEqualsDeclaration(node)) { - emitTypeWithNewGetSymbolAccessibilityDiagnostic(node.moduleReference, getImportEntityNameVisibilityError); - write(";"); - } - else { - write("require("); - writeTextOfNode(currentSourceFile, ts.getExternalModuleImportEqualsDeclarationExpression(node)); - write(");"); - } - writer.writeLine(); - function getImportEntityNameVisibilityError(symbolAccesibilityResult) { - return { - diagnosticMessage: ts.Diagnostics.Import_declaration_0_is_using_private_name_1, - errorNode: node, - typeName: node.name - }; - } - } - function isVisibleNamedBinding(namedBindings) { - if (namedBindings) { - if (namedBindings.kind === 208) { - return resolver.isDeclarationVisible(namedBindings); - } - else { - return ts.forEach(namedBindings.elements, function (namedImport) { return resolver.isDeclarationVisible(namedImport); }); - } - } - } - function writeImportDeclaration(node) { - if (!node.importClause && !(node.flags & 1)) { - return; - } - emitJsDocComments(node); - if (node.flags & 1) { - write("export "); - } - write("import "); - if (node.importClause) { - var currentWriterPos = writer.getTextPos(); - if (node.importClause.name && resolver.isDeclarationVisible(node.importClause)) { - writeTextOfNode(currentSourceFile, node.importClause.name); - } - if (node.importClause.namedBindings && isVisibleNamedBinding(node.importClause.namedBindings)) { - if (currentWriterPos !== writer.getTextPos()) { - write(", "); - } - if (node.importClause.namedBindings.kind === 208) { - write("* as "); - writeTextOfNode(currentSourceFile, node.importClause.namedBindings.name); - } - else { - write("{ "); - emitCommaList(node.importClause.namedBindings.elements, emitImportOrExportSpecifier, resolver.isDeclarationVisible); - write(" }"); - } - } - write(" from "); - } - writeTextOfNode(currentSourceFile, node.moduleSpecifier); - write(";"); - writer.writeLine(); - } - function emitImportOrExportSpecifier(node) { - if (node.propertyName) { - writeTextOfNode(currentSourceFile, node.propertyName); - write(" as "); - } - writeTextOfNode(currentSourceFile, node.name); - } - function emitExportSpecifier(node) { - emitImportOrExportSpecifier(node); - var nodes = resolver.collectLinkedAliases(node.propertyName || node.name); - writeAsynchronousModuleElements(nodes); - } - function emitExportDeclaration(node) { - emitJsDocComments(node); - write("export "); - if (node.exportClause) { - write("{ "); - emitCommaList(node.exportClause.elements, emitExportSpecifier); - write(" }"); - } - else { - write("*"); - } - if (node.moduleSpecifier) { - write(" from "); - writeTextOfNode(currentSourceFile, node.moduleSpecifier); - } - write(";"); - writer.writeLine(); - } - function writeModuleDeclaration(node) { - emitJsDocComments(node); - emitModuleElementDeclarationFlags(node); - write("module "); - writeTextOfNode(currentSourceFile, node.name); - while (node.body.kind !== 203) { - node = node.body; - write("."); - writeTextOfNode(currentSourceFile, node.name); - } - var prevEnclosingDeclaration = enclosingDeclaration; - enclosingDeclaration = node; - write(" {"); - writeLine(); - increaseIndent(); - emitLines(node.body.statements); - decreaseIndent(); - write("}"); - writeLine(); - enclosingDeclaration = prevEnclosingDeclaration; - } - function writeTypeAliasDeclaration(node) { - emitJsDocComments(node); - emitModuleElementDeclarationFlags(node); - write("type "); - writeTextOfNode(currentSourceFile, node.name); - write(" = "); - emitTypeWithNewGetSymbolAccessibilityDiagnostic(node.type, getTypeAliasDeclarationVisibilityError); - write(";"); - writeLine(); - function getTypeAliasDeclarationVisibilityError(symbolAccesibilityResult) { - return { - diagnosticMessage: ts.Diagnostics.Exported_type_alias_0_has_or_is_using_private_name_1, - errorNode: node.type, - typeName: node.name - }; - } - } - function writeEnumDeclaration(node) { - emitJsDocComments(node); - emitModuleElementDeclarationFlags(node); - if (ts.isConst(node)) { - write("const "); - } - write("enum "); - writeTextOfNode(currentSourceFile, node.name); - write(" {"); - writeLine(); - increaseIndent(); - emitLines(node.members); - decreaseIndent(); - write("}"); - writeLine(); - } - function emitEnumMemberDeclaration(node) { - emitJsDocComments(node); - writeTextOfNode(currentSourceFile, node.name); - var enumMemberValue = resolver.getConstantValue(node); - if (enumMemberValue !== undefined) { - write(" = "); - write(enumMemberValue.toString()); - } - write(","); - writeLine(); - } - function isPrivateMethodTypeParameter(node) { - return node.parent.kind === 134 && (node.parent.flags & 32); - } - function emitTypeParameters(typeParameters) { - function emitTypeParameter(node) { - increaseIndent(); - emitJsDocComments(node); - decreaseIndent(); - writeTextOfNode(currentSourceFile, node.name); - if (node.constraint && !isPrivateMethodTypeParameter(node)) { - write(" extends "); - if (node.parent.kind === 142 || - node.parent.kind === 143 || - (node.parent.parent && node.parent.parent.kind === 145)) { - ts.Debug.assert(node.parent.kind === 134 || - node.parent.kind === 133 || - node.parent.kind === 142 || - node.parent.kind === 143 || - node.parent.kind === 138 || - node.parent.kind === 139); - emitType(node.constraint); - } - else { - emitTypeWithNewGetSymbolAccessibilityDiagnostic(node.constraint, getTypeParameterConstraintVisibilityError); - } - } - function getTypeParameterConstraintVisibilityError(symbolAccesibilityResult) { - var diagnosticMessage; - switch (node.parent.kind) { - case 198: - diagnosticMessage = ts.Diagnostics.Type_parameter_0_of_exported_class_has_or_is_using_private_name_1; - break; - case 199: - diagnosticMessage = ts.Diagnostics.Type_parameter_0_of_exported_interface_has_or_is_using_private_name_1; - break; - case 139: - diagnosticMessage = ts.Diagnostics.Type_parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1; - break; - case 138: - diagnosticMessage = ts.Diagnostics.Type_parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1; - break; - case 134: - case 133: - if (node.parent.flags & 128) { - diagnosticMessage = ts.Diagnostics.Type_parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1; - } - else if (node.parent.parent.kind === 198) { - diagnosticMessage = ts.Diagnostics.Type_parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1; - } - else { - diagnosticMessage = ts.Diagnostics.Type_parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1; - } - break; - case 197: - diagnosticMessage = ts.Diagnostics.Type_parameter_0_of_exported_function_has_or_is_using_private_name_1; - break; - default: - ts.Debug.fail("This is unknown parent for type parameter: " + node.parent.kind); - } - return { - diagnosticMessage: diagnosticMessage, - errorNode: node, - typeName: node.name - }; - } - } - if (typeParameters) { - write("<"); - emitCommaList(typeParameters, emitTypeParameter); - write(">"); - } - } - function emitHeritageClause(typeReferences, isImplementsList) { - if (typeReferences) { - write(isImplementsList ? " implements " : " extends "); - emitCommaList(typeReferences, emitTypeOfTypeReference); - } - function emitTypeOfTypeReference(node) { - emitTypeWithNewGetSymbolAccessibilityDiagnostic(node, getHeritageClauseVisibilityError); - function getHeritageClauseVisibilityError(symbolAccesibilityResult) { - var diagnosticMessage; - if (node.parent.parent.kind === 198) { - diagnosticMessage = isImplementsList ? - ts.Diagnostics.Implements_clause_of_exported_class_0_has_or_is_using_private_name_1 : - ts.Diagnostics.Extends_clause_of_exported_class_0_has_or_is_using_private_name_1; - } - else { - diagnosticMessage = ts.Diagnostics.Extends_clause_of_exported_interface_0_has_or_is_using_private_name_1; - } - return { - diagnosticMessage: diagnosticMessage, - errorNode: node, - typeName: node.parent.parent.name - }; - } - } - } - function writeClassDeclaration(node) { - function emitParameterProperties(constructorDeclaration) { - if (constructorDeclaration) { - ts.forEach(constructorDeclaration.parameters, function (param) { - if (param.flags & 112) { - emitPropertyDeclaration(param); - } - }); - } - } - emitJsDocComments(node); - emitModuleElementDeclarationFlags(node); - write("class "); - writeTextOfNode(currentSourceFile, node.name); - var prevEnclosingDeclaration = enclosingDeclaration; - enclosingDeclaration = node; - emitTypeParameters(node.typeParameters); - var baseTypeNode = ts.getClassBaseTypeNode(node); - if (baseTypeNode) { - emitHeritageClause([baseTypeNode], false); - } - emitHeritageClause(ts.getClassImplementedTypeNodes(node), true); - write(" {"); - writeLine(); - increaseIndent(); - emitParameterProperties(ts.getFirstConstructorWithBody(node)); - emitLines(node.members); - decreaseIndent(); - write("}"); - writeLine(); - enclosingDeclaration = prevEnclosingDeclaration; - } - function writeInterfaceDeclaration(node) { - emitJsDocComments(node); - emitModuleElementDeclarationFlags(node); - write("interface "); - writeTextOfNode(currentSourceFile, node.name); - var prevEnclosingDeclaration = enclosingDeclaration; - enclosingDeclaration = node; - emitTypeParameters(node.typeParameters); - emitHeritageClause(ts.getInterfaceBaseTypeNodes(node), false); - write(" {"); - writeLine(); - increaseIndent(); - emitLines(node.members); - decreaseIndent(); - write("}"); - writeLine(); - enclosingDeclaration = prevEnclosingDeclaration; - } - function emitPropertyDeclaration(node) { - if (ts.hasDynamicName(node)) { - return; - } - emitJsDocComments(node); - emitClassMemberDeclarationFlags(node); - emitVariableDeclaration(node); - write(";"); - writeLine(); - } - function emitVariableDeclaration(node) { - if (node.kind !== 195 || resolver.isDeclarationVisible(node)) { - if (ts.isBindingPattern(node.name)) { - emitBindingPattern(node.name); - } - else { - writeTextOfNode(currentSourceFile, node.name); - if ((node.kind === 132 || node.kind === 131) && ts.hasQuestionToken(node)) { - write("?"); - } - if ((node.kind === 132 || node.kind === 131) && node.parent.kind === 145) { - emitTypeOfVariableDeclarationFromTypeLiteral(node); - } - else if (!(node.flags & 32)) { - writeTypeOfDeclaration(node, node.type, getVariableDeclarationTypeVisibilityError); - } - } - } - function getVariableDeclarationTypeVisibilityDiagnosticMessage(symbolAccesibilityResult) { - if (node.kind === 195) { - return symbolAccesibilityResult.errorModuleName ? - symbolAccesibilityResult.accessibility === 2 ? - ts.Diagnostics.Exported_variable_0_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : - ts.Diagnostics.Exported_variable_0_has_or_is_using_name_1_from_private_module_2 : - ts.Diagnostics.Exported_variable_0_has_or_is_using_private_name_1; - } - else if (node.kind === 132 || node.kind === 131) { - if (node.flags & 128) { - return symbolAccesibilityResult.errorModuleName ? - symbolAccesibilityResult.accessibility === 2 ? - ts.Diagnostics.Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : - ts.Diagnostics.Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2 : - ts.Diagnostics.Public_static_property_0_of_exported_class_has_or_is_using_private_name_1; - } - else if (node.parent.kind === 198) { - return symbolAccesibilityResult.errorModuleName ? - symbolAccesibilityResult.accessibility === 2 ? - ts.Diagnostics.Public_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : - ts.Diagnostics.Public_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2 : - ts.Diagnostics.Public_property_0_of_exported_class_has_or_is_using_private_name_1; - } - else { - return symbolAccesibilityResult.errorModuleName ? - ts.Diagnostics.Property_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2 : - ts.Diagnostics.Property_0_of_exported_interface_has_or_is_using_private_name_1; - } - } - } - function getVariableDeclarationTypeVisibilityError(symbolAccesibilityResult) { - var diagnosticMessage = getVariableDeclarationTypeVisibilityDiagnosticMessage(symbolAccesibilityResult); - return diagnosticMessage !== undefined ? { - diagnosticMessage: diagnosticMessage, - errorNode: node, - typeName: node.name - } : undefined; - } - function emitBindingPattern(bindingPattern) { - emitCommaList(bindingPattern.elements, emitBindingElement); - } - function emitBindingElement(bindingElement) { - function getBindingElementTypeVisibilityError(symbolAccesibilityResult) { - var diagnosticMessage = getVariableDeclarationTypeVisibilityDiagnosticMessage(symbolAccesibilityResult); - return diagnosticMessage !== undefined ? { - diagnosticMessage: diagnosticMessage, - errorNode: bindingElement, - typeName: bindingElement.name - } : undefined; - } - if (bindingElement.name) { - if (ts.isBindingPattern(bindingElement.name)) { - emitBindingPattern(bindingElement.name); - } - else { - writeTextOfNode(currentSourceFile, bindingElement.name); - writeTypeOfDeclaration(bindingElement, undefined, getBindingElementTypeVisibilityError); - } - } - } - } - function emitTypeOfVariableDeclarationFromTypeLiteral(node) { - if (node.type) { - write(": "); - emitType(node.type); - } - } - function isVariableStatementVisible(node) { - return ts.forEach(node.declarationList.declarations, function (varDeclaration) { return resolver.isDeclarationVisible(varDeclaration); }); - } - function writeVariableStatement(node) { - emitJsDocComments(node); - emitModuleElementDeclarationFlags(node); - if (ts.isLet(node.declarationList)) { - write("let "); - } - else if (ts.isConst(node.declarationList)) { - write("const "); - } - else { - write("var "); - } - emitCommaList(node.declarationList.declarations, emitVariableDeclaration, resolver.isDeclarationVisible); - write(";"); - writeLine(); - } - function emitAccessorDeclaration(node) { - if (ts.hasDynamicName(node)) { - return; - } - var accessors = ts.getAllAccessorDeclarations(node.parent.members, node); - var accessorWithTypeAnnotation; - if (node === accessors.firstAccessor) { - emitJsDocComments(accessors.getAccessor); - emitJsDocComments(accessors.setAccessor); - emitClassMemberDeclarationFlags(node); - writeTextOfNode(currentSourceFile, node.name); - if (!(node.flags & 32)) { - accessorWithTypeAnnotation = node; - var type = getTypeAnnotationFromAccessor(node); - if (!type) { - var anotherAccessor = node.kind === 136 ? accessors.setAccessor : accessors.getAccessor; - type = getTypeAnnotationFromAccessor(anotherAccessor); - if (type) { - accessorWithTypeAnnotation = anotherAccessor; - } - } - writeTypeOfDeclaration(node, type, getAccessorDeclarationTypeVisibilityError); - } - write(";"); - writeLine(); - } - function getTypeAnnotationFromAccessor(accessor) { - if (accessor) { - return accessor.kind === 136 - ? accessor.type - : accessor.parameters.length > 0 - ? accessor.parameters[0].type - : undefined; - } - } - function getAccessorDeclarationTypeVisibilityError(symbolAccesibilityResult) { - var diagnosticMessage; - if (accessorWithTypeAnnotation.kind === 137) { - if (accessorWithTypeAnnotation.parent.flags & 128) { - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? - ts.Diagnostics.Parameter_0_of_public_static_property_setter_from_exported_class_has_or_is_using_name_1_from_private_module_2 : - ts.Diagnostics.Parameter_0_of_public_static_property_setter_from_exported_class_has_or_is_using_private_name_1; - } - else { - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? - ts.Diagnostics.Parameter_0_of_public_property_setter_from_exported_class_has_or_is_using_name_1_from_private_module_2 : - ts.Diagnostics.Parameter_0_of_public_property_setter_from_exported_class_has_or_is_using_private_name_1; - } - return { - diagnosticMessage: diagnosticMessage, - errorNode: accessorWithTypeAnnotation.parameters[0], - typeName: accessorWithTypeAnnotation.name - }; - } - else { - if (accessorWithTypeAnnotation.flags & 128) { - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? - symbolAccesibilityResult.accessibility === 2 ? - ts.Diagnostics.Return_type_of_public_static_property_getter_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named : - ts.Diagnostics.Return_type_of_public_static_property_getter_from_exported_class_has_or_is_using_name_0_from_private_module_1 : - ts.Diagnostics.Return_type_of_public_static_property_getter_from_exported_class_has_or_is_using_private_name_0; - } - else { - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? - symbolAccesibilityResult.accessibility === 2 ? - ts.Diagnostics.Return_type_of_public_property_getter_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named : - ts.Diagnostics.Return_type_of_public_property_getter_from_exported_class_has_or_is_using_name_0_from_private_module_1 : - ts.Diagnostics.Return_type_of_public_property_getter_from_exported_class_has_or_is_using_private_name_0; - } - return { - diagnosticMessage: diagnosticMessage, - errorNode: accessorWithTypeAnnotation.name, - typeName: undefined - }; - } - } - } - function writeFunctionDeclaration(node) { - if (ts.hasDynamicName(node)) { - return; - } - if (!resolver.isImplementationOfOverload(node)) { - emitJsDocComments(node); - if (node.kind === 197) { - emitModuleElementDeclarationFlags(node); - } - else if (node.kind === 134) { - emitClassMemberDeclarationFlags(node); - } - if (node.kind === 197) { - write("function "); - writeTextOfNode(currentSourceFile, node.name); - } - else if (node.kind === 135) { - write("constructor"); - } - else { - writeTextOfNode(currentSourceFile, node.name); - if (ts.hasQuestionToken(node)) { - write("?"); - } - } - emitSignatureDeclaration(node); - } - } - function emitSignatureDeclarationWithJsDocComments(node) { - emitJsDocComments(node); - emitSignatureDeclaration(node); - } - function emitSignatureDeclaration(node) { - if (node.kind === 139 || node.kind === 143) { - write("new "); - } - emitTypeParameters(node.typeParameters); - if (node.kind === 140) { - write("["); - } - else { - write("("); - } - var prevEnclosingDeclaration = enclosingDeclaration; - enclosingDeclaration = node; - emitCommaList(node.parameters, emitParameterDeclaration); - if (node.kind === 140) { - write("]"); - } - else { - write(")"); - } - var isFunctionTypeOrConstructorType = node.kind === 142 || node.kind === 143; - if (isFunctionTypeOrConstructorType || node.parent.kind === 145) { - if (node.type) { - write(isFunctionTypeOrConstructorType ? " => " : ": "); - emitType(node.type); - } - } - else if (node.kind !== 135 && !(node.flags & 32)) { - writeReturnTypeAtSignature(node, getReturnTypeVisibilityError); - } - enclosingDeclaration = prevEnclosingDeclaration; - if (!isFunctionTypeOrConstructorType) { - write(";"); - writeLine(); - } - function getReturnTypeVisibilityError(symbolAccesibilityResult) { - var diagnosticMessage; - switch (node.kind) { - case 139: - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? - ts.Diagnostics.Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1 : - ts.Diagnostics.Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_0; - break; - case 138: - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? - ts.Diagnostics.Return_type_of_call_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1 : - ts.Diagnostics.Return_type_of_call_signature_from_exported_interface_has_or_is_using_private_name_0; - break; - case 140: - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? - ts.Diagnostics.Return_type_of_index_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1 : - ts.Diagnostics.Return_type_of_index_signature_from_exported_interface_has_or_is_using_private_name_0; - break; - case 134: - case 133: - if (node.flags & 128) { - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? - symbolAccesibilityResult.accessibility === 2 ? - ts.Diagnostics.Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named : - ts.Diagnostics.Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_private_module_1 : - ts.Diagnostics.Return_type_of_public_static_method_from_exported_class_has_or_is_using_private_name_0; - } - else if (node.parent.kind === 198) { - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? - symbolAccesibilityResult.accessibility === 2 ? - ts.Diagnostics.Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named : - ts.Diagnostics.Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_private_module_1 : - ts.Diagnostics.Return_type_of_public_method_from_exported_class_has_or_is_using_private_name_0; - } - else { - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? - ts.Diagnostics.Return_type_of_method_from_exported_interface_has_or_is_using_name_0_from_private_module_1 : - ts.Diagnostics.Return_type_of_method_from_exported_interface_has_or_is_using_private_name_0; - } - break; - case 197: - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? - symbolAccesibilityResult.accessibility === 2 ? - ts.Diagnostics.Return_type_of_exported_function_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named : - ts.Diagnostics.Return_type_of_exported_function_has_or_is_using_name_0_from_private_module_1 : - ts.Diagnostics.Return_type_of_exported_function_has_or_is_using_private_name_0; - break; - default: - ts.Debug.fail("This is unknown kind for signature: " + node.kind); - } - return { - diagnosticMessage: diagnosticMessage, - errorNode: node.name || node - }; - } - } - function emitParameterDeclaration(node) { - increaseIndent(); - emitJsDocComments(node); - if (node.dotDotDotToken) { - write("..."); - } - if (ts.isBindingPattern(node.name)) { - write("_" + ts.indexOf(node.parent.parameters, node)); - } - else { - writeTextOfNode(currentSourceFile, node.name); - } - if (node.initializer || ts.hasQuestionToken(node)) { - write("?"); - } - decreaseIndent(); - if (node.parent.kind === 142 || - node.parent.kind === 143 || - node.parent.parent.kind === 145) { - emitTypeOfVariableDeclarationFromTypeLiteral(node); - } - else if (!(node.parent.flags & 32)) { - writeTypeOfDeclaration(node, node.type, getParameterDeclarationTypeVisibilityError); - } - function getParameterDeclarationTypeVisibilityError(symbolAccesibilityResult) { - var diagnosticMessage; - switch (node.parent.kind) { - case 135: - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? - symbolAccesibilityResult.accessibility === 2 ? - ts.Diagnostics.Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : - ts.Diagnostics.Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_private_module_2 : - ts.Diagnostics.Parameter_0_of_constructor_from_exported_class_has_or_is_using_private_name_1; - break; - case 139: - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? - ts.Diagnostics.Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2 : - ts.Diagnostics.Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1; - break; - case 138: - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? - ts.Diagnostics.Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2 : - ts.Diagnostics.Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1; - break; - case 134: - case 133: - if (node.parent.flags & 128) { - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? - symbolAccesibilityResult.accessibility === 2 ? - ts.Diagnostics.Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : - ts.Diagnostics.Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_private_module_2 : - ts.Diagnostics.Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1; - } - else if (node.parent.parent.kind === 198) { - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? - symbolAccesibilityResult.accessibility === 2 ? - ts.Diagnostics.Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : - ts.Diagnostics.Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_private_module_2 : - ts.Diagnostics.Parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1; - } - else { - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? - ts.Diagnostics.Parameter_0_of_method_from_exported_interface_has_or_is_using_name_1_from_private_module_2 : - ts.Diagnostics.Parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1; - } - break; - case 197: - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? - symbolAccesibilityResult.accessibility === 2 ? - ts.Diagnostics.Parameter_0_of_exported_function_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : - ts.Diagnostics.Parameter_0_of_exported_function_has_or_is_using_name_1_from_private_module_2 : - ts.Diagnostics.Parameter_0_of_exported_function_has_or_is_using_private_name_1; - break; - default: - ts.Debug.fail("This is unknown parent for parameter: " + node.parent.kind); - } - return { - diagnosticMessage: diagnosticMessage, - errorNode: node, - typeName: node.name - }; - } - } - function emitNode(node) { - switch (node.kind) { - case 197: - case 202: - case 205: - case 199: - case 198: - case 200: - case 201: - return emitModuleElement(node, isModuleElementVisible(node)); - case 177: - return emitModuleElement(node, isVariableStatementVisible(node)); - case 206: - return emitModuleElement(node, !node.importClause); - case 212: - return emitExportDeclaration(node); - case 135: - case 134: - case 133: - return writeFunctionDeclaration(node); - case 139: - case 138: - case 140: - return emitSignatureDeclarationWithJsDocComments(node); - case 136: - case 137: - return emitAccessorDeclaration(node); - case 132: - case 131: - return emitPropertyDeclaration(node); - case 223: - return emitEnumMemberDeclaration(node); - case 211: - return emitExportAssignment(node); - case 224: - return emitSourceFile(node); - } - } - function writeReferencePath(referencedFile) { - var declFileName = referencedFile.flags & 2048 - ? referencedFile.fileName - : ts.shouldEmitToOwnFile(referencedFile, compilerOptions) - ? ts.getOwnEmitOutputFilePath(referencedFile, host, ".d.ts") - : ts.removeFileExtension(compilerOptions.out) + ".d.ts"; - declFileName = ts.getRelativePathToDirectoryOrUrl(ts.getDirectoryPath(ts.normalizeSlashes(jsFilePath)), declFileName, host.getCurrentDirectory(), host.getCanonicalFileName, false); - referencePathsOutput += "/// " + newLine; - } - } - function writeDeclarationFile(jsFilePath, sourceFile, host, resolver, diagnostics) { - var emitDeclarationResult = emitDeclarations(host, resolver, diagnostics, jsFilePath, sourceFile); - if (!emitDeclarationResult.reportedDeclarationError) { - var declarationOutput = emitDeclarationResult.referencePathsOutput - + getDeclarationOutput(emitDeclarationResult.synchronousDeclarationOutput, emitDeclarationResult.moduleElementDeclarationEmitInfo); - ts.writeFile(host, diagnostics, ts.removeFileExtension(jsFilePath) + ".d.ts", declarationOutput, host.getCompilerOptions().emitBOM); - } - function getDeclarationOutput(synchronousDeclarationOutput, moduleElementDeclarationEmitInfo) { - var appliedSyncOutputPos = 0; - var declarationOutput = ""; - ts.forEach(moduleElementDeclarationEmitInfo, function (aliasEmitInfo) { - if (aliasEmitInfo.asynchronousOutput) { - declarationOutput += synchronousDeclarationOutput.substring(appliedSyncOutputPos, aliasEmitInfo.outputPos); - declarationOutput += getDeclarationOutput(aliasEmitInfo.asynchronousOutput, aliasEmitInfo.subModuleElementDeclarationEmitInfo); - appliedSyncOutputPos = aliasEmitInfo.outputPos; - } - }); - declarationOutput += synchronousDeclarationOutput.substring(appliedSyncOutputPos); - return declarationOutput; - } - } - ts.writeDeclarationFile = writeDeclarationFile; -})(ts || (ts = {})); -/// -/// -var ts; -(function (ts) { - function isExternalModuleOrDeclarationFile(sourceFile) { - return ts.isExternalModule(sourceFile) || ts.isDeclarationFile(sourceFile); - } - ts.isExternalModuleOrDeclarationFile = isExternalModuleOrDeclarationFile; - var TempVariableKind; - (function (TempVariableKind) { - TempVariableKind[TempVariableKind["auto"] = 0] = "auto"; - TempVariableKind[TempVariableKind["_i"] = 1] = "_i"; - TempVariableKind[TempVariableKind["_n"] = 2] = "_n"; - })(TempVariableKind || (TempVariableKind = {})); - function emitFiles(resolver, host, targetSourceFile) { - var compilerOptions = host.getCompilerOptions(); - var languageVersion = compilerOptions.target || 0; - var sourceMapDataList = compilerOptions.sourceMap ? [] : undefined; - var diagnostics = []; - var newLine = host.getNewLine(); - if (targetSourceFile === undefined) { - ts.forEach(host.getSourceFiles(), function (sourceFile) { - if (ts.shouldEmitToOwnFile(sourceFile, compilerOptions)) { - var jsFilePath = ts.getOwnEmitOutputFilePath(sourceFile, host, ".js"); - emitFile(jsFilePath, sourceFile); - } - }); - if (compilerOptions.out) { - emitFile(compilerOptions.out); - } - } - else { - if (ts.shouldEmitToOwnFile(targetSourceFile, compilerOptions)) { - var jsFilePath = ts.getOwnEmitOutputFilePath(targetSourceFile, host, ".js"); - emitFile(jsFilePath, targetSourceFile); - } - else if (!ts.isDeclarationFile(targetSourceFile) && compilerOptions.out) { - emitFile(compilerOptions.out); - } - } - diagnostics = ts.sortAndDeduplicateDiagnostics(diagnostics); - return { - emitSkipped: false, - diagnostics: diagnostics, - sourceMaps: sourceMapDataList - }; - function isNodeDescendentOf(node, ancestor) { - while (node) { - if (node === ancestor) - return true; - node = node.parent; - } - return false; - } - function isUniqueLocalName(name, container) { - for (var node = container; isNodeDescendentOf(node, container); node = node.nextContainer) { - if (node.locals && ts.hasProperty(node.locals, name)) { - if (node.locals[name].flags & (107455 | 1048576 | 8388608)) { - return false; - } - } - } - return true; - } - function emitJavaScript(jsFilePath, root) { - var writer = ts.createTextWriter(newLine); - var write = writer.write; - var writeTextOfNode = writer.writeTextOfNode; - var writeLine = writer.writeLine; - var increaseIndent = writer.increaseIndent; - var decreaseIndent = writer.decreaseIndent; - var preserveNewLines = compilerOptions.preserveNewLines || false; - var currentSourceFile; - var generatedNameSet; - var nodeToGeneratedName; - var blockScopedVariableToGeneratedName; - var computedPropertyNamesToGeneratedNames; - var extendsEmitted = false; - var decorateEmitted = false; - var tempCount = 0; - var tempVariables; - var tempParameters; - var externalImports; - var predefinedTempsInUse = 0; - var exportSpecifiers; - var exportEquals; - var hasExportStars; - var writeEmittedFiles = writeJavaScriptFile; - var detachedCommentsInfo; - var writeComment = ts.writeCommentRange; - var emit = emitNodeWithoutSourceMap; - var emitStart = function (node) { }; - var emitEnd = function (node) { }; - var emitToken = emitTokenText; - var scopeEmitStart = function (scopeDeclaration, scopeName) { }; - var scopeEmitEnd = function () { }; - var sourceMapData; - if (compilerOptions.sourceMap) { - initializeEmitterWithSourceMaps(); - } - if (root) { - emitSourceFile(root); - } - else { - ts.forEach(host.getSourceFiles(), function (sourceFile) { - if (!isExternalModuleOrDeclarationFile(sourceFile)) { - emitSourceFile(sourceFile); - } - }); - } - writeLine(); - writeEmittedFiles(writer.getText(), compilerOptions.emitBOM); - return; - function emitSourceFile(sourceFile) { - currentSourceFile = sourceFile; - emit(sourceFile); - } - function generateNameForNode(node) { - switch (node.kind) { - case 197: - case 198: - generateNameForFunctionOrClassDeclaration(node); - break; - case 202: - generateNameForModuleOrEnum(node); - generateNameForNode(node.body); - break; - case 201: - generateNameForModuleOrEnum(node); - break; - case 206: - generateNameForImportDeclaration(node); - break; - case 212: - generateNameForExportDeclaration(node); - break; - case 211: - generateNameForExportAssignment(node); - break; - case 224: - case 203: - ts.forEach(node.statements, generateNameForNode); - break; - } - } - function isUniqueName(name) { - return !resolver.hasGlobalName(name) && - !ts.hasProperty(currentSourceFile.identifiers, name) && - (!generatedNameSet || !ts.hasProperty(generatedNameSet, name)); - } - function nameConflictsWithSomeTempVariable(name) { - if (name.length < 2 || name.charCodeAt(0) !== 95) { - return false; - } - if (name === "_i") { - return !!(predefinedTempsInUse & 1); - } - if (name === "_n") { - return !!(predefinedTempsInUse & 2); - } - if (name.length === 2 && name.charCodeAt(1) >= 97 && name.charCodeAt(1) <= 122) { - var n = name.charCodeAt(1) - 97; - return n < tempCount; - } - else { - var n = +name.substring(1); - return !isNaN(n) && n >= 0 && n < (tempCount - 26); - } - } - function makeTempVariableName(location, tempVariableKind) { - var tempName; - if (tempVariableKind !== 0 && !(predefinedTempsInUse & tempVariableKind)) { - tempName = tempVariableKind === 1 ? "_i" : "_n"; - if (!resolver.resolvesToSomeValue(location, tempName)) { - predefinedTempsInUse |= tempVariableKind; - return tempName; - } - } - do { - var char = 97 + tempCount; - if (char !== 105 && char !== 110) { - if (tempCount < 26) { - tempName = "_" + String.fromCharCode(char); - } - else { - tempName = "_" + (tempCount - 26); - } - } - tempCount++; - } while (resolver.resolvesToSomeValue(location, tempName)); - return tempName; - } - function makeUniqueName(baseName) { - ts.Debug.assert(!!baseName); - if (baseName.charCodeAt(baseName.length - 1) !== 95) { - baseName += "_"; - } - var i = 1; - var generatedName; - while (true) { - generatedName = baseName + i; - if (isUniqueName(generatedName)) { - break; - } - i++; - } - if (!generatedNameSet) { - generatedNameSet = {}; - } - return generatedNameSet[generatedName] = generatedName; - } - function renameNode(node, name) { - var nodeId = ts.getNodeId(node); - if (!nodeToGeneratedName) { - nodeToGeneratedName = []; - } - return nodeToGeneratedName[nodeId] = ts.unescapeIdentifier(name); - } - function generateNameForFunctionOrClassDeclaration(node) { - if (!node.name) { - renameNode(node, makeUniqueName("default")); - } - } - function generateNameForModuleOrEnum(node) { - if (node.name.kind === 65) { - var name_12 = node.name.text; - renameNode(node, isUniqueLocalName(name_12, node) ? name_12 : makeUniqueName(name_12)); - } - } - function generateNameForImportOrExportDeclaration(node) { - var expr = ts.getExternalModuleName(node); - var baseName = expr.kind === 8 ? - ts.escapeIdentifier(ts.makeIdentifierFromModuleName(expr.text)) : "module"; - renameNode(node, makeUniqueName(baseName)); - } - function generateNameForImportDeclaration(node) { - if (node.importClause) { - generateNameForImportOrExportDeclaration(node); - } - } - function generateNameForExportDeclaration(node) { - if (node.moduleSpecifier) { - generateNameForImportOrExportDeclaration(node); - } - } - function generateNameForExportAssignment(node) { - if (node.expression && node.expression.kind !== 65) { - renameNode(node, makeUniqueName("default")); - } - } - function getGeneratedNameForNode(node) { - var nodeId = ts.getNodeId(node); - if (!nodeToGeneratedName || !nodeToGeneratedName[nodeId]) { - generateNameForNode(node); - } - return nodeToGeneratedName ? nodeToGeneratedName[nodeId] : undefined; - } - function initializeEmitterWithSourceMaps() { - var sourceMapDir; - var sourceMapSourceIndex = -1; - var sourceMapNameIndexMap = {}; - var sourceMapNameIndices = []; - function getSourceMapNameIndex() { - return sourceMapNameIndices.length ? sourceMapNameIndices[sourceMapNameIndices.length - 1] : -1; - } - var lastRecordedSourceMapSpan; - var lastEncodedSourceMapSpan = { - emittedLine: 1, - emittedColumn: 1, - sourceLine: 1, - sourceColumn: 1, - sourceIndex: 0 - }; - var lastEncodedNameIndex = 0; - function encodeLastRecordedSourceMapSpan() { - if (!lastRecordedSourceMapSpan || lastRecordedSourceMapSpan === lastEncodedSourceMapSpan) { - return; - } - var prevEncodedEmittedColumn = lastEncodedSourceMapSpan.emittedColumn; - if (lastEncodedSourceMapSpan.emittedLine == lastRecordedSourceMapSpan.emittedLine) { - if (sourceMapData.sourceMapMappings) { - sourceMapData.sourceMapMappings += ","; - } - } - else { - for (var encodedLine = lastEncodedSourceMapSpan.emittedLine; encodedLine < lastRecordedSourceMapSpan.emittedLine; encodedLine++) { - sourceMapData.sourceMapMappings += ";"; - } - prevEncodedEmittedColumn = 1; - } - sourceMapData.sourceMapMappings += base64VLQFormatEncode(lastRecordedSourceMapSpan.emittedColumn - prevEncodedEmittedColumn); - sourceMapData.sourceMapMappings += base64VLQFormatEncode(lastRecordedSourceMapSpan.sourceIndex - lastEncodedSourceMapSpan.sourceIndex); - sourceMapData.sourceMapMappings += base64VLQFormatEncode(lastRecordedSourceMapSpan.sourceLine - lastEncodedSourceMapSpan.sourceLine); - sourceMapData.sourceMapMappings += base64VLQFormatEncode(lastRecordedSourceMapSpan.sourceColumn - lastEncodedSourceMapSpan.sourceColumn); - if (lastRecordedSourceMapSpan.nameIndex >= 0) { - sourceMapData.sourceMapMappings += base64VLQFormatEncode(lastRecordedSourceMapSpan.nameIndex - lastEncodedNameIndex); - lastEncodedNameIndex = lastRecordedSourceMapSpan.nameIndex; - } - lastEncodedSourceMapSpan = lastRecordedSourceMapSpan; - sourceMapData.sourceMapDecodedMappings.push(lastEncodedSourceMapSpan); - function base64VLQFormatEncode(inValue) { - function base64FormatEncode(inValue) { - if (inValue < 64) { - return 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.charAt(inValue); - } - throw TypeError(inValue + ": not a 64 based value"); - } - if (inValue < 0) { - inValue = ((-inValue) << 1) + 1; - } - else { - inValue = inValue << 1; - } - var encodedStr = ""; - do { - var currentDigit = inValue & 31; - inValue = inValue >> 5; - if (inValue > 0) { - currentDigit = currentDigit | 32; - } - encodedStr = encodedStr + base64FormatEncode(currentDigit); - } while (inValue > 0); - return encodedStr; - } - } - function recordSourceMapSpan(pos) { - var sourceLinePos = ts.getLineAndCharacterOfPosition(currentSourceFile, pos); - sourceLinePos.line++; - sourceLinePos.character++; - var emittedLine = writer.getLine(); - var emittedColumn = writer.getColumn(); - if (!lastRecordedSourceMapSpan || - lastRecordedSourceMapSpan.emittedLine != emittedLine || - lastRecordedSourceMapSpan.emittedColumn != emittedColumn || - (lastRecordedSourceMapSpan.sourceIndex === sourceMapSourceIndex && - (lastRecordedSourceMapSpan.sourceLine > sourceLinePos.line || - (lastRecordedSourceMapSpan.sourceLine === sourceLinePos.line && lastRecordedSourceMapSpan.sourceColumn > sourceLinePos.character)))) { - encodeLastRecordedSourceMapSpan(); - lastRecordedSourceMapSpan = { - emittedLine: emittedLine, - emittedColumn: emittedColumn, - sourceLine: sourceLinePos.line, - sourceColumn: sourceLinePos.character, - nameIndex: getSourceMapNameIndex(), - sourceIndex: sourceMapSourceIndex - }; - } - else { - lastRecordedSourceMapSpan.sourceLine = sourceLinePos.line; - lastRecordedSourceMapSpan.sourceColumn = sourceLinePos.character; - lastRecordedSourceMapSpan.sourceIndex = sourceMapSourceIndex; - } - } - function recordEmitNodeStartSpan(node) { - recordSourceMapSpan(ts.skipTrivia(currentSourceFile.text, node.pos)); - } - function recordEmitNodeEndSpan(node) { - recordSourceMapSpan(node.end); - } - function writeTextWithSpanRecord(tokenKind, startPos, emitFn) { - var tokenStartPos = ts.skipTrivia(currentSourceFile.text, startPos); - recordSourceMapSpan(tokenStartPos); - var tokenEndPos = emitTokenText(tokenKind, tokenStartPos, emitFn); - recordSourceMapSpan(tokenEndPos); - return tokenEndPos; - } - function recordNewSourceFileStart(node) { - var sourcesDirectoryPath = compilerOptions.sourceRoot ? host.getCommonSourceDirectory() : sourceMapDir; - sourceMapData.sourceMapSources.push(ts.getRelativePathToDirectoryOrUrl(sourcesDirectoryPath, node.fileName, host.getCurrentDirectory(), host.getCanonicalFileName, true)); - sourceMapSourceIndex = sourceMapData.sourceMapSources.length - 1; - sourceMapData.inputSourceFileNames.push(node.fileName); - } - function recordScopeNameOfNode(node, scopeName) { - function recordScopeNameIndex(scopeNameIndex) { - sourceMapNameIndices.push(scopeNameIndex); - } - function recordScopeNameStart(scopeName) { - var scopeNameIndex = -1; - if (scopeName) { - var parentIndex = getSourceMapNameIndex(); - if (parentIndex !== -1) { - var name_13 = node.name; - if (!name_13 || name_13.kind !== 127) { - scopeName = "." + scopeName; - } - scopeName = sourceMapData.sourceMapNames[parentIndex] + scopeName; - } - scopeNameIndex = ts.getProperty(sourceMapNameIndexMap, scopeName); - if (scopeNameIndex === undefined) { - scopeNameIndex = sourceMapData.sourceMapNames.length; - sourceMapData.sourceMapNames.push(scopeName); - sourceMapNameIndexMap[scopeName] = scopeNameIndex; - } - } - recordScopeNameIndex(scopeNameIndex); - } - if (scopeName) { - recordScopeNameStart(scopeName); - } - else if (node.kind === 197 || - node.kind === 162 || - node.kind === 134 || - node.kind === 133 || - node.kind === 136 || - node.kind === 137 || - node.kind === 202 || - node.kind === 198 || - node.kind === 201) { - if (node.name) { - var name_14 = node.name; - scopeName = name_14.kind === 127 - ? ts.getTextOfNode(name_14) - : node.name.text; - } - recordScopeNameStart(scopeName); - } - else { - recordScopeNameIndex(getSourceMapNameIndex()); - } - } - function recordScopeNameEnd() { - sourceMapNameIndices.pop(); - } - ; - function writeCommentRangeWithMap(curentSourceFile, writer, comment, newLine) { - recordSourceMapSpan(comment.pos); - ts.writeCommentRange(currentSourceFile, writer, comment, newLine); - recordSourceMapSpan(comment.end); - } - function serializeSourceMapContents(version, file, sourceRoot, sources, names, mappings) { - if (typeof JSON !== "undefined") { - return JSON.stringify({ - version: version, - file: file, - sourceRoot: sourceRoot, - sources: sources, - names: names, - mappings: mappings - }); - } - return "{\"version\":" + version + ",\"file\":\"" + ts.escapeString(file) + "\",\"sourceRoot\":\"" + ts.escapeString(sourceRoot) + "\",\"sources\":[" + serializeStringArray(sources) + "],\"names\":[" + serializeStringArray(names) + "],\"mappings\":\"" + ts.escapeString(mappings) + "\"}"; - function serializeStringArray(list) { - var output = ""; - for (var i = 0, n = list.length; i < n; i++) { - if (i) { - output += ","; - } - output += "\"" + ts.escapeString(list[i]) + "\""; - } - return output; - } - } - function writeJavaScriptAndSourceMapFile(emitOutput, writeByteOrderMark) { - encodeLastRecordedSourceMapSpan(); - ts.writeFile(host, diagnostics, sourceMapData.sourceMapFilePath, serializeSourceMapContents(3, sourceMapData.sourceMapFile, sourceMapData.sourceMapSourceRoot, sourceMapData.sourceMapSources, sourceMapData.sourceMapNames, sourceMapData.sourceMapMappings), false); - sourceMapDataList.push(sourceMapData); - writeJavaScriptFile(emitOutput + "//# sourceMappingURL=" + sourceMapData.jsSourceMappingURL, writeByteOrderMark); - } - var sourceMapJsFile = ts.getBaseFileName(ts.normalizeSlashes(jsFilePath)); - sourceMapData = { - sourceMapFilePath: jsFilePath + ".map", - jsSourceMappingURL: sourceMapJsFile + ".map", - sourceMapFile: sourceMapJsFile, - sourceMapSourceRoot: compilerOptions.sourceRoot || "", - sourceMapSources: [], - inputSourceFileNames: [], - sourceMapNames: [], - sourceMapMappings: "", - sourceMapDecodedMappings: [] - }; - sourceMapData.sourceMapSourceRoot = ts.normalizeSlashes(sourceMapData.sourceMapSourceRoot); - if (sourceMapData.sourceMapSourceRoot.length && sourceMapData.sourceMapSourceRoot.charCodeAt(sourceMapData.sourceMapSourceRoot.length - 1) !== 47) { - sourceMapData.sourceMapSourceRoot += ts.directorySeparator; - } - if (compilerOptions.mapRoot) { - sourceMapDir = ts.normalizeSlashes(compilerOptions.mapRoot); - if (root) { - sourceMapDir = ts.getDirectoryPath(ts.getSourceFilePathInNewDir(root, host, sourceMapDir)); - } - if (!ts.isRootedDiskPath(sourceMapDir) && !ts.isUrl(sourceMapDir)) { - sourceMapDir = ts.combinePaths(host.getCommonSourceDirectory(), sourceMapDir); - sourceMapData.jsSourceMappingURL = ts.getRelativePathToDirectoryOrUrl(ts.getDirectoryPath(ts.normalizePath(jsFilePath)), ts.combinePaths(sourceMapDir, sourceMapData.jsSourceMappingURL), host.getCurrentDirectory(), host.getCanonicalFileName, true); - } - else { - sourceMapData.jsSourceMappingURL = ts.combinePaths(sourceMapDir, sourceMapData.jsSourceMappingURL); - } - } - else { - sourceMapDir = ts.getDirectoryPath(ts.normalizePath(jsFilePath)); - } - function emitNodeWithSourceMap(node, allowGeneratedIdentifiers) { - if (node) { - if (ts.nodeIsSynthesized(node)) { - return emitNodeWithoutSourceMap(node, false); - } - if (node.kind != 224) { - recordEmitNodeStartSpan(node); - emitNodeWithoutSourceMap(node, allowGeneratedIdentifiers); - recordEmitNodeEndSpan(node); - } - else { - recordNewSourceFileStart(node); - emitNodeWithoutSourceMap(node, false); - } - } - } - writeEmittedFiles = writeJavaScriptAndSourceMapFile; - emit = emitNodeWithSourceMap; - emitStart = recordEmitNodeStartSpan; - emitEnd = recordEmitNodeEndSpan; - emitToken = writeTextWithSpanRecord; - scopeEmitStart = recordScopeNameOfNode; - scopeEmitEnd = recordScopeNameEnd; - writeComment = writeCommentRangeWithMap; - } - function writeJavaScriptFile(emitOutput, writeByteOrderMark) { - ts.writeFile(host, diagnostics, jsFilePath, emitOutput, writeByteOrderMark); - } - function createTempVariable(location, tempVariableKind) { - if (tempVariableKind === void 0) { tempVariableKind = 0; } - var result = ts.createSynthesizedNode(65); - result.text = makeTempVariableName(location, tempVariableKind); - return result; - } - function recordTempDeclaration(name) { - if (!tempVariables) { - tempVariables = []; - } - tempVariables.push(name); - } - function createAndRecordTempVariable(location, tempVariableKind) { - var temp = createTempVariable(location, tempVariableKind); - recordTempDeclaration(temp); - return temp; - } - function emitTempDeclarations(newLine) { - if (tempVariables) { - if (newLine) { - writeLine(); - } - else { - write(" "); - } - write("var "); - emitCommaList(tempVariables); - write(";"); - } - } - function emitTokenText(tokenKind, startPos, emitFn) { - var tokenString = ts.tokenToString(tokenKind); - if (emitFn) { - emitFn(); - } - else { - write(tokenString); - } - return startPos + tokenString.length; - } - function emitOptional(prefix, node) { - if (node) { - write(prefix); - emit(node); - } - } - function emitParenthesizedIf(node, parenthesized) { - if (parenthesized) { - write("("); - } - emit(node); - if (parenthesized) { - write(")"); - } - } - function emitTrailingCommaIfPresent(nodeList) { - if (nodeList.hasTrailingComma) { - write(","); - } - } - function emitLinePreservingList(parent, nodes, allowTrailingComma, spacesBetweenBraces) { - ts.Debug.assert(nodes.length > 0); - increaseIndent(); - if (preserveNewLines && nodeStartPositionsAreOnSameLine(parent, nodes[0])) { - if (spacesBetweenBraces) { - write(" "); - } - } - else { - writeLine(); - } - for (var i = 0, n = nodes.length; i < n; i++) { - if (i) { - if (preserveNewLines && nodeEndIsOnSameLineAsNodeStart(nodes[i - 1], nodes[i])) { - write(", "); - } - else { - write(","); - writeLine(); - } - } - emit(nodes[i]); - } - if (nodes.hasTrailingComma && allowTrailingComma) { - write(","); - } - decreaseIndent(); - if (preserveNewLines && nodeEndPositionsAreOnSameLine(parent, ts.lastOrUndefined(nodes))) { - if (spacesBetweenBraces) { - write(" "); - } - } - else { - writeLine(); - } - } - function emitList(nodes, start, count, multiLine, trailingComma) { - for (var i = 0; i < count; i++) { - if (multiLine) { - if (i) { - write(","); - } - writeLine(); - } - else { - if (i) { - write(", "); - } - } - emit(nodes[start + i]); - } - if (trailingComma) { - write(","); - } - if (multiLine) { - writeLine(); - } - } - function emitCommaList(nodes) { - if (nodes) { - emitList(nodes, 0, nodes.length, false, false); - } - } - function emitLines(nodes) { - emitLinesStartingAt(nodes, 0); - } - function emitLinesStartingAt(nodes, startIndex) { - for (var i = startIndex; i < nodes.length; i++) { - writeLine(); - emit(nodes[i]); - } - } - function isBinaryOrOctalIntegerLiteral(node, text) { - if (node.kind === 7 && text.length > 1) { - switch (text.charCodeAt(1)) { - case 98: - case 66: - case 111: - case 79: - return true; - } - } - return false; - } - function emitLiteral(node) { - var text = getLiteralText(node); - if (compilerOptions.sourceMap && (node.kind === 8 || ts.isTemplateLiteralKind(node.kind))) { - writer.writeLiteral(text); - } - else if (languageVersion < 2 && isBinaryOrOctalIntegerLiteral(node, text)) { - write(node.text); - } - else { - write(text); - } - } - function getLiteralText(node) { - if (languageVersion < 2 && (ts.isTemplateLiteralKind(node.kind) || node.hasExtendedUnicodeEscape)) { - return getQuotedEscapedLiteralText('"', node.text, '"'); - } - if (node.parent) { - return ts.getSourceTextOfNodeFromSourceFile(currentSourceFile, node); - } - switch (node.kind) { - case 8: - return getQuotedEscapedLiteralText('"', node.text, '"'); - case 10: - return getQuotedEscapedLiteralText('`', node.text, '`'); - case 11: - return getQuotedEscapedLiteralText('`', node.text, '${'); - case 12: - return getQuotedEscapedLiteralText('}', node.text, '${'); - case 13: - return getQuotedEscapedLiteralText('}', node.text, '`'); - case 7: - return node.text; - } - ts.Debug.fail("Literal kind '" + node.kind + "' not accounted for."); - } - function getQuotedEscapedLiteralText(leftQuote, text, rightQuote) { - return leftQuote + ts.escapeNonAsciiCharacters(ts.escapeString(text)) + rightQuote; - } - function emitDownlevelRawTemplateLiteral(node) { - var text = ts.getSourceTextOfNodeFromSourceFile(currentSourceFile, node); - var isLast = node.kind === 10 || node.kind === 13; - text = text.substring(1, text.length - (isLast ? 1 : 2)); - text = text.replace(/\r\n?/g, "\n"); - text = ts.escapeString(text); - write('"' + text + '"'); - } - function emitDownlevelTaggedTemplateArray(node, literalEmitter) { - write("["); - if (node.template.kind === 10) { - literalEmitter(node.template); - } - else { - literalEmitter(node.template.head); - ts.forEach(node.template.templateSpans, function (child) { - write(", "); - literalEmitter(child.literal); - }); - } - write("]"); - } - function emitDownlevelTaggedTemplate(node) { - var tempVariable = createAndRecordTempVariable(node); - write("("); - emit(tempVariable); - write(" = "); - emitDownlevelTaggedTemplateArray(node, emit); - write(", "); - emit(tempVariable); - write(".raw = "); - emitDownlevelTaggedTemplateArray(node, emitDownlevelRawTemplateLiteral); - write(", "); - emitParenthesizedIf(node.tag, needsParenthesisForPropertyAccessOrInvocation(node.tag)); - write("("); - emit(tempVariable); - if (node.template.kind === 171) { - ts.forEach(node.template.templateSpans, function (templateSpan) { - write(", "); - var needsParens = templateSpan.expression.kind === 169 - && templateSpan.expression.operatorToken.kind === 23; - emitParenthesizedIf(templateSpan.expression, needsParens); - }); - } - write("))"); - } - function emitTemplateExpression(node) { - if (languageVersion >= 2) { - ts.forEachChild(node, emit); - return; - } - var emitOuterParens = ts.isExpression(node.parent) - && templateNeedsParens(node, node.parent); - if (emitOuterParens) { - write("("); - } - var headEmitted = false; - if (shouldEmitTemplateHead()) { - emitLiteral(node.head); - headEmitted = true; - } - for (var i = 0, n = node.templateSpans.length; i < n; i++) { - var templateSpan = node.templateSpans[i]; - var needsParens = templateSpan.expression.kind !== 161 - && comparePrecedenceToBinaryPlus(templateSpan.expression) !== 1; - if (i > 0 || headEmitted) { - write(" + "); - } - emitParenthesizedIf(templateSpan.expression, needsParens); - if (templateSpan.literal.text.length !== 0) { - write(" + "); - emitLiteral(templateSpan.literal); - } - } - if (emitOuterParens) { - write(")"); - } - function shouldEmitTemplateHead() { - // If this expression has an empty head literal and the first template span has a non-empty - // literal, then emitting the empty head literal is not necessary. - // `${ foo } and ${ bar }` - // can be emitted as - // foo + " and " + bar - // This is because it is only required that one of the first two operands in the emit - // output must be a string literal, so that the other operand and all following operands - // are forced into strings. - // - // If the first template span has an empty literal, then the head must still be emitted. - // `${ foo }${ bar }` - // must still be emitted as - // "" + foo + bar - ts.Debug.assert(node.templateSpans.length !== 0); - return node.head.text.length !== 0 || node.templateSpans[0].literal.text.length === 0; - } - function templateNeedsParens(template, parent) { - switch (parent.kind) { - case 157: - case 158: - return parent.expression === template; - case 159: - case 161: - return false; - default: - return comparePrecedenceToBinaryPlus(parent) !== -1; - } - } - function comparePrecedenceToBinaryPlus(expression) { - switch (expression.kind) { - case 169: - switch (expression.operatorToken.kind) { - case 35: - case 36: - case 37: - return 1; - case 33: - case 34: - return 0; - default: - return -1; - } - case 170: - return -1; - default: - return 1; - } - } - } - function emitTemplateSpan(span) { - emit(span.expression); - emit(span.literal); - } - function emitExpressionForPropertyName(node) { - ts.Debug.assert(node.kind !== 152); - if (node.kind === 8) { - emitLiteral(node); - } - else if (node.kind === 127) { - if (ts.nodeIsDecorated(node.parent)) { - if (!computedPropertyNamesToGeneratedNames) { - computedPropertyNamesToGeneratedNames = []; - } - var generatedName = computedPropertyNamesToGeneratedNames[node.id]; - if (generatedName) { - write(generatedName); - return; - } - var generatedVariable = createTempVariable(node); - generatedName = generatedVariable.text; - recordTempDeclaration(generatedVariable); - computedPropertyNamesToGeneratedNames[node.id] = generatedName; - write(generatedName); - write(" = "); - } - emit(node.expression); - } - else { - write("\""); - if (node.kind === 7) { - write(node.text); - } - else { - writeTextOfNode(currentSourceFile, node); - } - write("\""); - } - } - function isNotExpressionIdentifier(node) { - var parent = node.parent; - switch (parent.kind) { - case 129: - case 195: - case 152: - case 132: - case 131: - case 221: - case 222: - case 223: - case 134: - case 133: - case 197: - case 136: - case 137: - case 162: - case 198: - case 199: - case 201: - case 202: - case 205: - case 207: - case 208: - return parent.name === node; - case 210: - case 214: - return parent.name === node || parent.propertyName === node; - case 187: - case 186: - case 211: - return false; - case 191: - return node.parent.label === node; - } - } - function emitExpressionIdentifier(node) { - var substitution = resolver.getExpressionNameSubstitution(node, getGeneratedNameForNode); - if (substitution) { - write(substitution); - } - else { - writeTextOfNode(currentSourceFile, node); - } - } - function getGeneratedNameForIdentifier(node) { - if (ts.nodeIsSynthesized(node) || !blockScopedVariableToGeneratedName) { - return undefined; - } - var variableId = resolver.getBlockScopedVariableId(node); - if (variableId === undefined) { - return undefined; - } - return blockScopedVariableToGeneratedName[variableId]; - } - function emitIdentifier(node, allowGeneratedIdentifiers) { - if (allowGeneratedIdentifiers) { - var generatedName = getGeneratedNameForIdentifier(node); - if (generatedName) { - write(generatedName); - return; - } - } - if (!node.parent) { - write(node.text); - } - else if (!isNotExpressionIdentifier(node)) { - emitExpressionIdentifier(node); - } - else { - writeTextOfNode(currentSourceFile, node); - } - } - function emitThis(node) { - if (resolver.getNodeCheckFlags(node) & 2) { - write("_this"); - } - else { - write("this"); - } - } - function emitSuper(node) { - if (languageVersion >= 2) { - write("super"); - } - else { - var flags = resolver.getNodeCheckFlags(node); - if (flags & 16) { - write("_super.prototype"); - } - else { - write("_super"); - } - } - } - function emitObjectBindingPattern(node) { - write("{ "); - var elements = node.elements; - emitList(elements, 0, elements.length, false, elements.hasTrailingComma); - write(" }"); - } - function emitArrayBindingPattern(node) { - write("["); - var elements = node.elements; - emitList(elements, 0, elements.length, false, elements.hasTrailingComma); - write("]"); - } - function emitBindingElement(node) { - if (node.propertyName) { - emit(node.propertyName, false); - write(": "); - } - if (node.dotDotDotToken) { - write("..."); - } - if (ts.isBindingPattern(node.name)) { - emit(node.name); - } - else { - emitModuleMemberName(node); - } - emitOptional(" = ", node.initializer); - } - function emitSpreadElementExpression(node) { - write("..."); - emit(node.expression); - } - function needsParenthesisForPropertyAccessOrInvocation(node) { - switch (node.kind) { - case 65: - case 153: - case 155: - case 156: - case 157: - case 161: - return false; - } - return true; - } - function emitListWithSpread(elements, multiLine, trailingComma) { - var pos = 0; - var group = 0; - var length = elements.length; - while (pos < length) { - if (group === 1) { - write(".concat("); - } - else if (group > 1) { - write(", "); - } - var e = elements[pos]; - if (e.kind === 173) { - e = e.expression; - emitParenthesizedIf(e, group === 0 && needsParenthesisForPropertyAccessOrInvocation(e)); - pos++; - } - else { - var i = pos; - while (i < length && elements[i].kind !== 173) { - i++; - } - write("["); - if (multiLine) { - increaseIndent(); - } - emitList(elements, pos, i - pos, multiLine, trailingComma && i === length); - if (multiLine) { - decreaseIndent(); - } - write("]"); - pos = i; - } - group++; - } - if (group > 1) { - write(")"); - } - } - function isSpreadElementExpression(node) { - return node.kind === 173; - } - function emitArrayLiteral(node) { - var elements = node.elements; - if (elements.length === 0) { - write("[]"); - } - else if (languageVersion >= 2 || !ts.forEach(elements, isSpreadElementExpression)) { - write("["); - emitLinePreservingList(node, node.elements, elements.hasTrailingComma, false); - write("]"); - } - else { - emitListWithSpread(elements, (node.flags & 512) !== 0, elements.hasTrailingComma); - } - } - function emitDownlevelObjectLiteralWithComputedProperties(node, firstComputedPropertyIndex) { - var parenthesizedObjectLiteral = createDownlevelObjectLiteralWithComputedProperties(node, firstComputedPropertyIndex); - return emit(parenthesizedObjectLiteral); - } - function createDownlevelObjectLiteralWithComputedProperties(originalObjectLiteral, firstComputedPropertyIndex) { - var tempVar = createAndRecordTempVariable(originalObjectLiteral); - var initialObjectLiteral = ts.createSynthesizedNode(154); - initialObjectLiteral.properties = originalObjectLiteral.properties.slice(0, firstComputedPropertyIndex); - initialObjectLiteral.flags |= 512; - var propertyPatches = createBinaryExpression(tempVar, 53, initialObjectLiteral); - ts.forEach(originalObjectLiteral.properties, function (property) { - var patchedProperty = tryCreatePatchingPropertyAssignment(originalObjectLiteral, tempVar, property); - if (patchedProperty) { - propertyPatches = createBinaryExpression(propertyPatches, 23, patchedProperty); - } - }); - propertyPatches = createBinaryExpression(propertyPatches, 23, createIdentifier(tempVar.text, true)); - var result = createParenthesizedExpression(propertyPatches); - return result; - } - function addCommentsToSynthesizedNode(node, leadingCommentRanges, trailingCommentRanges) { - node.leadingCommentRanges = leadingCommentRanges; - node.trailingCommentRanges = trailingCommentRanges; - } - function tryCreatePatchingPropertyAssignment(objectLiteral, tempVar, property) { - var leftHandSide = createMemberAccessForPropertyName(tempVar, property.name); - var maybeRightHandSide = tryGetRightHandSideOfPatchingPropertyAssignment(objectLiteral, property); - return maybeRightHandSide && createBinaryExpression(leftHandSide, 53, maybeRightHandSide, true); - } - function tryGetRightHandSideOfPatchingPropertyAssignment(objectLiteral, property) { - switch (property.kind) { - case 221: - return property.initializer; - case 222: - return createIdentifier(resolver.getExpressionNameSubstitution(property.name, getGeneratedNameForNode)); - case 134: - return createFunctionExpression(property.parameters, property.body); - case 136: - case 137: - var _a = ts.getAllAccessorDeclarations(objectLiteral.properties, property), firstAccessor = _a.firstAccessor, getAccessor = _a.getAccessor, setAccessor = _a.setAccessor; - if (firstAccessor !== property) { - return undefined; - } - var propertyDescriptor = ts.createSynthesizedNode(154); - var descriptorProperties = []; - if (getAccessor) { - var getProperty_1 = createPropertyAssignment(createIdentifier("get"), createFunctionExpression(getAccessor.parameters, getAccessor.body)); - descriptorProperties.push(getProperty_1); - } - if (setAccessor) { - var setProperty = createPropertyAssignment(createIdentifier("set"), createFunctionExpression(setAccessor.parameters, setAccessor.body)); - descriptorProperties.push(setProperty); - } - var trueExpr = ts.createSynthesizedNode(95); - var enumerableTrue = createPropertyAssignment(createIdentifier("enumerable"), trueExpr); - descriptorProperties.push(enumerableTrue); - var configurableTrue = createPropertyAssignment(createIdentifier("configurable"), trueExpr); - descriptorProperties.push(configurableTrue); - propertyDescriptor.properties = descriptorProperties; - var objectDotDefineProperty = createPropertyAccessExpression(createIdentifier("Object"), createIdentifier("defineProperty")); - return createCallExpression(objectDotDefineProperty, createNodeArray(propertyDescriptor)); - default: - ts.Debug.fail("ObjectLiteralElement kind " + property.kind + " not accounted for."); - } - } - function createParenthesizedExpression(expression) { - var result = ts.createSynthesizedNode(161); - result.expression = expression; - return result; - } - function createNodeArray() { - var elements = []; - for (var _i = 0; _i < arguments.length; _i++) { - elements[_i - 0] = arguments[_i]; - } - var result = elements; - result.pos = -1; - result.end = -1; - return result; - } - function createBinaryExpression(left, operator, right, startsOnNewLine) { - var result = ts.createSynthesizedNode(169, startsOnNewLine); - result.operatorToken = ts.createSynthesizedNode(operator); - result.left = left; - result.right = right; - return result; - } - function createExpressionStatement(expression) { - var result = ts.createSynthesizedNode(179); - result.expression = expression; - return result; - } - function createMemberAccessForPropertyName(expression, memberName) { - if (memberName.kind === 65) { - return createPropertyAccessExpression(expression, memberName); - } - else if (memberName.kind === 8 || memberName.kind === 7) { - return createElementAccessExpression(expression, memberName); - } - else if (memberName.kind === 127) { - return createElementAccessExpression(expression, memberName.expression); - } - else { - ts.Debug.fail("Kind '" + memberName.kind + "' not accounted for."); - } - } - function createPropertyAssignment(name, initializer) { - var result = ts.createSynthesizedNode(221); - result.name = name; - result.initializer = initializer; - return result; - } - function createFunctionExpression(parameters, body) { - var result = ts.createSynthesizedNode(162); - result.parameters = parameters; - result.body = body; - return result; - } - function createPropertyAccessExpression(expression, name) { - var result = ts.createSynthesizedNode(155); - result.expression = expression; - result.dotToken = ts.createSynthesizedNode(20); - result.name = name; - return result; - } - function createElementAccessExpression(expression, argumentExpression) { - var result = ts.createSynthesizedNode(156); - result.expression = expression; - result.argumentExpression = argumentExpression; - return result; - } - function createIdentifier(name, startsOnNewLine) { - var result = ts.createSynthesizedNode(65, startsOnNewLine); - result.text = name; - return result; - } - function createCallExpression(invokedExpression, arguments) { - var result = ts.createSynthesizedNode(157); - result.expression = invokedExpression; - result.arguments = arguments; - return result; - } - function emitObjectLiteral(node) { - var properties = node.properties; - if (languageVersion < 2) { - var numProperties = properties.length; - var numInitialNonComputedProperties = numProperties; - for (var i = 0, n = properties.length; i < n; i++) { - if (properties[i].name.kind === 127) { - numInitialNonComputedProperties = i; - break; - } - } - var hasComputedProperty = numInitialNonComputedProperties !== properties.length; - if (hasComputedProperty) { - emitDownlevelObjectLiteralWithComputedProperties(node, numInitialNonComputedProperties); - return; - } - } - write("{"); - if (properties.length) { - emitLinePreservingList(node, properties, languageVersion >= 1, true); - } - write("}"); - } - function emitComputedPropertyName(node) { - write("["); - emitExpressionForPropertyName(node); - write("]"); - } - function emitMethod(node) { - emit(node.name, false); - if (languageVersion < 2) { - write(": function "); - } - emitSignatureAndBody(node); - } - function emitPropertyAssignment(node) { - emit(node.name, false); - write(": "); - emit(node.initializer); - } - function emitShorthandPropertyAssignment(node) { - emit(node.name, false); - if (languageVersion < 2) { - write(": "); - var generatedName = getGeneratedNameForIdentifier(node.name); - if (generatedName) { - write(generatedName); - } - else { - emitExpressionIdentifier(node.name); - } - } - else if (resolver.getExpressionNameSubstitution(node.name, getGeneratedNameForNode)) { - write(": "); - emitExpressionIdentifier(node.name); - } - } - function tryEmitConstantValue(node) { - var constantValue = resolver.getConstantValue(node); - if (constantValue !== undefined) { - write(constantValue.toString()); - if (!compilerOptions.removeComments) { - var propertyName = node.kind === 155 ? ts.declarationNameToString(node.name) : ts.getTextOfNode(node.argumentExpression); - write(" /* " + propertyName + " */"); - } - return true; - } - return false; - } - function indentIfOnDifferentLines(parent, node1, node2, valueToWriteWhenNotIndenting) { - var realNodesAreOnDifferentLines = preserveNewLines && !ts.nodeIsSynthesized(parent) && !nodeEndIsOnSameLineAsNodeStart(node1, node2); - var synthesizedNodeIsOnDifferentLine = synthesizedNodeStartsOnNewLine(node2); - if (realNodesAreOnDifferentLines || synthesizedNodeIsOnDifferentLine) { - increaseIndent(); - writeLine(); - return true; - } - else { - if (valueToWriteWhenNotIndenting) { - write(valueToWriteWhenNotIndenting); - } - return false; - } - } - function emitPropertyAccess(node) { - if (tryEmitConstantValue(node)) { - return; - } - emit(node.expression); - var indentedBeforeDot = indentIfOnDifferentLines(node, node.expression, node.dotToken); - write("."); - var indentedAfterDot = indentIfOnDifferentLines(node, node.dotToken, node.name); - emit(node.name, false); - decreaseIndentIf(indentedBeforeDot, indentedAfterDot); - } - function emitQualifiedName(node) { - emit(node.left); - write("."); - emit(node.right); - } - function emitIndexedAccess(node) { - if (tryEmitConstantValue(node)) { - return; - } - emit(node.expression); - write("["); - emit(node.argumentExpression); - write("]"); - } - function hasSpreadElement(elements) { - return ts.forEach(elements, function (e) { return e.kind === 173; }); - } - function skipParentheses(node) { - while (node.kind === 161 || node.kind === 160) { - node = node.expression; - } - return node; - } - function emitCallTarget(node) { - if (node.kind === 65 || node.kind === 93 || node.kind === 91) { - emit(node); - return node; - } - var temp = createAndRecordTempVariable(node); - write("("); - emit(temp); - write(" = "); - emit(node); - write(")"); - return temp; - } - function emitCallWithSpread(node) { - var target; - var expr = skipParentheses(node.expression); - if (expr.kind === 155) { - target = emitCallTarget(expr.expression); - write("."); - emit(expr.name); - } - else if (expr.kind === 156) { - target = emitCallTarget(expr.expression); - write("["); - emit(expr.argumentExpression); - write("]"); - } - else if (expr.kind === 91) { - target = expr; - write("_super"); - } - else { - emit(node.expression); - } - write(".apply("); - if (target) { - if (target.kind === 91) { - emitThis(target); - } - else { - emit(target); - } - } - else { - write("void 0"); - } - write(", "); - emitListWithSpread(node.arguments, false, false); - write(")"); - } - function emitCallExpression(node) { - if (languageVersion < 2 && hasSpreadElement(node.arguments)) { - emitCallWithSpread(node); - return; - } - var superCall = false; - if (node.expression.kind === 91) { - emitSuper(node.expression); - superCall = true; - } - else { - emit(node.expression); - superCall = node.expression.kind === 155 && node.expression.expression.kind === 91; - } - if (superCall && languageVersion < 2) { - write(".call("); - emitThis(node.expression); - if (node.arguments.length) { - write(", "); - emitCommaList(node.arguments); - } - write(")"); - } - else { - write("("); - emitCommaList(node.arguments); - write(")"); - } - } - function emitNewExpression(node) { - write("new "); - emit(node.expression); - if (node.arguments) { - write("("); - emitCommaList(node.arguments); - write(")"); - } - } - function emitTaggedTemplateExpression(node) { - if (languageVersion >= 2) { - emit(node.tag); - write(" "); - emit(node.template); - } - else { - emitDownlevelTaggedTemplate(node); - } - } - function emitParenExpression(node) { - if (!node.parent || node.parent.kind !== 163) { - if (node.expression.kind === 160) { - var operand = node.expression.expression; - while (operand.kind == 160) { - operand = operand.expression; - } - if (operand.kind !== 167 && - operand.kind !== 166 && - operand.kind !== 165 && - operand.kind !== 164 && - operand.kind !== 168 && - operand.kind !== 158 && - !(operand.kind === 157 && node.parent.kind === 158) && - !(operand.kind === 162 && node.parent.kind === 157)) { - emit(operand); - return; - } - } - } - write("("); - emit(node.expression); - write(")"); - } - function emitDeleteExpression(node) { - write(ts.tokenToString(74)); - write(" "); - emit(node.expression); - } - function emitVoidExpression(node) { - write(ts.tokenToString(99)); - write(" "); - emit(node.expression); - } - function emitTypeOfExpression(node) { - write(ts.tokenToString(97)); - write(" "); - emit(node.expression); - } - function emitPrefixUnaryExpression(node) { - write(ts.tokenToString(node.operator)); - if (node.operand.kind === 167) { - var operand = node.operand; - if (node.operator === 33 && (operand.operator === 33 || operand.operator === 38)) { - write(" "); - } - else if (node.operator === 34 && (operand.operator === 34 || operand.operator === 39)) { - write(" "); - } - } - emit(node.operand); - } - function emitPostfixUnaryExpression(node) { - emit(node.operand); - write(ts.tokenToString(node.operator)); - } - function emitBinaryExpression(node) { - if (languageVersion < 2 && node.operatorToken.kind === 53 && - (node.left.kind === 154 || node.left.kind === 153)) { - emitDestructuring(node, node.parent.kind === 179); - } - else { - emit(node.left); - var indentedBeforeOperator = indentIfOnDifferentLines(node, node.left, node.operatorToken, node.operatorToken.kind !== 23 ? " " : undefined); - write(ts.tokenToString(node.operatorToken.kind)); - var indentedAfterOperator = indentIfOnDifferentLines(node, node.operatorToken, node.right, " "); - emit(node.right); - decreaseIndentIf(indentedBeforeOperator, indentedAfterOperator); - } - } - function synthesizedNodeStartsOnNewLine(node) { - return ts.nodeIsSynthesized(node) && node.startsOnNewLine; - } - function emitConditionalExpression(node) { - emit(node.condition); - var indentedBeforeQuestion = indentIfOnDifferentLines(node, node.condition, node.questionToken, " "); - write("?"); - var indentedAfterQuestion = indentIfOnDifferentLines(node, node.questionToken, node.whenTrue, " "); - emit(node.whenTrue); - decreaseIndentIf(indentedBeforeQuestion, indentedAfterQuestion); - var indentedBeforeColon = indentIfOnDifferentLines(node, node.whenTrue, node.colonToken, " "); - write(":"); - var indentedAfterColon = indentIfOnDifferentLines(node, node.colonToken, node.whenFalse, " "); - emit(node.whenFalse); - decreaseIndentIf(indentedBeforeColon, indentedAfterColon); - } - function decreaseIndentIf(value1, value2) { - if (value1) { - decreaseIndent(); - } - if (value2) { - decreaseIndent(); - } - } - function isSingleLineEmptyBlock(node) { - if (node && node.kind === 176) { - var block = node; - return block.statements.length === 0 && nodeEndIsOnSameLineAsNodeStart(block, block); - } - } - function emitBlock(node) { - if (preserveNewLines && isSingleLineEmptyBlock(node)) { - emitToken(14, node.pos); - write(" "); - emitToken(15, node.statements.end); - return; - } - emitToken(14, node.pos); - increaseIndent(); - scopeEmitStart(node.parent); - if (node.kind === 203) { - ts.Debug.assert(node.parent.kind === 202); - emitCaptureThisForNodeIfNecessary(node.parent); - } - emitLines(node.statements); - if (node.kind === 203) { - emitTempDeclarations(true); - } - decreaseIndent(); - writeLine(); - emitToken(15, node.statements.end); - scopeEmitEnd(); - } - function emitEmbeddedStatement(node) { - if (node.kind === 176) { - write(" "); - emit(node); - } - else { - increaseIndent(); - writeLine(); - emit(node); - decreaseIndent(); - } - } - function emitExpressionStatement(node) { - emitParenthesizedIf(node.expression, node.expression.kind === 163); - write(";"); - } - function emitIfStatement(node) { - var endPos = emitToken(84, node.pos); - write(" "); - endPos = emitToken(16, endPos); - emit(node.expression); - emitToken(17, node.expression.end); - emitEmbeddedStatement(node.thenStatement); - if (node.elseStatement) { - writeLine(); - emitToken(76, node.thenStatement.end); - if (node.elseStatement.kind === 180) { - write(" "); - emit(node.elseStatement); - } - else { - emitEmbeddedStatement(node.elseStatement); - } - } - } - function emitDoStatement(node) { - write("do"); - emitEmbeddedStatement(node.statement); - if (node.statement.kind === 176) { - write(" "); - } - else { - writeLine(); - } - write("while ("); - emit(node.expression); - write(");"); - } - function emitWhileStatement(node) { - write("while ("); - emit(node.expression); - write(")"); - emitEmbeddedStatement(node.statement); - } - function emitStartOfVariableDeclarationList(decl, startPos) { - var tokenKind = 98; - if (decl && languageVersion >= 2) { - if (ts.isLet(decl)) { - tokenKind = 105; - } - else if (ts.isConst(decl)) { - tokenKind = 70; - } - } - if (startPos !== undefined) { - emitToken(tokenKind, startPos); - } - else { - switch (tokenKind) { - case 98: - return write("var "); - case 105: - return write("let "); - case 70: - return write("const "); - } - } - } - function emitForStatement(node) { - var endPos = emitToken(82, node.pos); - write(" "); - endPos = emitToken(16, endPos); - if (node.initializer && node.initializer.kind === 196) { - var variableDeclarationList = node.initializer; - var declarations = variableDeclarationList.declarations; - emitStartOfVariableDeclarationList(declarations[0], endPos); - write(" "); - emitCommaList(declarations); - } - else if (node.initializer) { - emit(node.initializer); - } - write(";"); - emitOptional(" ", node.condition); - write(";"); - emitOptional(" ", node.iterator); - write(")"); - emitEmbeddedStatement(node.statement); - } - function emitForInOrForOfStatement(node) { - if (languageVersion < 2 && node.kind === 185) { - return emitDownLevelForOfStatement(node); - } - var endPos = emitToken(82, node.pos); - write(" "); - endPos = emitToken(16, endPos); - if (node.initializer.kind === 196) { - var variableDeclarationList = node.initializer; - if (variableDeclarationList.declarations.length >= 1) { - var decl = variableDeclarationList.declarations[0]; - emitStartOfVariableDeclarationList(decl, endPos); - write(" "); - emit(decl); - } - } - else { - emit(node.initializer); - } - if (node.kind === 184) { - write(" in "); - } - else { - write(" of "); - } - emit(node.expression); - emitToken(17, node.expression.end); - emitEmbeddedStatement(node.statement); - } - function emitDownLevelForOfStatement(node) { - // The following ES6 code: - // - // for (let v of expr) { } - // - // should be emitted as - // - // for (let _i = 0, _a = expr; _i < _a.length; _i++) { - // let v = _a[_i]; - // } - // - // where _a and _i are temps emitted to capture the RHS and the counter, - // respectively. - // When the left hand side is an expression instead of a let declaration, - // the "let v" is not emitted. - // When the left hand side is a let/const, the v is renamed if there is - // another v in scope. - // Note that all assignments to the LHS are emitted in the body, including - // all destructuring. - // Note also that because an extra statement is needed to assign to the LHS, - // for-of bodies are always emitted as blocks. - var endPos = emitToken(82, node.pos); - write(" "); - endPos = emitToken(16, endPos); - var rhsIsIdentifier = node.expression.kind === 65; - var counter = createTempVariable(node, 1); - var rhsReference = rhsIsIdentifier ? node.expression : createTempVariable(node); - var cachedLength = compilerOptions.cacheDownlevelForOfLength ? createTempVariable(node, 2) : undefined; - emitStart(node.expression); - write("var "); - emitNodeWithoutSourceMap(counter); - write(" = 0"); - emitEnd(node.expression); - if (!rhsIsIdentifier) { - write(", "); - emitStart(node.expression); - emitNodeWithoutSourceMap(rhsReference); - write(" = "); - emitNodeWithoutSourceMap(node.expression); - emitEnd(node.expression); - } - if (cachedLength) { - write(", "); - emitNodeWithoutSourceMap(cachedLength); - write(" = "); - emitNodeWithoutSourceMap(rhsReference); - write(".length"); - } - write("; "); - emitStart(node.initializer); - emitNodeWithoutSourceMap(counter); - write(" < "); - if (cachedLength) { - emitNodeWithoutSourceMap(cachedLength); - } - else { - emitNodeWithoutSourceMap(rhsReference); - write(".length"); - } - emitEnd(node.initializer); - write("; "); - emitStart(node.initializer); - emitNodeWithoutSourceMap(counter); - write("++"); - emitEnd(node.initializer); - emitToken(17, node.expression.end); - write(" {"); - writeLine(); - increaseIndent(); - var rhsIterationValue = createElementAccessExpression(rhsReference, counter); - emitStart(node.initializer); - if (node.initializer.kind === 196) { - write("var "); - var variableDeclarationList = node.initializer; - if (variableDeclarationList.declarations.length > 0) { - var declaration = variableDeclarationList.declarations[0]; - if (ts.isBindingPattern(declaration.name)) { - emitDestructuring(declaration, false, rhsIterationValue); - } - else { - emitNodeWithoutSourceMap(declaration); - write(" = "); - emitNodeWithoutSourceMap(rhsIterationValue); - } - } - else { - emitNodeWithoutSourceMap(createTempVariable(node)); - write(" = "); - emitNodeWithoutSourceMap(rhsIterationValue); - } - } - else { - var assignmentExpression = createBinaryExpression(node.initializer, 53, rhsIterationValue, false); - if (node.initializer.kind === 153 || node.initializer.kind === 154) { - emitDestructuring(assignmentExpression, true, undefined, node); - } - else { - emitNodeWithoutSourceMap(assignmentExpression); - } - } - emitEnd(node.initializer); - write(";"); - if (node.statement.kind === 176) { - emitLines(node.statement.statements); - } - else { - writeLine(); - emit(node.statement); - } - writeLine(); - decreaseIndent(); - write("}"); - } - function emitBreakOrContinueStatement(node) { - emitToken(node.kind === 187 ? 66 : 71, node.pos); - emitOptional(" ", node.label); - write(";"); - } - function emitReturnStatement(node) { - emitToken(90, node.pos); - emitOptional(" ", node.expression); - write(";"); - } - function emitWithStatement(node) { - write("with ("); - emit(node.expression); - write(")"); - emitEmbeddedStatement(node.statement); - } - function emitSwitchStatement(node) { - var endPos = emitToken(92, node.pos); - write(" "); - emitToken(16, endPos); - emit(node.expression); - endPos = emitToken(17, node.expression.end); - write(" "); - emitCaseBlock(node.caseBlock, endPos); - } - function emitCaseBlock(node, startPos) { - emitToken(14, startPos); - increaseIndent(); - emitLines(node.clauses); - decreaseIndent(); - writeLine(); - emitToken(15, node.clauses.end); - } - function nodeStartPositionsAreOnSameLine(node1, node2) { - return ts.getLineOfLocalPosition(currentSourceFile, ts.skipTrivia(currentSourceFile.text, node1.pos)) === - ts.getLineOfLocalPosition(currentSourceFile, ts.skipTrivia(currentSourceFile.text, node2.pos)); - } - function nodeEndPositionsAreOnSameLine(node1, node2) { - return ts.getLineOfLocalPosition(currentSourceFile, node1.end) === - ts.getLineOfLocalPosition(currentSourceFile, node2.end); - } - function nodeEndIsOnSameLineAsNodeStart(node1, node2) { - return ts.getLineOfLocalPosition(currentSourceFile, node1.end) === - ts.getLineOfLocalPosition(currentSourceFile, ts.skipTrivia(currentSourceFile.text, node2.pos)); - } - function emitCaseOrDefaultClause(node) { - if (node.kind === 217) { - write("case "); - emit(node.expression); - write(":"); - } - else { - write("default:"); - } - if (preserveNewLines && node.statements.length === 1 && nodeStartPositionsAreOnSameLine(node, node.statements[0])) { - write(" "); - emit(node.statements[0]); - } - else { - increaseIndent(); - emitLines(node.statements); - decreaseIndent(); - } - } - function emitThrowStatement(node) { - write("throw "); - emit(node.expression); - write(";"); - } - function emitTryStatement(node) { - write("try "); - emit(node.tryBlock); - emit(node.catchClause); - if (node.finallyBlock) { - writeLine(); - write("finally "); - emit(node.finallyBlock); - } - } - function emitCatchClause(node) { - writeLine(); - var endPos = emitToken(68, node.pos); - write(" "); - emitToken(16, endPos); - emit(node.variableDeclaration); - emitToken(17, node.variableDeclaration ? node.variableDeclaration.end : endPos); - write(" "); - emitBlock(node.block); - } - function emitDebuggerStatement(node) { - emitToken(72, node.pos); - write(";"); - } - function emitLabelledStatement(node) { - emit(node.label); - write(": "); - emit(node.statement); - } - function getContainingModule(node) { - do { - node = node.parent; - } while (node && node.kind !== 202); - return node; - } - function emitContainingModuleName(node) { - var container = getContainingModule(node); - write(container ? getGeneratedNameForNode(container) : "exports"); - } - function emitModuleMemberName(node) { - emitStart(node.name); - if (ts.getCombinedNodeFlags(node) & 1) { - var container = getContainingModule(node); - if (container) { - write(getGeneratedNameForNode(container)); - write("."); - } - else if (languageVersion < 2) { - write("exports."); - } - } - emitNodeWithoutSourceMap(node.name); - emitEnd(node.name); - } - function createVoidZero() { - var zero = ts.createSynthesizedNode(7); - zero.text = "0"; - var result = ts.createSynthesizedNode(166); - result.expression = zero; - return result; - } - function emitExportMemberAssignment(node) { - if (node.flags & 1) { - writeLine(); - emitStart(node); - if (node.name) { - emitModuleMemberName(node); - } - else { - write("exports.default"); - } - write(" = "); - emitDeclarationName(node); - emitEnd(node); - write(";"); - } - } - function emitExportMemberAssignments(name) { - if (!exportEquals && exportSpecifiers && ts.hasProperty(exportSpecifiers, name.text)) { - for (var _i = 0, _a = exportSpecifiers[name.text], _n = _a.length; _i < _n; _i++) { - var specifier = _a[_i]; - writeLine(); - emitStart(specifier.name); - emitContainingModuleName(specifier); - write("."); - emitNodeWithoutSourceMap(specifier.name); - emitEnd(specifier.name); - write(" = "); - emitExpressionIdentifier(name); - write(";"); - } - } - } - function emitDestructuring(root, isAssignmentExpressionStatement, value, lowestNonSynthesizedAncestor) { - var emitCount = 0; - var isDeclaration = (root.kind === 195 && !(ts.getCombinedNodeFlags(root) & 1)) || root.kind === 129; - if (root.kind === 169) { - emitAssignmentExpression(root); - } - else { - ts.Debug.assert(!isAssignmentExpressionStatement); - emitBindingElement(root, value); - } - function emitAssignment(name, value) { - if (emitCount++) { - write(", "); - } - renameNonTopLevelLetAndConst(name); - if (name.parent && (name.parent.kind === 195 || name.parent.kind === 152)) { - emitModuleMemberName(name.parent); - } - else { - emit(name); - } - write(" = "); - emit(value); - } - function ensureIdentifier(expr) { - if (expr.kind !== 65) { - var identifier = createTempVariable(lowestNonSynthesizedAncestor || root); - if (!isDeclaration) { - recordTempDeclaration(identifier); - } - emitAssignment(identifier, expr); - expr = identifier; - } - return expr; - } - function createDefaultValueCheck(value, defaultValue) { - value = ensureIdentifier(value); - var equals = ts.createSynthesizedNode(169); - equals.left = value; - equals.operatorToken = ts.createSynthesizedNode(30); - equals.right = createVoidZero(); - return createConditionalExpression(equals, defaultValue, value); - } - function createConditionalExpression(condition, whenTrue, whenFalse) { - var cond = ts.createSynthesizedNode(170); - cond.condition = condition; - cond.questionToken = ts.createSynthesizedNode(50); - cond.whenTrue = whenTrue; - cond.colonToken = ts.createSynthesizedNode(51); - cond.whenFalse = whenFalse; - return cond; - } - function createNumericLiteral(value) { - var node = ts.createSynthesizedNode(7); - node.text = "" + value; - return node; - } - function parenthesizeForAccess(expr) { - if (expr.kind === 65 || expr.kind === 155 || expr.kind === 156) { - return expr; - } - var node = ts.createSynthesizedNode(161); - node.expression = expr; - return node; - } - function createPropertyAccess(object, propName) { - if (propName.kind !== 65) { - return createElementAccess(object, propName); - } - return createPropertyAccessExpression(parenthesizeForAccess(object), propName); - } - function createElementAccess(object, index) { - var node = ts.createSynthesizedNode(156); - node.expression = parenthesizeForAccess(object); - node.argumentExpression = index; - return node; - } - function emitObjectLiteralAssignment(target, value) { - var properties = target.properties; - if (properties.length !== 1) { - value = ensureIdentifier(value); - } - for (var _i = 0, _n = properties.length; _i < _n; _i++) { - var p = properties[_i]; - if (p.kind === 221 || p.kind === 222) { - var propName = (p.name); - emitDestructuringAssignment(p.initializer || propName, createPropertyAccess(value, propName)); - } - } - } - function emitArrayLiteralAssignment(target, value) { - var elements = target.elements; - if (elements.length !== 1) { - value = ensureIdentifier(value); - } - for (var i = 0; i < elements.length; i++) { - var e = elements[i]; - if (e.kind !== 174) { - if (e.kind !== 173) { - emitDestructuringAssignment(e, createElementAccess(value, createNumericLiteral(i))); - } - else { - if (i === elements.length - 1) { - value = ensureIdentifier(value); - emitAssignment(e.expression, value); - write(".slice(" + i + ")"); - } - } - } - } - } - function emitDestructuringAssignment(target, value) { - if (target.kind === 169 && target.operatorToken.kind === 53) { - value = createDefaultValueCheck(value, target.right); - target = target.left; - } - if (target.kind === 154) { - emitObjectLiteralAssignment(target, value); - } - else if (target.kind === 153) { - emitArrayLiteralAssignment(target, value); - } - else { - emitAssignment(target, value); - } - } - function emitAssignmentExpression(root) { - var target = root.left; - var value = root.right; - if (isAssignmentExpressionStatement) { - emitDestructuringAssignment(target, value); - } - else { - if (root.parent.kind !== 161) { - write("("); - } - value = ensureIdentifier(value); - emitDestructuringAssignment(target, value); - write(", "); - emit(value); - if (root.parent.kind !== 161) { - write(")"); - } - } - } - function emitBindingElement(target, value) { - if (target.initializer) { - value = value ? createDefaultValueCheck(value, target.initializer) : target.initializer; - } - else if (!value) { - value = createVoidZero(); - } - if (ts.isBindingPattern(target.name)) { - var pattern = target.name; - var elements = pattern.elements; - if (elements.length !== 1) { - value = ensureIdentifier(value); - } - for (var i = 0; i < elements.length; i++) { - var element = elements[i]; - if (pattern.kind === 150) { - var propName = element.propertyName || element.name; - emitBindingElement(element, createPropertyAccess(value, propName)); - } - else if (element.kind !== 174) { - if (!element.dotDotDotToken) { - emitBindingElement(element, createElementAccess(value, createNumericLiteral(i))); - } - else { - if (i === elements.length - 1) { - value = ensureIdentifier(value); - emitAssignment(element.name, value); - write(".slice(" + i + ")"); - } - } - } - } - } - else { - emitAssignment(target.name, value); - } - } - } - function emitVariableDeclaration(node) { - if (ts.isBindingPattern(node.name)) { - if (languageVersion < 2) { - emitDestructuring(node, false); - } - else { - emit(node.name); - emitOptional(" = ", node.initializer); - } - } - else { - renameNonTopLevelLetAndConst(node.name); - emitModuleMemberName(node); - var initializer = node.initializer; - if (!initializer && languageVersion < 2) { - var isUninitializedLet = (resolver.getNodeCheckFlags(node) & 256) && - (getCombinedFlagsForIdentifier(node.name) & 4096); - if (isUninitializedLet && - node.parent.parent.kind !== 184 && - node.parent.parent.kind !== 185) { - initializer = createVoidZero(); - } - } - emitOptional(" = ", initializer); - } - } - function emitExportVariableAssignments(node) { - if (node.kind === 174) { - return; - } - var name = node.name; - if (name.kind === 65) { - emitExportMemberAssignments(name); - } - else if (ts.isBindingPattern(name)) { - ts.forEach(name.elements, emitExportVariableAssignments); - } - } - function getCombinedFlagsForIdentifier(node) { - if (!node.parent || (node.parent.kind !== 195 && node.parent.kind !== 152)) { - return 0; - } - return ts.getCombinedNodeFlags(node.parent); - } - function renameNonTopLevelLetAndConst(node) { - if (languageVersion >= 2 || - ts.nodeIsSynthesized(node) || - node.kind !== 65 || - (node.parent.kind !== 195 && node.parent.kind !== 152)) { - return; - } - var combinedFlags = getCombinedFlagsForIdentifier(node); - if (((combinedFlags & 12288) === 0) || combinedFlags & 1) { - return; - } - var list = ts.getAncestor(node, 196); - if (list.parent.kind === 177) { - var isSourceFileLevelBinding = list.parent.parent.kind === 224; - var isModuleLevelBinding = list.parent.parent.kind === 203; - var isFunctionLevelBinding = list.parent.parent.kind === 176 && ts.isFunctionLike(list.parent.parent.parent); - if (isSourceFileLevelBinding || isModuleLevelBinding || isFunctionLevelBinding) { - return; - } - } - var blockScopeContainer = ts.getEnclosingBlockScopeContainer(node); - var parent = blockScopeContainer.kind === 224 - ? blockScopeContainer - : blockScopeContainer.parent; - var hasConflictsInEnclosingScope = resolver.resolvesToSomeValue(parent, node.text) || - nameConflictsWithSomeTempVariable(node.text); - if (hasConflictsInEnclosingScope) { - var variableId = resolver.getBlockScopedVariableId(node); - if (!blockScopedVariableToGeneratedName) { - blockScopedVariableToGeneratedName = []; - } - var generatedName = makeUniqueName(node.text); - blockScopedVariableToGeneratedName[variableId] = generatedName; - } - } - function isES6ExportedDeclaration(node) { - return !!(node.flags & 1) && - languageVersion >= 2 && - node.parent.kind === 224; - } - function emitVariableStatement(node) { - if (!(node.flags & 1)) { - emitStartOfVariableDeclarationList(node.declarationList); - } - else if (isES6ExportedDeclaration(node)) { - write("export "); - emitStartOfVariableDeclarationList(node.declarationList); - } - emitCommaList(node.declarationList.declarations); - write(";"); - if (languageVersion < 2 && node.parent === currentSourceFile) { - ts.forEach(node.declarationList.declarations, emitExportVariableAssignments); - } - } - function emitParameter(node) { - if (languageVersion < 2) { - if (ts.isBindingPattern(node.name)) { - var name_15 = createTempVariable(node); - if (!tempParameters) { - tempParameters = []; - } - tempParameters.push(name_15); - emit(name_15); - } - else { - emit(node.name); - } - } - else { - if (node.dotDotDotToken) { - write("..."); - } - emit(node.name); - emitOptional(" = ", node.initializer); - } - } - function emitDefaultValueAssignments(node) { - if (languageVersion < 2) { - var tempIndex = 0; - ts.forEach(node.parameters, function (p) { - if (ts.isBindingPattern(p.name)) { - writeLine(); - write("var "); - emitDestructuring(p, false, tempParameters[tempIndex]); - write(";"); - tempIndex++; - } - else if (p.initializer) { - writeLine(); - emitStart(p); - write("if ("); - emitNodeWithoutSourceMap(p.name); - write(" === void 0)"); - emitEnd(p); - write(" { "); - emitStart(p); - emitNodeWithoutSourceMap(p.name); - write(" = "); - emitNodeWithoutSourceMap(p.initializer); - emitEnd(p); - write("; }"); - } - }); - } - } - function emitRestParameter(node) { - if (languageVersion < 2 && ts.hasRestParameters(node)) { - var restIndex = node.parameters.length - 1; - var restParam = node.parameters[restIndex]; - var tempName = createTempVariable(node, 1).text; - writeLine(); - emitLeadingComments(restParam); - emitStart(restParam); - write("var "); - emitNodeWithoutSourceMap(restParam.name); - write(" = [];"); - emitEnd(restParam); - emitTrailingComments(restParam); - writeLine(); - write("for ("); - emitStart(restParam); - write("var " + tempName + " = " + restIndex + ";"); - emitEnd(restParam); - write(" "); - emitStart(restParam); - write(tempName + " < arguments.length;"); - emitEnd(restParam); - write(" "); - emitStart(restParam); - write(tempName + "++"); - emitEnd(restParam); - write(") {"); - increaseIndent(); - writeLine(); - emitStart(restParam); - emitNodeWithoutSourceMap(restParam.name); - write("[" + tempName + " - " + restIndex + "] = arguments[" + tempName + "];"); - emitEnd(restParam); - decreaseIndent(); - writeLine(); - write("}"); - } - } - function emitAccessor(node) { - write(node.kind === 136 ? "get " : "set "); - emit(node.name, false); - emitSignatureAndBody(node); - } - function shouldEmitAsArrowFunction(node) { - return node.kind === 163 && languageVersion >= 2; - } - function emitDeclarationName(node) { - if (node.name) { - emitNodeWithoutSourceMap(node.name); - } - else { - write(getGeneratedNameForNode(node)); - } - } - function shouldEmitFunctionName(node) { - if (node.kind === 162) { - return !!node.name; - } - else if (node.kind === 197) { - return !!node.name || (languageVersion >= 2 && !(node.flags & 256)); - } - } - function emitFunctionDeclaration(node) { - if (ts.nodeIsMissing(node.body)) { - return emitOnlyPinnedOrTripleSlashComments(node); - } - if (node.kind !== 134 && node.kind !== 133) { - emitLeadingComments(node); - } - if (!shouldEmitAsArrowFunction(node)) { - if (isES6ExportedDeclaration(node)) { - write("export "); - if (node.flags & 256) { - write("default "); - } - } - write("function "); - } - if (shouldEmitFunctionName(node)) { - emitDeclarationName(node); - } - emitSignatureAndBody(node); - if (languageVersion < 2 && node.kind === 197 && node.parent === currentSourceFile && node.name) { - emitExportMemberAssignments(node.name); - } - if (node.kind !== 134 && node.kind !== 133) { - emitTrailingComments(node); - } - } - function emitCaptureThisForNodeIfNecessary(node) { - if (resolver.getNodeCheckFlags(node) & 4) { - writeLine(); - emitStart(node); - write("var _this = this;"); - emitEnd(node); - } - } - function emitSignatureParameters(node) { - increaseIndent(); - write("("); - if (node) { - var parameters = node.parameters; - var omitCount = languageVersion < 2 && ts.hasRestParameters(node) ? 1 : 0; - emitList(parameters, 0, parameters.length - omitCount, false, false); - } - write(")"); - decreaseIndent(); - } - function emitSignatureParametersForArrow(node) { - if (node.parameters.length === 1 && node.pos === node.parameters[0].pos) { - emit(node.parameters[0]); - return; - } - emitSignatureParameters(node); - } - function emitSignatureAndBody(node) { - var saveTempCount = tempCount; - var saveTempVariables = tempVariables; - var saveTempParameters = tempParameters; - var savePredefinedTempsInUse = predefinedTempsInUse; - tempCount = 0; - tempVariables = undefined; - tempParameters = undefined; - predefinedTempsInUse = 0; - if (shouldEmitAsArrowFunction(node)) { - emitSignatureParametersForArrow(node); - write(" =>"); - } - else { - emitSignatureParameters(node); - } - if (!node.body) { - write(" { }"); - } - else if (node.body.kind === 176) { - emitBlockFunctionBody(node, node.body); - } - else { - emitExpressionFunctionBody(node, node.body); - } - if (!isES6ExportedDeclaration(node)) { - emitExportMemberAssignment(node); - } - predefinedTempsInUse = savePredefinedTempsInUse; - tempCount = saveTempCount; - tempVariables = saveTempVariables; - tempParameters = saveTempParameters; - } - function emitFunctionBodyPreamble(node) { - emitCaptureThisForNodeIfNecessary(node); - emitDefaultValueAssignments(node); - emitRestParameter(node); - } - function emitExpressionFunctionBody(node, body) { - if (languageVersion < 2) { - emitDownLevelExpressionFunctionBody(node, body); - return; - } - write(" "); - var current = body; - while (current.kind === 160) { - current = current.expression; - } - emitParenthesizedIf(body, current.kind === 154); - } - function emitDownLevelExpressionFunctionBody(node, body) { - write(" {"); - scopeEmitStart(node); - increaseIndent(); - var outPos = writer.getTextPos(); - emitDetachedComments(node.body); - emitFunctionBodyPreamble(node); - var preambleEmitted = writer.getTextPos() !== outPos; - decreaseIndent(); - if (preserveNewLines && !preambleEmitted && nodeStartPositionsAreOnSameLine(node, body)) { - write(" "); - emitStart(body); - write("return "); - emit(body); - emitEnd(body); - write(";"); - emitTempDeclarations(false); - write(" "); - } - else { - increaseIndent(); - writeLine(); - emitLeadingComments(node.body); - write("return "); - emit(body); - write(";"); - emitTrailingComments(node.body); - emitTempDeclarations(true); - decreaseIndent(); - writeLine(); - } - emitStart(node.body); - write("}"); - emitEnd(node.body); - scopeEmitEnd(); - } - function emitBlockFunctionBody(node, body) { - write(" {"); - scopeEmitStart(node); - var initialTextPos = writer.getTextPos(); - increaseIndent(); - emitDetachedComments(body.statements); - var startIndex = emitDirectivePrologues(body.statements, true); - emitFunctionBodyPreamble(node); - decreaseIndent(); - var preambleEmitted = writer.getTextPos() !== initialTextPos; - if (preserveNewLines && !preambleEmitted && nodeEndIsOnSameLineAsNodeStart(body, body)) { - for (var _i = 0, _a = body.statements, _n = _a.length; _i < _n; _i++) { - var statement = _a[_i]; - write(" "); - emit(statement); - } - emitTempDeclarations(false); - write(" "); - emitLeadingCommentsOfPosition(body.statements.end); - } - else { - increaseIndent(); - emitLinesStartingAt(body.statements, startIndex); - emitTempDeclarations(true); - writeLine(); - emitLeadingCommentsOfPosition(body.statements.end); - decreaseIndent(); - } - emitToken(15, body.statements.end); - scopeEmitEnd(); - } - function findInitialSuperCall(ctor) { - if (ctor.body) { - var statement = ctor.body.statements[0]; - if (statement && statement.kind === 179) { - var expr = statement.expression; - if (expr && expr.kind === 157) { - var func = expr.expression; - if (func && func.kind === 91) { - return statement; - } - } - } - } - } - function emitParameterPropertyAssignments(node) { - ts.forEach(node.parameters, function (param) { - if (param.flags & 112) { - writeLine(); - emitStart(param); - emitStart(param.name); - write("this."); - emitNodeWithoutSourceMap(param.name); - emitEnd(param.name); - write(" = "); - emit(param.name); - write(";"); - emitEnd(param); - } - }); - } - function emitMemberAccessForPropertyName(memberName) { - if (memberName.kind === 8 || memberName.kind === 7) { - write("["); - emitNodeWithoutSourceMap(memberName); - write("]"); - } - else if (memberName.kind === 127) { - emitComputedPropertyName(memberName); - } - else { - write("."); - emitNodeWithoutSourceMap(memberName); - } - } - function emitMemberAssignments(node, staticFlag) { - ts.forEach(node.members, function (member) { - if (member.kind === 132 && (member.flags & 128) === staticFlag && member.initializer) { - writeLine(); - emitLeadingComments(member); - emitStart(member); - emitStart(member.name); - if (staticFlag) { - emitDeclarationName(node); - } - else { - write("this"); - } - emitMemberAccessForPropertyName(member.name); - emitEnd(member.name); - write(" = "); - emit(member.initializer); - write(";"); - emitEnd(member); - emitTrailingComments(member); - } - }); - } - function emitMemberFunctionsForES5AndLower(node) { - ts.forEach(node.members, function (member) { - if (member.kind === 134 || node.kind === 133) { - if (!member.body) { - return emitOnlyPinnedOrTripleSlashComments(member); - } - writeLine(); - emitLeadingComments(member); - emitStart(member); - emitStart(member.name); - emitClassMemberPrefix(node, member); - emitMemberAccessForPropertyName(member.name); - emitEnd(member.name); - write(" = "); - emitStart(member); - emitFunctionDeclaration(member); - emitEnd(member); - emitEnd(member); - write(";"); - emitTrailingComments(member); - } - else if (member.kind === 136 || member.kind === 137) { - var accessors = ts.getAllAccessorDeclarations(node.members, member); - if (member === accessors.firstAccessor) { - writeLine(); - emitStart(member); - write("Object.defineProperty("); - emitStart(member.name); - emitClassMemberPrefix(node, member); - write(", "); - emitExpressionForPropertyName(member.name); - emitEnd(member.name); - write(", {"); - increaseIndent(); - if (accessors.getAccessor) { - writeLine(); - emitLeadingComments(accessors.getAccessor); - write("get: "); - emitStart(accessors.getAccessor); - write("function "); - emitSignatureAndBody(accessors.getAccessor); - emitEnd(accessors.getAccessor); - emitTrailingComments(accessors.getAccessor); - write(","); - } - if (accessors.setAccessor) { - writeLine(); - emitLeadingComments(accessors.setAccessor); - write("set: "); - emitStart(accessors.setAccessor); - write("function "); - emitSignatureAndBody(accessors.setAccessor); - emitEnd(accessors.setAccessor); - emitTrailingComments(accessors.setAccessor); - write(","); - } - writeLine(); - write("enumerable: true,"); - writeLine(); - write("configurable: true"); - decreaseIndent(); - writeLine(); - write("});"); - emitEnd(member); - } - } - }); - } - function emitMemberFunctionsForES6AndHigher(node) { - for (var _i = 0, _a = node.members, _n = _a.length; _i < _n; _i++) { - var member = _a[_i]; - if ((member.kind === 134 || node.kind === 133) && !member.body) { - emitOnlyPinnedOrTripleSlashComments(member); - } - else if (member.kind === 134 || node.kind === 133 || member.kind === 136 || member.kind === 137) { - writeLine(); - emitLeadingComments(member); - emitStart(member); - if (member.flags & 128) { - write("static "); - } - if (member.kind === 136) { - write("get "); - } - else if (member.kind === 137) { - write("set "); - } - emit(member.name); - emitSignatureAndBody(member); - emitEnd(member); - emitTrailingComments(member); - } - } - } - function emitConstructor(node, baseTypeNode) { - var saveTempCount = tempCount; - var saveTempVariables = tempVariables; - var saveTempParameters = tempParameters; - var savePredefinedTempsInUse = predefinedTempsInUse; - tempCount = 0; - tempVariables = undefined; - tempParameters = undefined; - predefinedTempsInUse = 0; - var hasInstancePropertyWithInitializer = false; - ts.forEach(node.members, function (member) { - if (member.kind === 135 && !member.body) { - emitOnlyPinnedOrTripleSlashComments(member); - } - if (member.kind === 132 && member.initializer && (member.flags & 128) === 0) { - hasInstancePropertyWithInitializer = true; - } - }); - var ctor = ts.getFirstConstructorWithBody(node); - if (languageVersion >= 2 && !ctor && !hasInstancePropertyWithInitializer) { - return; - } - if (ctor) { - emitLeadingComments(ctor); - } - emitStart(ctor || node); - if (languageVersion < 2) { - write("function "); - emitDeclarationName(node); - emitSignatureParameters(ctor); - } - else { - write("constructor"); - if (ctor) { - emitSignatureParameters(ctor); - } - else { - if (baseTypeNode) { - write("(...args)"); - } - else { - write("()"); - } - } - } - write(" {"); - scopeEmitStart(node, "constructor"); - increaseIndent(); - if (ctor) { - emitDetachedComments(ctor.body.statements); - } - emitCaptureThisForNodeIfNecessary(node); - if (ctor) { - emitDefaultValueAssignments(ctor); - emitRestParameter(ctor); - if (baseTypeNode) { - var superCall = findInitialSuperCall(ctor); - if (superCall) { - writeLine(); - emit(superCall); - } - } - emitParameterPropertyAssignments(ctor); - } - else { - if (baseTypeNode) { - writeLine(); - emitStart(baseTypeNode); - if (languageVersion < 2) { - write("_super.apply(this, arguments);"); - } - else { - write("super(...args);"); - } - emitEnd(baseTypeNode); - } - } - emitMemberAssignments(node, 0); - if (ctor) { - var statements = ctor.body.statements; - if (superCall) { - statements = statements.slice(1); - } - emitLines(statements); - } - emitTempDeclarations(true); - writeLine(); - if (ctor) { - emitLeadingCommentsOfPosition(ctor.body.statements.end); - } - decreaseIndent(); - emitToken(15, ctor ? ctor.body.statements.end : node.members.end); - scopeEmitEnd(); - emitEnd(ctor || node); - if (ctor) { - emitTrailingComments(ctor); - } - predefinedTempsInUse = savePredefinedTempsInUse; - tempCount = saveTempCount; - tempVariables = saveTempVariables; - tempParameters = saveTempParameters; - } - function emitClassDeclaration(node) { - if (languageVersion < 2) { - emitClassDeclarationBelowES6(node); - } - else { - emitClassDeclarationForES6AndHigher(node); - } - } - function emitClassDeclarationForES6AndHigher(node) { - var thisNodeIsDecorated = ts.nodeIsDecorated(node); - if (thisNodeIsDecorated) { - if (isES6ExportedDeclaration(node) && !(node.flags & 256)) { - write("export "); - } - write("let "); - emitDeclarationName(node); - write(" = "); - } - else if (isES6ExportedDeclaration(node)) { - write("export "); - if (node.flags & 256) { - write("default "); - } - } - write("class"); - if ((node.name || !(node.flags & 256)) && !thisNodeIsDecorated) { - write(" "); - emitDeclarationName(node); - } - var baseTypeNode = ts.getClassBaseTypeNode(node); - if (baseTypeNode) { - write(" extends "); - emit(baseTypeNode.typeName); - } - write(" {"); - increaseIndent(); - scopeEmitStart(node); - writeLine(); - emitConstructor(node, baseTypeNode); - emitMemberFunctionsForES6AndHigher(node); - decreaseIndent(); - writeLine(); - emitToken(15, node.members.end); - scopeEmitEnd(); - if (thisNodeIsDecorated) { - write(";"); - if (node.name) { - writeLine(); - write("Object.defineProperty("); - emitDeclarationName(node); - write(", \"name\", { value: \""); - emitDeclarationName(node); - write("\", configurable: true });"); - writeLine(); - } - } - writeLine(); - emitMemberAssignments(node, 128); - emitDecoratorsOfClass(node); - if (!isES6ExportedDeclaration(node) && (node.flags & 1)) { - writeLine(); - emitStart(node); - emitModuleMemberName(node); - write(" = "); - emitDeclarationName(node); - emitEnd(node); - write(";"); - } - else if (isES6ExportedDeclaration(node) && (node.flags & 256) && thisNodeIsDecorated) { - writeLine(); - write("export default "); - emitDeclarationName(node); - write(";"); - } - } - function emitClassDeclarationBelowES6(node) { - write("var "); - emitDeclarationName(node); - write(" = (function ("); - var baseTypeNode = ts.getClassBaseTypeNode(node); - if (baseTypeNode) { - write("_super"); - } - write(") {"); - var saveTempCount = tempCount; - var saveTempVariables = tempVariables; - var saveTempParameters = tempParameters; - var saveComputedPropertyNamesToGeneratedNames = computedPropertyNamesToGeneratedNames; - tempCount = 0; - tempVariables = undefined; - tempParameters = undefined; - computedPropertyNamesToGeneratedNames = undefined; - increaseIndent(); - scopeEmitStart(node); - if (baseTypeNode) { - writeLine(); - emitStart(baseTypeNode); - write("__extends("); - emitDeclarationName(node); - write(", _super);"); - emitEnd(baseTypeNode); - } - writeLine(); - emitConstructor(node, baseTypeNode); - emitMemberFunctionsForES5AndLower(node); - emitMemberAssignments(node, 128); - writeLine(); - emitDecoratorsOfClass(node); - writeLine(); - emitToken(15, node.members.end, function () { - write("return "); - emitDeclarationName(node); - }); - write(";"); - emitTempDeclarations(true); - tempCount = saveTempCount; - tempVariables = saveTempVariables; - tempParameters = saveTempParameters; - computedPropertyNamesToGeneratedNames = saveComputedPropertyNamesToGeneratedNames; - decreaseIndent(); - writeLine(); - emitToken(15, node.members.end); - scopeEmitEnd(); - emitStart(node); - write(")("); - if (baseTypeNode) { - emit(baseTypeNode.typeName); - } - write(");"); - emitEnd(node); - emitExportMemberAssignment(node); - if (languageVersion < 2 && node.parent === currentSourceFile && node.name) { - emitExportMemberAssignments(node.name); - } - } - function emitClassMemberPrefix(node, member) { - emitDeclarationName(node); - if (!(member.flags & 128)) { - write(".prototype"); - } - } - function emitDecoratorsOfClass(node) { - emitDecoratorsOfMembers(node, 0); - emitDecoratorsOfMembers(node, 128); - emitDecoratorsOfConstructor(node); - } - function emitDecoratorsOfConstructor(node) { - var constructor = ts.getFirstConstructorWithBody(node); - if (constructor) { - emitDecoratorsOfParameters(node, constructor); - } - if (!ts.nodeIsDecorated(node)) { - return; - } - writeLine(); - emitStart(node); - emitDeclarationName(node); - write(" = "); - emitDecorateStart(node.decorators); - emitDeclarationName(node); - write(");"); - emitEnd(node); - writeLine(); - } - function emitDecoratorsOfMembers(node, staticFlag) { - ts.forEach(node.members, function (member) { - if ((member.flags & 128) !== staticFlag) { - return; - } - var decorators; - switch (member.kind) { - case 134: - emitDecoratorsOfParameters(node, member); - decorators = member.decorators; - break; - case 136: - case 137: - var accessors = ts.getAllAccessorDeclarations(node.members, member); - if (member !== accessors.firstAccessor) { - return; - } - if (accessors.setAccessor) { - emitDecoratorsOfParameters(node, accessors.setAccessor); - } - decorators = accessors.firstAccessor.decorators; - if (!decorators && accessors.secondAccessor) { - decorators = accessors.secondAccessor.decorators; - } - break; - case 132: - decorators = member.decorators; - break; - default: - return; - } - if (!decorators) { - return; - } - writeLine(); - emitStart(member); - if (member.kind !== 132) { - write("Object.defineProperty("); - emitStart(member.name); - emitClassMemberPrefix(node, member); - write(", "); - emitExpressionForPropertyName(member.name); - emitEnd(member.name); - write(", "); - } - emitDecorateStart(decorators); - emitStart(member.name); - emitClassMemberPrefix(node, member); - write(", "); - emitExpressionForPropertyName(member.name); - emitEnd(member.name); - if (member.kind !== 132) { - write(", Object.getOwnPropertyDescriptor("); - emitStart(member.name); - emitClassMemberPrefix(node, member); - write(", "); - emitExpressionForPropertyName(member.name); - emitEnd(member.name); - write("))"); - } - write(");"); - emitEnd(member); - writeLine(); - }); - } - function emitDecoratorsOfParameters(node, member) { - ts.forEach(member.parameters, function (parameter, parameterIndex) { - if (!ts.nodeIsDecorated(parameter)) { - return; - } - writeLine(); - emitStart(parameter); - emitDecorateStart(parameter.decorators); - emitStart(parameter.name); - if (member.kind === 135) { - emitDeclarationName(node); - write(", void 0"); - } - else { - emitClassMemberPrefix(node, member); - write(", "); - emitExpressionForPropertyName(member.name); - } - write(", "); - write(String(parameterIndex)); - emitEnd(parameter.name); - write(");"); - emitEnd(parameter); - writeLine(); - }); - } - function emitDecorateStart(decorators) { - write("__decorate(["); - var decoratorCount = decorators.length; - for (var i = 0; i < decoratorCount; i++) { - if (i > 0) { - write(", "); - } - var decorator = decorators[i]; - emitStart(decorator); - emit(decorator.expression); - emitEnd(decorator); - } - write("], "); - } - function emitInterfaceDeclaration(node) { - emitOnlyPinnedOrTripleSlashComments(node); - } - function shouldEmitEnumDeclaration(node) { - var isConstEnum = ts.isConst(node); - return !isConstEnum || compilerOptions.preserveConstEnums; - } - function emitEnumDeclaration(node) { - if (!shouldEmitEnumDeclaration(node)) { - return; - } - if (!(node.flags & 1) || isES6ExportedDeclaration(node)) { - emitStart(node); - if (isES6ExportedDeclaration(node)) { - write("export "); - } - write("var "); - emit(node.name); - emitEnd(node); - write(";"); - } - writeLine(); - emitStart(node); - write("(function ("); - emitStart(node.name); - write(getGeneratedNameForNode(node)); - emitEnd(node.name); - write(") {"); - increaseIndent(); - scopeEmitStart(node); - emitLines(node.members); - decreaseIndent(); - writeLine(); - emitToken(15, node.members.end); - scopeEmitEnd(); - write(")("); - emitModuleMemberName(node); - write(" || ("); - emitModuleMemberName(node); - write(" = {}));"); - emitEnd(node); - if (!isES6ExportedDeclaration(node) && node.flags & 1) { - writeLine(); - emitStart(node); - write("var "); - emit(node.name); - write(" = "); - emitModuleMemberName(node); - emitEnd(node); - write(";"); - } - if (languageVersion < 2 && node.parent === currentSourceFile) { - emitExportMemberAssignments(node.name); - } - } - function emitEnumMember(node) { - var enumParent = node.parent; - emitStart(node); - write(getGeneratedNameForNode(enumParent)); - write("["); - write(getGeneratedNameForNode(enumParent)); - write("["); - emitExpressionForPropertyName(node.name); - write("] = "); - writeEnumMemberDeclarationValue(node); - write("] = "); - emitExpressionForPropertyName(node.name); - emitEnd(node); - write(";"); - } - function writeEnumMemberDeclarationValue(member) { - var value = resolver.getConstantValue(member); - if (value !== undefined) { - write(value.toString()); - return; - } - else if (member.initializer) { - emit(member.initializer); - } - else { - write("undefined"); - } - } - function getInnerMostModuleDeclarationFromDottedModule(moduleDeclaration) { - if (moduleDeclaration.body.kind === 202) { - var recursiveInnerModule = getInnerMostModuleDeclarationFromDottedModule(moduleDeclaration.body); - return recursiveInnerModule || moduleDeclaration.body; - } - } - function shouldEmitModuleDeclaration(node) { - return ts.isInstantiatedModule(node, compilerOptions.preserveConstEnums); - } - function emitModuleDeclaration(node) { - var shouldEmit = shouldEmitModuleDeclaration(node); - if (!shouldEmit) { - return emitOnlyPinnedOrTripleSlashComments(node); - } - emitStart(node); - if (isES6ExportedDeclaration(node)) { - write("export "); - } - write("var "); - emit(node.name); - write(";"); - emitEnd(node); - writeLine(); - emitStart(node); - write("(function ("); - emitStart(node.name); - write(getGeneratedNameForNode(node)); - emitEnd(node.name); - write(") "); - if (node.body.kind === 203) { - var saveTempCount = tempCount; - var saveTempVariables = tempVariables; - var savePredefinedTempsInUse = predefinedTempsInUse; - tempCount = 0; - tempVariables = undefined; - predefinedTempsInUse = 0; - emit(node.body); - predefinedTempsInUse = savePredefinedTempsInUse; - tempCount = saveTempCount; - tempVariables = saveTempVariables; - } - else { - write("{"); - increaseIndent(); - scopeEmitStart(node); - emitCaptureThisForNodeIfNecessary(node); - writeLine(); - emit(node.body); - decreaseIndent(); - writeLine(); - var moduleBlock = getInnerMostModuleDeclarationFromDottedModule(node).body; - emitToken(15, moduleBlock.statements.end); - scopeEmitEnd(); - } - write(")("); - if ((node.flags & 1) && !isES6ExportedDeclaration(node)) { - emit(node.name); - write(" = "); - } - emitModuleMemberName(node); - write(" || ("); - emitModuleMemberName(node); - write(" = {}));"); - emitEnd(node); - if (!isES6ExportedDeclaration(node) && node.name.kind === 65 && node.parent === currentSourceFile) { - emitExportMemberAssignments(node.name); - } - } - function emitRequire(moduleName) { - if (moduleName.kind === 8) { - write("require("); - emitStart(moduleName); - emitLiteral(moduleName); - emitEnd(moduleName); - emitToken(17, moduleName.end); - } - else { - write("require()"); - } - } - function getNamespaceDeclarationNode(node) { - if (node.kind === 205) { - return node; - } - var importClause = node.importClause; - if (importClause && importClause.namedBindings && importClause.namedBindings.kind === 208) { - return importClause.namedBindings; - } - } - function isDefaultImport(node) { - return node.kind === 206 && node.importClause && !!node.importClause.name; - } - function emitExportImportAssignments(node) { - if (ts.isAliasSymbolDeclaration(node) && resolver.isValueAliasDeclaration(node)) { - emitExportMemberAssignments(node.name); - } - ts.forEachChild(node, emitExportImportAssignments); - } - function emitImportDeclaration(node) { - if (languageVersion < 2) { - return emitExternalImportDeclaration(node); - } - if (node.importClause) { - var shouldEmitDefaultBindings = resolver.isReferencedAliasDeclaration(node.importClause); - var shouldEmitNamedBindings = node.importClause.namedBindings && resolver.isReferencedAliasDeclaration(node.importClause.namedBindings, true); - if (shouldEmitDefaultBindings || shouldEmitNamedBindings) { - write("import "); - emitStart(node.importClause); - if (shouldEmitDefaultBindings) { - emit(node.importClause.name); - if (shouldEmitNamedBindings) { - write(", "); - } - } - if (shouldEmitNamedBindings) { - emitLeadingComments(node.importClause.namedBindings); - emitStart(node.importClause.namedBindings); - if (node.importClause.namedBindings.kind === 208) { - write("* as "); - emit(node.importClause.namedBindings.name); - } - else { - write("{ "); - emitExportOrImportSpecifierList(node.importClause.namedBindings.elements, resolver.isReferencedAliasDeclaration); - write(" }"); - } - emitEnd(node.importClause.namedBindings); - emitTrailingComments(node.importClause.namedBindings); - } - emitEnd(node.importClause); - write(" from "); - emit(node.moduleSpecifier); - write(";"); - } - } - else { - write("import "); - emit(node.moduleSpecifier); - write(";"); - } - } - function emitExternalImportDeclaration(node) { - if (ts.contains(externalImports, node)) { - var isExportedImport = node.kind === 205 && (node.flags & 1) !== 0; - var namespaceDeclaration = getNamespaceDeclarationNode(node); - if (compilerOptions.module !== 2) { - emitLeadingComments(node); - emitStart(node); - if (namespaceDeclaration && !isDefaultImport(node)) { - if (!isExportedImport) - write("var "); - emitModuleMemberName(namespaceDeclaration); - write(" = "); - } - else { - var isNakedImport = 206 && !node.importClause; - if (!isNakedImport) { - write("var "); - write(getGeneratedNameForNode(node)); - write(" = "); - } - } - emitRequire(ts.getExternalModuleName(node)); - if (namespaceDeclaration && isDefaultImport(node)) { - write(", "); - emitModuleMemberName(namespaceDeclaration); - write(" = "); - write(getGeneratedNameForNode(node)); - } - write(";"); - emitEnd(node); - emitExportImportAssignments(node); - emitTrailingComments(node); - } - else { - if (isExportedImport) { - emitModuleMemberName(namespaceDeclaration); - write(" = "); - emit(namespaceDeclaration.name); - write(";"); - } - else if (namespaceDeclaration && isDefaultImport(node)) { - write("var "); - emitModuleMemberName(namespaceDeclaration); - write(" = "); - write(getGeneratedNameForNode(node)); - write(";"); - } - emitExportImportAssignments(node); - } - } - } - function emitImportEqualsDeclaration(node) { - if (ts.isExternalModuleImportEqualsDeclaration(node)) { - emitExternalImportDeclaration(node); - return; - } - if (resolver.isReferencedAliasDeclaration(node) || - (!ts.isExternalModule(currentSourceFile) && resolver.isTopLevelValueImportEqualsWithEntityName(node))) { - emitLeadingComments(node); - emitStart(node); - if (isES6ExportedDeclaration(node)) { - write("export "); - write("var "); - } - else if (!(node.flags & 1)) { - write("var "); - } - emitModuleMemberName(node); - write(" = "); - emit(node.moduleReference); - write(";"); - emitEnd(node); - emitExportImportAssignments(node); - emitTrailingComments(node); - } - } - function emitExportDeclaration(node) { - if (languageVersion < 2) { - if (node.moduleSpecifier && (!node.exportClause || resolver.isValueAliasDeclaration(node))) { - emitStart(node); - var generatedName = getGeneratedNameForNode(node); - if (node.exportClause) { - if (compilerOptions.module !== 2) { - write("var "); - write(generatedName); - write(" = "); - emitRequire(ts.getExternalModuleName(node)); - write(";"); - } - for (var _i = 0, _a = node.exportClause.elements, _n = _a.length; _i < _n; _i++) { - var specifier = _a[_i]; - if (resolver.isValueAliasDeclaration(specifier)) { - writeLine(); - emitStart(specifier); - emitContainingModuleName(specifier); - write("."); - emitNodeWithoutSourceMap(specifier.name); - write(" = "); - write(generatedName); - write("."); - emitNodeWithoutSourceMap(specifier.propertyName || specifier.name); - write(";"); - emitEnd(specifier); - } - } - } - else { - writeLine(); - write("__export("); - if (compilerOptions.module !== 2) { - emitRequire(ts.getExternalModuleName(node)); - } - else { - write(generatedName); - } - write(");"); - } - emitEnd(node); - } - } - else { - if (!node.exportClause || resolver.isValueAliasDeclaration(node)) { - emitStart(node); - write("export "); - if (node.exportClause) { - write("{ "); - emitExportOrImportSpecifierList(node.exportClause.elements, resolver.isValueAliasDeclaration); - write(" }"); - } - else { - write("*"); - } - if (node.moduleSpecifier) { - write(" from "); - emitNodeWithoutSourceMap(node.moduleSpecifier); - } - write(";"); - emitEnd(node); - } - } - } - function emitExportOrImportSpecifierList(specifiers, shouldEmit) { - ts.Debug.assert(languageVersion >= 2); - var needsComma = false; - for (var _i = 0, _n = specifiers.length; _i < _n; _i++) { - var specifier = specifiers[_i]; - if (shouldEmit(specifier)) { - if (needsComma) { - write(", "); - } - emitStart(specifier); - if (specifier.propertyName) { - emitNodeWithoutSourceMap(specifier.propertyName); - write(" as "); - } - emitNodeWithoutSourceMap(specifier.name); - emitEnd(specifier); - needsComma = true; - } - } - } - function emitExportAssignment(node) { - if (!node.isExportEquals && resolver.isValueAliasDeclaration(node)) { - if (languageVersion >= 2) { - writeLine(); - emitStart(node); - write("export default "); - var expression = node.expression; - emit(expression); - if (expression.kind !== 197 && - expression.kind !== 198) { - write(";"); - } - emitEnd(node); - } - else { - writeLine(); - emitStart(node); - emitContainingModuleName(node); - write(".default = "); - emit(node.expression); - write(";"); - emitEnd(node); - } - } - } - function collectExternalModuleInfo(sourceFile) { - externalImports = []; - exportSpecifiers = {}; - exportEquals = undefined; - hasExportStars = false; - for (var _i = 0, _a = sourceFile.statements, _n = _a.length; _i < _n; _i++) { - var node = _a[_i]; - switch (node.kind) { - case 206: - if (!node.importClause || - resolver.isReferencedAliasDeclaration(node.importClause, true)) { - externalImports.push(node); - } - break; - case 205: - if (node.moduleReference.kind === 216 && resolver.isReferencedAliasDeclaration(node)) { - externalImports.push(node); - } - break; - case 212: - if (node.moduleSpecifier) { - if (!node.exportClause) { - externalImports.push(node); - hasExportStars = true; - } - else if (resolver.isValueAliasDeclaration(node)) { - externalImports.push(node); - } - } - else { - for (var _b = 0, _c = node.exportClause.elements, _d = _c.length; _b < _d; _b++) { - var specifier = _c[_b]; - var name_16 = (specifier.propertyName || specifier.name).text; - (exportSpecifiers[name_16] || (exportSpecifiers[name_16] = [])).push(specifier); - } - } - break; - case 211: - if (node.isExportEquals && !exportEquals) { - exportEquals = node; - } - break; - } - } - } - function sortAMDModules(amdModules) { - return amdModules.sort(function (moduleA, moduleB) { - if (moduleA.name === moduleB.name) { - return 0; - } - else if (!moduleA.name) { - return 1; - } - else { - return -1; - } - }); - } - function emitExportStarHelper() { - if (hasExportStars) { - writeLine(); - write("function __export(m) {"); - increaseIndent(); - writeLine(); - write("for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];"); - decreaseIndent(); - writeLine(); - write("}"); - } - } - function emitAMDModule(node, startIndex) { - collectExternalModuleInfo(node); - writeLine(); - write("define("); - sortAMDModules(node.amdDependencies); - if (node.amdModuleName) { - write("\"" + node.amdModuleName + "\", "); - } - write("[\"require\", \"exports\""); - for (var _i = 0, _n = externalImports.length; _i < _n; _i++) { - var importNode = externalImports[_i]; - write(", "); - var moduleName = ts.getExternalModuleName(importNode); - if (moduleName.kind === 8) { - emitLiteral(moduleName); - } - else { - write("\"\""); - } - } - for (var _a = 0, _b = node.amdDependencies, _c = _b.length; _a < _c; _a++) { - var amdDependency = _b[_a]; - var text = "\"" + amdDependency.path + "\""; - write(", "); - write(text); - } - write("], function (require, exports"); - for (var _d = 0, _e = externalImports.length; _d < _e; _d++) { - var importNode = externalImports[_d]; - write(", "); - var namespaceDeclaration = getNamespaceDeclarationNode(importNode); - if (namespaceDeclaration && !isDefaultImport(importNode)) { - emit(namespaceDeclaration.name); - } - else { - write(getGeneratedNameForNode(importNode)); - } - } - for (var _f = 0, _g = node.amdDependencies, _h = _g.length; _f < _h; _f++) { - var amdDependency = _g[_f]; - if (amdDependency.name) { - write(", "); - write(amdDependency.name); - } - } - write(") {"); - increaseIndent(); - emitExportStarHelper(); - emitCaptureThisForNodeIfNecessary(node); - emitLinesStartingAt(node.statements, startIndex); - emitTempDeclarations(true); - emitExportEquals(true); - decreaseIndent(); - writeLine(); - write("});"); - } - function emitCommonJSModule(node, startIndex) { - collectExternalModuleInfo(node); - emitExportStarHelper(); - emitCaptureThisForNodeIfNecessary(node); - emitLinesStartingAt(node.statements, startIndex); - emitTempDeclarations(true); - emitExportEquals(false); - } - function emitES6Module(node, startIndex) { - externalImports = undefined; - exportSpecifiers = undefined; - exportEquals = undefined; - hasExportStars = false; - emitCaptureThisForNodeIfNecessary(node); - emitLinesStartingAt(node.statements, startIndex); - emitTempDeclarations(true); - } - function emitExportEquals(emitAsReturn) { - if (exportEquals && resolver.isValueAliasDeclaration(exportEquals)) { - writeLine(); - emitStart(exportEquals); - write(emitAsReturn ? "return " : "module.exports = "); - emit(exportEquals.expression); - write(";"); - emitEnd(exportEquals); - } - } - function emitDirectivePrologues(statements, startWithNewLine) { - for (var i = 0; i < statements.length; ++i) { - if (ts.isPrologueDirective(statements[i])) { - if (startWithNewLine || i > 0) { - writeLine(); - } - emit(statements[i]); - } - else { - return i; - } - } - return statements.length; - } - function writeHelper(text) { - var lines = text.split(/\r\n|\r|\n/g); - for (var i = 0; i < lines.length; ++i) { - var line = lines[i]; - if (line.length) { - writeLine(); - write(line); - } - } - } - function emitSourceFileNode(node) { - writeLine(); - emitDetachedComments(node); - var startIndex = emitDirectivePrologues(node.statements, false); - if ((languageVersion < 2) && (!extendsEmitted && resolver.getNodeCheckFlags(node) & 8)) { - writeLine(); - write("var __extends = this.__extends || function (d, b) {"); - increaseIndent(); - writeLine(); - write("for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];"); - writeLine(); - write("function __() { this.constructor = d; }"); - writeLine(); - write("__.prototype = b.prototype;"); - writeLine(); - write("d.prototype = new __();"); - decreaseIndent(); - writeLine(); - write("};"); - extendsEmitted = true; - } - if (!decorateEmitted && resolver.getNodeCheckFlags(node) & 512) { - writeHelper("\nvar __decorate = this.__decorate || function (decorators, target, key, value) {\n var kind = typeof (arguments.length == 2 ? value = target : value);\n for (var i = decorators.length - 1; i >= 0; --i) {\n var decorator = decorators[i];\n switch (kind) {\n case \"function\": value = decorator(value) || value; break;\n case \"number\": decorator(target, key, value); break;\n case \"undefined\": decorator(target, key); break;\n case \"object\": value = decorator(target, key, value) || value; break;\n }\n }\n return value;\n};"); - decorateEmitted = true; - } - if (ts.isExternalModule(node)) { - if (languageVersion >= 2) { - emitES6Module(node, startIndex); - } - else if (compilerOptions.module === 2) { - emitAMDModule(node, startIndex); - } - else { - emitCommonJSModule(node, startIndex); - } - } - else { - externalImports = undefined; - exportSpecifiers = undefined; - exportEquals = undefined; - hasExportStars = false; - emitCaptureThisForNodeIfNecessary(node); - emitLinesStartingAt(node.statements, startIndex); - emitTempDeclarations(true); - } - emitLeadingComments(node.endOfFileToken); - } - function emitNodeWithoutSourceMap(node, allowGeneratedIdentifiers) { - if (!node) { - return; - } - if (node.flags & 2) { - return emitOnlyPinnedOrTripleSlashComments(node); - } - var emitComments = shouldEmitLeadingAndTrailingComments(node); - if (emitComments) { - emitLeadingComments(node); - } - emitJavaScriptWorker(node, allowGeneratedIdentifiers); - if (emitComments) { - emitTrailingComments(node); - } - } - function shouldEmitLeadingAndTrailingComments(node) { - switch (node.kind) { - case 199: - case 197: - case 206: - case 205: - case 200: - case 211: - return false; - case 202: - return shouldEmitModuleDeclaration(node); - case 201: - return shouldEmitEnumDeclaration(node); - } - if (node.kind !== 176 && - node.parent && - node.parent.kind === 163 && - node.parent.body === node && - compilerOptions.target <= 1) { - return false; - } - return true; - } - function emitJavaScriptWorker(node, allowGeneratedIdentifiers) { - if (allowGeneratedIdentifiers === void 0) { allowGeneratedIdentifiers = true; } - switch (node.kind) { - case 65: - return emitIdentifier(node, allowGeneratedIdentifiers); - case 129: - return emitParameter(node); - case 134: - case 133: - return emitMethod(node); - case 136: - case 137: - return emitAccessor(node); - case 93: - return emitThis(node); - case 91: - return emitSuper(node); - case 89: - return write("null"); - case 95: - return write("true"); - case 80: - return write("false"); - case 7: - case 8: - case 9: - case 10: - case 11: - case 12: - case 13: - return emitLiteral(node); - case 171: - return emitTemplateExpression(node); - case 175: - return emitTemplateSpan(node); - case 126: - return emitQualifiedName(node); - case 150: - return emitObjectBindingPattern(node); - case 151: - return emitArrayBindingPattern(node); - case 152: - return emitBindingElement(node); - case 153: - return emitArrayLiteral(node); - case 154: - return emitObjectLiteral(node); - case 221: - return emitPropertyAssignment(node); - case 222: - return emitShorthandPropertyAssignment(node); - case 127: - return emitComputedPropertyName(node); - case 155: - return emitPropertyAccess(node); - case 156: - return emitIndexedAccess(node); - case 157: - return emitCallExpression(node); - case 158: - return emitNewExpression(node); - case 159: - return emitTaggedTemplateExpression(node); - case 160: - return emit(node.expression); - case 161: - return emitParenExpression(node); - case 197: - case 162: - case 163: - return emitFunctionDeclaration(node); - case 164: - return emitDeleteExpression(node); - case 165: - return emitTypeOfExpression(node); - case 166: - return emitVoidExpression(node); - case 167: - return emitPrefixUnaryExpression(node); - case 168: - return emitPostfixUnaryExpression(node); - case 169: - return emitBinaryExpression(node); - case 170: - return emitConditionalExpression(node); - case 173: - return emitSpreadElementExpression(node); - case 174: - return; - case 176: - case 203: - return emitBlock(node); - case 177: - return emitVariableStatement(node); - case 178: - return write(";"); - case 179: - return emitExpressionStatement(node); - case 180: - return emitIfStatement(node); - case 181: - return emitDoStatement(node); - case 182: - return emitWhileStatement(node); - case 183: - return emitForStatement(node); - case 185: - case 184: - return emitForInOrForOfStatement(node); - case 186: - case 187: - return emitBreakOrContinueStatement(node); - case 188: - return emitReturnStatement(node); - case 189: - return emitWithStatement(node); - case 190: - return emitSwitchStatement(node); - case 217: - case 218: - return emitCaseOrDefaultClause(node); - case 191: - return emitLabelledStatement(node); - case 192: - return emitThrowStatement(node); - case 193: - return emitTryStatement(node); - case 220: - return emitCatchClause(node); - case 194: - return emitDebuggerStatement(node); - case 195: - return emitVariableDeclaration(node); - case 198: - return emitClassDeclaration(node); - case 199: - return emitInterfaceDeclaration(node); - case 201: - return emitEnumDeclaration(node); - case 223: - return emitEnumMember(node); - case 202: - return emitModuleDeclaration(node); - case 206: - return emitImportDeclaration(node); - case 205: - return emitImportEqualsDeclaration(node); - case 212: - return emitExportDeclaration(node); - case 211: - return emitExportAssignment(node); - case 224: - return emitSourceFileNode(node); - } - } - function hasDetachedComments(pos) { - return detachedCommentsInfo !== undefined && detachedCommentsInfo[detachedCommentsInfo.length - 1].nodePos === pos; - } - function getLeadingCommentsWithoutDetachedComments() { - var leadingComments = ts.getLeadingCommentRanges(currentSourceFile.text, detachedCommentsInfo[detachedCommentsInfo.length - 1].detachedCommentEndPos); - if (detachedCommentsInfo.length - 1) { - detachedCommentsInfo.pop(); - } - else { - detachedCommentsInfo = undefined; - } - return leadingComments; - } - function filterComments(ranges, onlyPinnedOrTripleSlashComments) { - if (ranges && onlyPinnedOrTripleSlashComments) { - ranges = ts.filter(ranges, isPinnedOrTripleSlashComment); - if (ranges.length === 0) { - return undefined; - } - } - return ranges; - } - function getLeadingCommentsToEmit(node) { - if (node.parent) { - if (node.parent.kind === 224 || node.pos !== node.parent.pos) { - if (hasDetachedComments(node.pos)) { - return getLeadingCommentsWithoutDetachedComments(); - } - else { - return ts.getLeadingCommentRangesOfNode(node, currentSourceFile); - } - } - } - } - function getTrailingCommentsToEmit(node) { - if (node.parent) { - if (node.parent.kind === 224 || node.end !== node.parent.end) { - return ts.getTrailingCommentRanges(currentSourceFile.text, node.end); - } - } - } - function emitOnlyPinnedOrTripleSlashComments(node) { - emitLeadingCommentsWorker(node, true); - } - function emitLeadingComments(node) { - return emitLeadingCommentsWorker(node, compilerOptions.removeComments); - } - function emitLeadingCommentsWorker(node, onlyPinnedOrTripleSlashComments) { - var leadingComments = filterComments(getLeadingCommentsToEmit(node), onlyPinnedOrTripleSlashComments); - ts.emitNewLineBeforeLeadingComments(currentSourceFile, writer, node, leadingComments); - ts.emitComments(currentSourceFile, writer, leadingComments, true, newLine, writeComment); - } - function emitTrailingComments(node) { - var trailingComments = filterComments(getTrailingCommentsToEmit(node), compilerOptions.removeComments); - ts.emitComments(currentSourceFile, writer, trailingComments, false, newLine, writeComment); - } - function emitLeadingCommentsOfPosition(pos) { - var leadingComments; - if (hasDetachedComments(pos)) { - leadingComments = getLeadingCommentsWithoutDetachedComments(); - } - else { - leadingComments = ts.getLeadingCommentRanges(currentSourceFile.text, pos); - } - leadingComments = filterComments(leadingComments, compilerOptions.removeComments); - ts.emitNewLineBeforeLeadingComments(currentSourceFile, writer, { pos: pos, end: pos }, leadingComments); - ts.emitComments(currentSourceFile, writer, leadingComments, true, newLine, writeComment); - } - function emitDetachedComments(node) { - var leadingComments = ts.getLeadingCommentRanges(currentSourceFile.text, node.pos); - if (leadingComments) { - var detachedComments = []; - var lastComment; - ts.forEach(leadingComments, function (comment) { - if (lastComment) { - var lastCommentLine = ts.getLineOfLocalPosition(currentSourceFile, lastComment.end); - var commentLine = ts.getLineOfLocalPosition(currentSourceFile, comment.pos); - if (commentLine >= lastCommentLine + 2) { - return detachedComments; - } - } - detachedComments.push(comment); - lastComment = comment; - }); - if (detachedComments.length) { - var lastCommentLine = ts.getLineOfLocalPosition(currentSourceFile, detachedComments[detachedComments.length - 1].end); - var nodeLine = ts.getLineOfLocalPosition(currentSourceFile, ts.skipTrivia(currentSourceFile.text, node.pos)); - if (nodeLine >= lastCommentLine + 2) { - ts.emitNewLineBeforeLeadingComments(currentSourceFile, writer, node, leadingComments); - ts.emitComments(currentSourceFile, writer, detachedComments, true, newLine, writeComment); - var currentDetachedCommentInfo = { nodePos: node.pos, detachedCommentEndPos: detachedComments[detachedComments.length - 1].end }; - if (detachedCommentsInfo) { - detachedCommentsInfo.push(currentDetachedCommentInfo); - } - else { - detachedCommentsInfo = [currentDetachedCommentInfo]; - } - } - } - } - } - function isPinnedOrTripleSlashComment(comment) { - if (currentSourceFile.text.charCodeAt(comment.pos + 1) === 42) { - return currentSourceFile.text.charCodeAt(comment.pos + 2) === 33; - } - else if (currentSourceFile.text.charCodeAt(comment.pos + 1) === 47 && - comment.pos + 2 < comment.end && - currentSourceFile.text.charCodeAt(comment.pos + 2) === 47 && - currentSourceFile.text.substring(comment.pos, comment.end).match(ts.fullTripleSlashReferencePathRegEx)) { - return true; - } - } - } - function emitFile(jsFilePath, sourceFile) { - emitJavaScript(jsFilePath, sourceFile); - if (compilerOptions.declaration) { - ts.writeDeclarationFile(jsFilePath, sourceFile, host, resolver, diagnostics); - } - } - } - ts.emitFiles = emitFiles; -})(ts || (ts = {})); -/// -/// -var ts; -(function (ts) { - ts.programTime = 0; - ts.emitTime = 0; - ts.ioReadTime = 0; - ts.ioWriteTime = 0; - ts.version = "1.5.0.0"; - function findConfigFile(searchPath) { - var fileName = "tsconfig.json"; - while (true) { - if (ts.sys.fileExists(fileName)) { - return fileName; - } - var parentPath = ts.getDirectoryPath(searchPath); - if (parentPath === searchPath) { - break; - } - searchPath = parentPath; - fileName = "../" + fileName; - } - return undefined; - } - ts.findConfigFile = findConfigFile; - function createCompilerHost(options, setParentNodes) { - var currentDirectory; - var existingDirectories = {}; - function getCanonicalFileName(fileName) { - return ts.sys.useCaseSensitiveFileNames ? fileName : fileName.toLowerCase(); - } - var unsupportedFileEncodingErrorCode = -2147024809; - function getSourceFile(fileName, languageVersion, onError) { - var text; - try { - var start = new Date().getTime(); - text = ts.sys.readFile(fileName, options.charset); - ts.ioReadTime += new Date().getTime() - start; - } - catch (e) { - if (onError) { - onError(e.number === unsupportedFileEncodingErrorCode - ? ts.createCompilerDiagnostic(ts.Diagnostics.Unsupported_file_encoding).messageText - : e.message); - } - text = ""; - } - return text !== undefined ? ts.createSourceFile(fileName, text, languageVersion, setParentNodes) : undefined; - } - function directoryExists(directoryPath) { - if (ts.hasProperty(existingDirectories, directoryPath)) { - return true; - } - if (ts.sys.directoryExists(directoryPath)) { - existingDirectories[directoryPath] = true; - return true; - } - return false; - } - function ensureDirectoriesExist(directoryPath) { - if (directoryPath.length > ts.getRootLength(directoryPath) && !directoryExists(directoryPath)) { - var parentDirectory = ts.getDirectoryPath(directoryPath); - ensureDirectoriesExist(parentDirectory); - ts.sys.createDirectory(directoryPath); - } - } - function writeFile(fileName, data, writeByteOrderMark, onError) { - try { - var start = new Date().getTime(); - ensureDirectoriesExist(ts.getDirectoryPath(ts.normalizePath(fileName))); - ts.sys.writeFile(fileName, data, writeByteOrderMark); - ts.ioWriteTime += new Date().getTime() - start; - } - catch (e) { - if (onError) { - onError(e.message); - } - } - } - return { - getSourceFile: getSourceFile, - getDefaultLibFileName: function (options) { return ts.combinePaths(ts.getDirectoryPath(ts.normalizePath(ts.sys.getExecutingFilePath())), ts.getDefaultLibFileName(options)); }, - writeFile: writeFile, - getCurrentDirectory: function () { return currentDirectory || (currentDirectory = ts.sys.getCurrentDirectory()); }, - useCaseSensitiveFileNames: function () { return ts.sys.useCaseSensitiveFileNames; }, - getCanonicalFileName: getCanonicalFileName, - getNewLine: function () { return ts.sys.newLine; } - }; - } - ts.createCompilerHost = createCompilerHost; - function getPreEmitDiagnostics(program) { - var diagnostics = program.getSyntacticDiagnostics().concat(program.getGlobalDiagnostics()).concat(program.getSemanticDiagnostics()); - if (program.getCompilerOptions().declaration) { - diagnostics.concat(program.getDeclarationDiagnostics()); - } - return ts.sortAndDeduplicateDiagnostics(diagnostics); - } - ts.getPreEmitDiagnostics = getPreEmitDiagnostics; - function flattenDiagnosticMessageText(messageText, newLine) { - if (typeof messageText === "string") { - return messageText; - } - else { - var diagnosticChain = messageText; - var result = ""; - var indent = 0; - while (diagnosticChain) { - if (indent) { - result += newLine; - for (var i = 0; i < indent; i++) { - result += " "; - } - } - result += diagnosticChain.messageText; - indent++; - diagnosticChain = diagnosticChain.next; - } - return result; - } - } - ts.flattenDiagnosticMessageText = flattenDiagnosticMessageText; - function createProgram(rootNames, options, host) { - var program; - var files = []; - var filesByName = {}; - var diagnostics = ts.createDiagnosticCollection(); - var seenNoDefaultLib = options.noLib; - var commonSourceDirectory; - var diagnosticsProducingTypeChecker; - var noDiagnosticsTypeChecker; - var start = new Date().getTime(); - host = host || createCompilerHost(options); - ts.forEach(rootNames, function (name) { return processRootFile(name, false); }); - if (!seenNoDefaultLib) { - processRootFile(host.getDefaultLibFileName(options), true); - } - verifyCompilerOptions(); - ts.programTime += new Date().getTime() - start; - program = { - getSourceFile: getSourceFile, - getSourceFiles: function () { return files; }, - getCompilerOptions: function () { return options; }, - getSyntacticDiagnostics: getSyntacticDiagnostics, - getGlobalDiagnostics: getGlobalDiagnostics, - getSemanticDiagnostics: getSemanticDiagnostics, - getDeclarationDiagnostics: getDeclarationDiagnostics, - getTypeChecker: getTypeChecker, - getDiagnosticsProducingTypeChecker: getDiagnosticsProducingTypeChecker, - getCommonSourceDirectory: function () { return commonSourceDirectory; }, - emit: emit, - getCurrentDirectory: host.getCurrentDirectory, - getNodeCount: function () { return getDiagnosticsProducingTypeChecker().getNodeCount(); }, - getIdentifierCount: function () { return getDiagnosticsProducingTypeChecker().getIdentifierCount(); }, - getSymbolCount: function () { return getDiagnosticsProducingTypeChecker().getSymbolCount(); }, - getTypeCount: function () { return getDiagnosticsProducingTypeChecker().getTypeCount(); } - }; - return program; - function getEmitHost(writeFileCallback) { - return { - getCanonicalFileName: host.getCanonicalFileName, - getCommonSourceDirectory: program.getCommonSourceDirectory, - getCompilerOptions: program.getCompilerOptions, - getCurrentDirectory: host.getCurrentDirectory, - getNewLine: host.getNewLine, - getSourceFile: program.getSourceFile, - getSourceFiles: program.getSourceFiles, - writeFile: writeFileCallback || host.writeFile - }; - } - function getDiagnosticsProducingTypeChecker() { - return diagnosticsProducingTypeChecker || (diagnosticsProducingTypeChecker = ts.createTypeChecker(program, true)); - } - function getTypeChecker() { - return noDiagnosticsTypeChecker || (noDiagnosticsTypeChecker = ts.createTypeChecker(program, false)); - } - function emit(sourceFile, writeFileCallback) { - if (options.noEmitOnError && getPreEmitDiagnostics(this).length > 0) { - return { diagnostics: [], sourceMaps: undefined, emitSkipped: true }; - } - var emitResolver = getDiagnosticsProducingTypeChecker().getEmitResolver(sourceFile); - var start = new Date().getTime(); - var emitResult = ts.emitFiles(emitResolver, getEmitHost(writeFileCallback), sourceFile); - ts.emitTime += new Date().getTime() - start; - return emitResult; - } - function getSourceFile(fileName) { - fileName = host.getCanonicalFileName(fileName); - return ts.hasProperty(filesByName, fileName) ? filesByName[fileName] : undefined; - } - function getDiagnosticsHelper(sourceFile, getDiagnostics) { - if (sourceFile) { - return getDiagnostics(sourceFile); - } - var allDiagnostics = []; - ts.forEach(program.getSourceFiles(), function (sourceFile) { - ts.addRange(allDiagnostics, getDiagnostics(sourceFile)); - }); - return ts.sortAndDeduplicateDiagnostics(allDiagnostics); - } - function getSyntacticDiagnostics(sourceFile) { - return getDiagnosticsHelper(sourceFile, getSyntacticDiagnosticsForFile); - } - function getSemanticDiagnostics(sourceFile) { - return getDiagnosticsHelper(sourceFile, getSemanticDiagnosticsForFile); - } - function getDeclarationDiagnostics(sourceFile) { - return getDiagnosticsHelper(sourceFile, getDeclarationDiagnosticsForFile); - } - function getSyntacticDiagnosticsForFile(sourceFile) { - return sourceFile.parseDiagnostics; - } - function getSemanticDiagnosticsForFile(sourceFile) { - var typeChecker = getDiagnosticsProducingTypeChecker(); - ts.Debug.assert(!!sourceFile.bindDiagnostics); - var bindDiagnostics = sourceFile.bindDiagnostics; - var checkDiagnostics = typeChecker.getDiagnostics(sourceFile); - var programDiagnostics = diagnostics.getDiagnostics(sourceFile.fileName); - return bindDiagnostics.concat(checkDiagnostics).concat(programDiagnostics); - } - function getDeclarationDiagnosticsForFile(sourceFile) { - if (!ts.isDeclarationFile(sourceFile)) { - var resolver = getDiagnosticsProducingTypeChecker().getEmitResolver(sourceFile); - var writeFile = function () { }; - return ts.getDeclarationDiagnostics(getEmitHost(writeFile), resolver, sourceFile); - } - } - function getGlobalDiagnostics() { - var typeChecker = getDiagnosticsProducingTypeChecker(); - var allDiagnostics = []; - ts.addRange(allDiagnostics, typeChecker.getGlobalDiagnostics()); - ts.addRange(allDiagnostics, diagnostics.getGlobalDiagnostics()); - return ts.sortAndDeduplicateDiagnostics(allDiagnostics); - } - function hasExtension(fileName) { - return ts.getBaseFileName(fileName).indexOf(".") >= 0; - } - function processRootFile(fileName, isDefaultLib) { - processSourceFile(ts.normalizePath(fileName), isDefaultLib); - } - function processSourceFile(fileName, isDefaultLib, refFile, refPos, refEnd) { - var start; - var length; - if (refEnd !== undefined && refPos !== undefined) { - start = refPos; - length = refEnd - refPos; - } - var diagnostic; - if (hasExtension(fileName)) { - if (!options.allowNonTsExtensions && !ts.fileExtensionIs(host.getCanonicalFileName(fileName), ".ts")) { - diagnostic = ts.Diagnostics.File_0_must_have_extension_ts_or_d_ts; - } - else if (!findSourceFile(fileName, isDefaultLib, refFile, refPos, refEnd)) { - diagnostic = ts.Diagnostics.File_0_not_found; - } - else if (refFile && host.getCanonicalFileName(fileName) === host.getCanonicalFileName(refFile.fileName)) { - diagnostic = ts.Diagnostics.A_file_cannot_have_a_reference_to_itself; - } - } - else { - if (options.allowNonTsExtensions && !findSourceFile(fileName, isDefaultLib, refFile, refPos, refEnd)) { - diagnostic = ts.Diagnostics.File_0_not_found; - } - else if (!findSourceFile(fileName + ".ts", isDefaultLib, refFile, refPos, refEnd) && !findSourceFile(fileName + ".d.ts", isDefaultLib, refFile, refPos, refEnd)) { - diagnostic = ts.Diagnostics.File_0_not_found; - fileName += ".ts"; - } - } - if (diagnostic) { - if (refFile) { - diagnostics.add(ts.createFileDiagnostic(refFile, start, length, diagnostic, fileName)); - } - else { - diagnostics.add(ts.createCompilerDiagnostic(diagnostic, fileName)); - } - } - } - function findSourceFile(fileName, isDefaultLib, refFile, refStart, refLength) { - var canonicalName = host.getCanonicalFileName(fileName); - if (ts.hasProperty(filesByName, canonicalName)) { - return getSourceFileFromCache(fileName, canonicalName, false); - } - else { - var normalizedAbsolutePath = ts.getNormalizedAbsolutePath(fileName, host.getCurrentDirectory()); - var canonicalAbsolutePath = host.getCanonicalFileName(normalizedAbsolutePath); - if (ts.hasProperty(filesByName, canonicalAbsolutePath)) { - return getSourceFileFromCache(normalizedAbsolutePath, canonicalAbsolutePath, true); - } - var file = filesByName[canonicalName] = host.getSourceFile(fileName, options.target, function (hostErrorMessage) { - if (refFile) { - diagnostics.add(ts.createFileDiagnostic(refFile, refStart, refLength, ts.Diagnostics.Cannot_read_file_0_Colon_1, fileName, hostErrorMessage)); - } - else { - diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Cannot_read_file_0_Colon_1, fileName, hostErrorMessage)); - } - }); - if (file) { - seenNoDefaultLib = seenNoDefaultLib || file.hasNoDefaultLib; - filesByName[canonicalAbsolutePath] = file; - if (!options.noResolve) { - var basePath = ts.getDirectoryPath(fileName); - processReferencedFiles(file, basePath); - processImportedModules(file, basePath); - } - if (isDefaultLib) { - files.unshift(file); - } - else { - files.push(file); - } - } - return file; - } - function getSourceFileFromCache(fileName, canonicalName, useAbsolutePath) { - var file = filesByName[canonicalName]; - if (file && host.useCaseSensitiveFileNames()) { - var sourceFileName = useAbsolutePath ? ts.getNormalizedAbsolutePath(file.fileName, host.getCurrentDirectory()) : file.fileName; - if (canonicalName !== sourceFileName) { - diagnostics.add(ts.createFileDiagnostic(refFile, refStart, refLength, ts.Diagnostics.File_name_0_differs_from_already_included_file_name_1_only_in_casing, fileName, sourceFileName)); - } - } - return file; - } - } - function processReferencedFiles(file, basePath) { - ts.forEach(file.referencedFiles, function (ref) { - var referencedFileName = ts.isRootedDiskPath(ref.fileName) ? ref.fileName : ts.combinePaths(basePath, ref.fileName); - processSourceFile(ts.normalizePath(referencedFileName), false, file, ref.pos, ref.end); - }); - } - function processImportedModules(file, basePath) { - ts.forEach(file.statements, function (node) { - if (node.kind === 206 || node.kind === 205 || node.kind === 212) { - var moduleNameExpr = ts.getExternalModuleName(node); - if (moduleNameExpr && moduleNameExpr.kind === 8) { - var moduleNameText = moduleNameExpr.text; - if (moduleNameText) { - var searchPath = basePath; - while (true) { - var searchName = ts.normalizePath(ts.combinePaths(searchPath, moduleNameText)); - if (findModuleSourceFile(searchName + ".ts", moduleNameExpr) || findModuleSourceFile(searchName + ".d.ts", moduleNameExpr)) { - break; - } - var parentPath = ts.getDirectoryPath(searchPath); - if (parentPath === searchPath) { - break; - } - searchPath = parentPath; - } - } - } - } - else if (node.kind === 202 && node.name.kind === 8 && (node.flags & 2 || ts.isDeclarationFile(file))) { - ts.forEachChild(node.body, function (node) { - if (ts.isExternalModuleImportEqualsDeclaration(node) && - ts.getExternalModuleImportEqualsDeclarationExpression(node).kind === 8) { - var nameLiteral = ts.getExternalModuleImportEqualsDeclarationExpression(node); - var moduleName = nameLiteral.text; - if (moduleName) { - var searchName = ts.normalizePath(ts.combinePaths(basePath, moduleName)); - var tsFile = findModuleSourceFile(searchName + ".ts", nameLiteral); - if (!tsFile) { - findModuleSourceFile(searchName + ".d.ts", nameLiteral); - } - } - } - }); - } - }); - function findModuleSourceFile(fileName, nameLiteral) { - return findSourceFile(fileName, false, file, nameLiteral.pos, nameLiteral.end - nameLiteral.pos); - } - } - function verifyCompilerOptions() { - if (!options.sourceMap && (options.mapRoot || options.sourceRoot)) { - if (options.mapRoot) { - diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_mapRoot_cannot_be_specified_without_specifying_sourcemap_option)); - } - if (options.sourceRoot) { - diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_sourceRoot_cannot_be_specified_without_specifying_sourcemap_option)); - } - return; - } - var languageVersion = options.target || 0; - var firstExternalModuleSourceFile = ts.forEach(files, function (f) { return ts.isExternalModule(f) ? f : undefined; }); - if (firstExternalModuleSourceFile && !options.module) { - if (!options.module && languageVersion < 2) { - var span = ts.getErrorSpanForNode(firstExternalModuleSourceFile, firstExternalModuleSourceFile.externalModuleIndicator); - diagnostics.add(ts.createFileDiagnostic(firstExternalModuleSourceFile, span.start, span.length, ts.Diagnostics.Cannot_compile_external_modules_unless_the_module_flag_is_provided)); - } - } - if (options.module && languageVersion >= 2) { - diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Cannot_compile_external_modules_into_amd_or_commonjs_when_targeting_es6_or_higher)); - } - if (options.outDir || - options.sourceRoot || - (options.mapRoot && - (!options.out || firstExternalModuleSourceFile !== undefined))) { - var commonPathComponents; - ts.forEach(files, function (sourceFile) { - if (!(sourceFile.flags & 2048) - && !ts.fileExtensionIs(sourceFile.fileName, ".js")) { - var sourcePathComponents = ts.getNormalizedPathComponents(sourceFile.fileName, host.getCurrentDirectory()); - sourcePathComponents.pop(); - if (commonPathComponents) { - for (var i = 0; i < Math.min(commonPathComponents.length, sourcePathComponents.length); i++) { - if (commonPathComponents[i] !== sourcePathComponents[i]) { - if (i === 0) { - diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Cannot_find_the_common_subdirectory_path_for_the_input_files)); - return; - } - commonPathComponents.length = i; - break; - } - } - if (sourcePathComponents.length < commonPathComponents.length) { - commonPathComponents.length = sourcePathComponents.length; - } - } - else { - commonPathComponents = sourcePathComponents; - } - } - }); - commonSourceDirectory = ts.getNormalizedPathFromPathComponents(commonPathComponents); - if (commonSourceDirectory) { - commonSourceDirectory += ts.directorySeparator; - } - } - if (options.noEmit) { - if (options.out || options.outDir) { - diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_noEmit_cannot_be_specified_with_option_out_or_outDir)); - } - if (options.declaration) { - diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_noEmit_cannot_be_specified_with_option_declaration)); - } - } - } - } - ts.createProgram = createProgram; -})(ts || (ts = {})); -// Copyright (c) Microsoft. All rights reserved. Licensed under the Apache License, Version 2.0. -// See LICENSE.txt in the project root for complete license information. -/// -var ts; -(function (ts) { - var BreakpointResolver; - (function (BreakpointResolver) { - function spanInSourceFileAtLocation(sourceFile, position) { - if (sourceFile.flags & 2048) { - return undefined; - } - var tokenAtLocation = ts.getTokenAtPosition(sourceFile, position); - var lineOfPosition = sourceFile.getLineAndCharacterOfPosition(position).line; - if (sourceFile.getLineAndCharacterOfPosition(tokenAtLocation.getStart()).line > lineOfPosition) { - tokenAtLocation = ts.findPrecedingToken(tokenAtLocation.pos, sourceFile); - if (!tokenAtLocation || sourceFile.getLineAndCharacterOfPosition(tokenAtLocation.getEnd()).line !== lineOfPosition) { - return undefined; - } - } - if (ts.isInAmbientContext(tokenAtLocation)) { - return undefined; - } - return spanInNode(tokenAtLocation); - function textSpan(startNode, endNode) { - return ts.createTextSpanFromBounds(startNode.getStart(), (endNode || startNode).getEnd()); - } - function spanInNodeIfStartsOnSameLine(node, otherwiseOnNode) { - if (node && lineOfPosition === sourceFile.getLineAndCharacterOfPosition(node.getStart()).line) { - return spanInNode(node); - } - return spanInNode(otherwiseOnNode); - } - function spanInPreviousNode(node) { - return spanInNode(ts.findPrecedingToken(node.pos, sourceFile)); - } - function spanInNextNode(node) { - return spanInNode(ts.findNextToken(node, node.parent)); - } - function spanInNode(node) { - if (node) { - if (ts.isExpression(node)) { - if (node.parent.kind === 181) { - return spanInPreviousNode(node); - } - if (node.parent.kind === 183) { - return textSpan(node); - } - if (node.parent.kind === 169 && node.parent.operatorToken.kind === 23) { - return textSpan(node); - } - if (node.parent.kind == 163 && node.parent.body == node) { - return textSpan(node); - } - } - switch (node.kind) { - case 177: - return spanInVariableDeclaration(node.declarationList.declarations[0]); - case 195: - case 132: - case 131: - return spanInVariableDeclaration(node); - case 129: - return spanInParameterDeclaration(node); - case 197: - case 134: - case 133: - case 136: - case 137: - case 135: - case 162: - case 163: - return spanInFunctionDeclaration(node); - case 176: - if (ts.isFunctionBlock(node)) { - return spanInFunctionBlock(node); - } - case 203: - return spanInBlock(node); - case 220: - return spanInBlock(node.block); - case 179: - return textSpan(node.expression); - case 188: - return textSpan(node.getChildAt(0), node.expression); - case 182: - return textSpan(node, ts.findNextToken(node.expression, node)); - case 181: - return spanInNode(node.statement); - case 194: - return textSpan(node.getChildAt(0)); - case 180: - return textSpan(node, ts.findNextToken(node.expression, node)); - case 191: - return spanInNode(node.statement); - case 187: - case 186: - return textSpan(node.getChildAt(0), node.label); - case 183: - return spanInForStatement(node); - case 184: - case 185: - return textSpan(node, ts.findNextToken(node.expression, node)); - case 190: - return textSpan(node, ts.findNextToken(node.expression, node)); - case 217: - case 218: - return spanInNode(node.statements[0]); - case 193: - return spanInBlock(node.tryBlock); - case 192: - return textSpan(node, node.expression); - case 211: - if (!node.expression) { - return undefined; - } - return textSpan(node, node.expression); - case 205: - return textSpan(node, node.moduleReference); - case 206: - return textSpan(node, node.moduleSpecifier); - case 212: - return textSpan(node, node.moduleSpecifier); - case 202: - if (ts.getModuleInstanceState(node) !== 1) { - return undefined; - } - case 198: - case 201: - case 223: - case 157: - case 158: - return textSpan(node); - case 189: - return spanInNode(node.statement); - case 199: - case 200: - return undefined; - case 22: - case 1: - return spanInNodeIfStartsOnSameLine(ts.findPrecedingToken(node.pos, sourceFile)); - case 23: - return spanInPreviousNode(node); - case 14: - return spanInOpenBraceToken(node); - case 15: - return spanInCloseBraceToken(node); - case 16: - return spanInOpenParenToken(node); - case 17: - return spanInCloseParenToken(node); - case 51: - return spanInColonToken(node); - case 25: - case 24: - return spanInGreaterThanOrLessThanToken(node); - case 100: - return spanInWhileKeyword(node); - case 76: - case 68: - case 81: - return spanInNextNode(node); - default: - if (node.parent.kind === 221 && node.parent.name === node) { - return spanInNode(node.parent.initializer); - } - if (node.parent.kind === 160 && node.parent.type === node) { - return spanInNode(node.parent.expression); - } - if (ts.isFunctionLike(node.parent) && node.parent.type === node) { - return spanInPreviousNode(node); - } - return spanInNode(node.parent); - } - } - function spanInVariableDeclaration(variableDeclaration) { - if (variableDeclaration.parent.parent.kind === 184 || - variableDeclaration.parent.parent.kind === 185) { - return spanInNode(variableDeclaration.parent.parent); - } - var isParentVariableStatement = variableDeclaration.parent.parent.kind === 177; - var isDeclarationOfForStatement = variableDeclaration.parent.parent.kind === 183 && ts.contains(variableDeclaration.parent.parent.initializer.declarations, variableDeclaration); - var declarations = isParentVariableStatement - ? variableDeclaration.parent.parent.declarationList.declarations - : isDeclarationOfForStatement - ? variableDeclaration.parent.parent.initializer.declarations - : undefined; - if (variableDeclaration.initializer || (variableDeclaration.flags & 1)) { - if (declarations && declarations[0] === variableDeclaration) { - if (isParentVariableStatement) { - return textSpan(variableDeclaration.parent, variableDeclaration); - } - else { - ts.Debug.assert(isDeclarationOfForStatement); - return textSpan(ts.findPrecedingToken(variableDeclaration.pos, sourceFile, variableDeclaration.parent), variableDeclaration); - } - } - else { - return textSpan(variableDeclaration); - } - } - else if (declarations && declarations[0] !== variableDeclaration) { - var indexOfCurrentDeclaration = ts.indexOf(declarations, variableDeclaration); - return spanInVariableDeclaration(declarations[indexOfCurrentDeclaration - 1]); - } - } - function canHaveSpanInParameterDeclaration(parameter) { - return !!parameter.initializer || parameter.dotDotDotToken !== undefined || - !!(parameter.flags & 16) || !!(parameter.flags & 32); - } - function spanInParameterDeclaration(parameter) { - if (canHaveSpanInParameterDeclaration(parameter)) { - return textSpan(parameter); - } - else { - var functionDeclaration = parameter.parent; - var indexOfParameter = ts.indexOf(functionDeclaration.parameters, parameter); - if (indexOfParameter) { - return spanInParameterDeclaration(functionDeclaration.parameters[indexOfParameter - 1]); - } - else { - return spanInNode(functionDeclaration.body); - } - } - } - function canFunctionHaveSpanInWholeDeclaration(functionDeclaration) { - return !!(functionDeclaration.flags & 1) || - (functionDeclaration.parent.kind === 198 && functionDeclaration.kind !== 135); - } - function spanInFunctionDeclaration(functionDeclaration) { - if (!functionDeclaration.body) { - return undefined; - } - if (canFunctionHaveSpanInWholeDeclaration(functionDeclaration)) { - return textSpan(functionDeclaration); - } - return spanInNode(functionDeclaration.body); - } - function spanInFunctionBlock(block) { - var nodeForSpanInBlock = block.statements.length ? block.statements[0] : block.getLastToken(); - if (canFunctionHaveSpanInWholeDeclaration(block.parent)) { - return spanInNodeIfStartsOnSameLine(block.parent, nodeForSpanInBlock); - } - return spanInNode(nodeForSpanInBlock); - } - function spanInBlock(block) { - switch (block.parent.kind) { - case 202: - if (ts.getModuleInstanceState(block.parent) !== 1) { - return undefined; - } - case 182: - case 180: - case 184: - case 185: - return spanInNodeIfStartsOnSameLine(block.parent, block.statements[0]); - case 183: - return spanInNodeIfStartsOnSameLine(ts.findPrecedingToken(block.pos, sourceFile, block.parent), block.statements[0]); - } - return spanInNode(block.statements[0]); - } - function spanInForStatement(forStatement) { - if (forStatement.initializer) { - if (forStatement.initializer.kind === 196) { - var variableDeclarationList = forStatement.initializer; - if (variableDeclarationList.declarations.length > 0) { - return spanInNode(variableDeclarationList.declarations[0]); - } - } - else { - return spanInNode(forStatement.initializer); - } - } - if (forStatement.condition) { - return textSpan(forStatement.condition); - } - if (forStatement.iterator) { - return textSpan(forStatement.iterator); - } - } - function spanInOpenBraceToken(node) { - switch (node.parent.kind) { - case 201: - var enumDeclaration = node.parent; - return spanInNodeIfStartsOnSameLine(ts.findPrecedingToken(node.pos, sourceFile, node.parent), enumDeclaration.members.length ? enumDeclaration.members[0] : enumDeclaration.getLastToken(sourceFile)); - case 198: - var classDeclaration = node.parent; - return spanInNodeIfStartsOnSameLine(ts.findPrecedingToken(node.pos, sourceFile, node.parent), classDeclaration.members.length ? classDeclaration.members[0] : classDeclaration.getLastToken(sourceFile)); - case 204: - return spanInNodeIfStartsOnSameLine(node.parent.parent, node.parent.clauses[0]); - } - return spanInNode(node.parent); - } - function spanInCloseBraceToken(node) { - switch (node.parent.kind) { - case 203: - if (ts.getModuleInstanceState(node.parent.parent) !== 1) { - return undefined; - } - case 201: - case 198: - return textSpan(node); - case 176: - if (ts.isFunctionBlock(node.parent)) { - return textSpan(node); - } - case 220: - return spanInNode(node.parent.statements[node.parent.statements.length - 1]); - ; - case 204: - var caseBlock = node.parent; - var lastClause = caseBlock.clauses[caseBlock.clauses.length - 1]; - if (lastClause) { - return spanInNode(lastClause.statements[lastClause.statements.length - 1]); - } - return undefined; - default: - return spanInNode(node.parent); - } - } - function spanInOpenParenToken(node) { - if (node.parent.kind === 181) { - return spanInPreviousNode(node); - } - return spanInNode(node.parent); - } - function spanInCloseParenToken(node) { - switch (node.parent.kind) { - case 162: - case 197: - case 163: - case 134: - case 133: - case 136: - case 137: - case 135: - case 182: - case 181: - case 183: - return spanInPreviousNode(node); - default: - return spanInNode(node.parent); - } - return spanInNode(node.parent); - } - function spanInColonToken(node) { - if (ts.isFunctionLike(node.parent) || node.parent.kind === 221) { - return spanInPreviousNode(node); - } - return spanInNode(node.parent); - } - function spanInGreaterThanOrLessThanToken(node) { - if (node.parent.kind === 160) { - return spanInNode(node.parent.expression); - } - return spanInNode(node.parent); - } - function spanInWhileKeyword(node) { - if (node.parent.kind === 181) { - return textSpan(node, ts.findNextToken(node.parent.expression, node.parent)); - } - return spanInNode(node.parent); - } - } - } - BreakpointResolver.spanInSourceFileAtLocation = spanInSourceFileAtLocation; - })(BreakpointResolver = ts.BreakpointResolver || (ts.BreakpointResolver = {})); -})(ts || (ts = {})); -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -var ts; -(function (ts) { - var OutliningElementsCollector; - (function (OutliningElementsCollector) { - function collectElements(sourceFile) { - var elements = []; - var collapseText = "..."; - function addOutliningSpan(hintSpanNode, startElement, endElement, autoCollapse) { - if (hintSpanNode && startElement && endElement) { - var span = { - textSpan: ts.createTextSpanFromBounds(startElement.pos, endElement.end), - hintSpan: ts.createTextSpanFromBounds(hintSpanNode.getStart(), hintSpanNode.end), - bannerText: collapseText, - autoCollapse: autoCollapse - }; - elements.push(span); - } - } - function autoCollapse(node) { - return ts.isFunctionBlock(node) && node.parent.kind !== 163; - } - var depth = 0; - var maxDepth = 20; - function walk(n) { - if (depth > maxDepth) { - return; - } - switch (n.kind) { - case 176: - if (!ts.isFunctionBlock(n)) { - var parent_6 = n.parent; - var openBrace = ts.findChildOfKind(n, 14, sourceFile); - var closeBrace = ts.findChildOfKind(n, 15, sourceFile); - if (parent_6.kind === 181 || - parent_6.kind === 184 || - parent_6.kind === 185 || - parent_6.kind === 183 || - parent_6.kind === 180 || - parent_6.kind === 182 || - parent_6.kind === 189 || - parent_6.kind === 220) { - addOutliningSpan(parent_6, openBrace, closeBrace, autoCollapse(n)); - break; - } - if (parent_6.kind === 193) { - var tryStatement = parent_6; - if (tryStatement.tryBlock === n) { - addOutliningSpan(parent_6, openBrace, closeBrace, autoCollapse(n)); - break; - } - else if (tryStatement.finallyBlock === n) { - var finallyKeyword = ts.findChildOfKind(tryStatement, 81, sourceFile); - if (finallyKeyword) { - addOutliningSpan(finallyKeyword, openBrace, closeBrace, autoCollapse(n)); - break; - } - } - } - var span = ts.createTextSpanFromBounds(n.getStart(), n.end); - elements.push({ - textSpan: span, - hintSpan: span, - bannerText: collapseText, - autoCollapse: autoCollapse(n) - }); - break; - } - case 203: { - var openBrace = ts.findChildOfKind(n, 14, sourceFile); - var closeBrace = ts.findChildOfKind(n, 15, sourceFile); - addOutliningSpan(n.parent, openBrace, closeBrace, autoCollapse(n)); - break; - } - case 198: - case 199: - case 201: - case 154: - case 204: { - var openBrace = ts.findChildOfKind(n, 14, sourceFile); - var closeBrace = ts.findChildOfKind(n, 15, sourceFile); - addOutliningSpan(n, openBrace, closeBrace, autoCollapse(n)); - break; - } - case 153: - var openBracket = ts.findChildOfKind(n, 18, sourceFile); - var closeBracket = ts.findChildOfKind(n, 19, sourceFile); - addOutliningSpan(n, openBracket, closeBracket, autoCollapse(n)); - break; - } - depth++; - ts.forEachChild(n, walk); - depth--; - } - walk(sourceFile); - return elements; - } - OutliningElementsCollector.collectElements = collectElements; - })(OutliningElementsCollector = ts.OutliningElementsCollector || (ts.OutliningElementsCollector = {})); -})(ts || (ts = {})); -var ts; -(function (ts) { - var NavigateTo; - (function (NavigateTo) { - function getNavigateToItems(program, cancellationToken, searchValue, maxResultCount) { - var patternMatcher = ts.createPatternMatcher(searchValue); - var rawItems = []; - ts.forEach(program.getSourceFiles(), function (sourceFile) { - cancellationToken.throwIfCancellationRequested(); - var declarations = sourceFile.getNamedDeclarations(); - for (var _i = 0, _n = declarations.length; _i < _n; _i++) { - var declaration = declarations[_i]; - var name = getDeclarationName(declaration); - if (name !== undefined) { - var matches = patternMatcher.getMatchesForLastSegmentOfPattern(name); - if (!matches) { - continue; - } - if (patternMatcher.patternContainsDots) { - var containers = getContainers(declaration); - if (!containers) { - return undefined; - } - matches = patternMatcher.getMatches(containers, name); - if (!matches) { - continue; - } - } - var fileName = sourceFile.fileName; - var matchKind = bestMatchKind(matches); - rawItems.push({ name: name, fileName: fileName, matchKind: matchKind, isCaseSensitive: allMatchesAreCaseSensitive(matches), declaration: declaration }); - } - } - }); - rawItems.sort(compareNavigateToItems); - if (maxResultCount !== undefined) { - rawItems = rawItems.slice(0, maxResultCount); - } - var items = ts.map(rawItems, createNavigateToItem); - return items; - function allMatchesAreCaseSensitive(matches) { - ts.Debug.assert(matches.length > 0); - for (var _i = 0, _n = matches.length; _i < _n; _i++) { - var match = matches[_i]; - if (!match.isCaseSensitive) { - return false; - } - } - return true; - } - function getDeclarationName(declaration) { - var result = getTextOfIdentifierOrLiteral(declaration.name); - if (result !== undefined) { - return result; - } - if (declaration.name.kind === 127) { - var expr = declaration.name.expression; - if (expr.kind === 155) { - return expr.name.text; - } - return getTextOfIdentifierOrLiteral(expr); - } - return undefined; - } - function getTextOfIdentifierOrLiteral(node) { - if (node.kind === 65 || - node.kind === 8 || - node.kind === 7) { - return node.text; - } - return undefined; - } - function tryAddSingleDeclarationName(declaration, containers) { - if (declaration && declaration.name) { - var text = getTextOfIdentifierOrLiteral(declaration.name); - if (text !== undefined) { - containers.unshift(text); - } - else if (declaration.name.kind === 127) { - return tryAddComputedPropertyName(declaration.name.expression, containers, true); - } - else { - return false; - } - } - return true; - } - function tryAddComputedPropertyName(expression, containers, includeLastPortion) { - var text = getTextOfIdentifierOrLiteral(expression); - if (text !== undefined) { - if (includeLastPortion) { - containers.unshift(text); - } - return true; - } - if (expression.kind === 155) { - var propertyAccess = expression; - if (includeLastPortion) { - containers.unshift(propertyAccess.name.text); - } - return tryAddComputedPropertyName(propertyAccess.expression, containers, true); - } - return false; - } - function getContainers(declaration) { - var containers = []; - if (declaration.name.kind === 127) { - if (!tryAddComputedPropertyName(declaration.name.expression, containers, false)) { - return undefined; - } - } - declaration = ts.getContainerNode(declaration); - while (declaration) { - if (!tryAddSingleDeclarationName(declaration, containers)) { - return undefined; - } - declaration = ts.getContainerNode(declaration); - } - return containers; - } - function bestMatchKind(matches) { - ts.Debug.assert(matches.length > 0); - var bestMatchKind = ts.PatternMatchKind.camelCase; - for (var _i = 0, _n = matches.length; _i < _n; _i++) { - var match = matches[_i]; - var kind = match.kind; - if (kind < bestMatchKind) { - bestMatchKind = kind; - } - } - return bestMatchKind; - } - var baseSensitivity = { sensitivity: "base" }; - function compareNavigateToItems(i1, i2) { - return i1.matchKind - i2.matchKind || - i1.name.localeCompare(i2.name, undefined, baseSensitivity) || - i1.name.localeCompare(i2.name); - } - function createNavigateToItem(rawItem) { - var declaration = rawItem.declaration; - var container = ts.getContainerNode(declaration); - return { - name: rawItem.name, - kind: ts.getNodeKind(declaration), - kindModifiers: ts.getNodeModifiers(declaration), - matchKind: ts.PatternMatchKind[rawItem.matchKind], - isCaseSensitive: rawItem.isCaseSensitive, - fileName: rawItem.fileName, - textSpan: ts.createTextSpanFromBounds(declaration.getStart(), declaration.getEnd()), - containerName: container && container.name ? container.name.text : "", - containerKind: container && container.name ? ts.getNodeKind(container) : "" - }; - } - } - NavigateTo.getNavigateToItems = getNavigateToItems; - })(NavigateTo = ts.NavigateTo || (ts.NavigateTo = {})); -})(ts || (ts = {})); -/// -var ts; -(function (ts) { - var NavigationBar; - (function (NavigationBar) { - function getNavigationBarItems(sourceFile) { - var hasGlobalNode = false; - return getItemsWorker(getTopLevelNodes(sourceFile), createTopLevelItem); - function getIndent(node) { - var indent = hasGlobalNode ? 1 : 0; - var current = node.parent; - while (current) { - switch (current.kind) { - case 202: - do { - current = current.parent; - } while (current.kind === 202); - case 198: - case 201: - case 199: - case 197: - indent++; - } - current = current.parent; - } - return indent; - } - function getChildNodes(nodes) { - var childNodes = []; - function visit(node) { - switch (node.kind) { - case 177: - ts.forEach(node.declarationList.declarations, visit); - break; - case 150: - case 151: - ts.forEach(node.elements, visit); - break; - case 212: - if (node.exportClause) { - ts.forEach(node.exportClause.elements, visit); - } - break; - case 206: - var importClause = node.importClause; - if (importClause) { - if (importClause.name) { - childNodes.push(importClause); - } - if (importClause.namedBindings) { - if (importClause.namedBindings.kind === 208) { - childNodes.push(importClause.namedBindings); - } - else { - ts.forEach(importClause.namedBindings.elements, visit); - } - } - } - break; - case 152: - case 195: - if (ts.isBindingPattern(node.name)) { - visit(node.name); - break; - } - case 198: - case 201: - case 199: - case 202: - case 197: - case 205: - case 210: - case 214: - childNodes.push(node); - break; - } - } - ts.forEach(nodes, visit); - return sortNodes(childNodes); - } - function getTopLevelNodes(node) { - var topLevelNodes = []; - topLevelNodes.push(node); - addTopLevelNodes(node.statements, topLevelNodes); - return topLevelNodes; - } - function sortNodes(nodes) { - return nodes.slice(0).sort(function (n1, n2) { - if (n1.name && n2.name) { - return ts.getPropertyNameForPropertyNameNode(n1.name).localeCompare(ts.getPropertyNameForPropertyNameNode(n2.name)); - } - else if (n1.name) { - return 1; - } - else if (n2.name) { - return -1; - } - else { - return n1.kind - n2.kind; - } - }); - } - function addTopLevelNodes(nodes, topLevelNodes) { - nodes = sortNodes(nodes); - for (var _i = 0, _n = nodes.length; _i < _n; _i++) { - var node = nodes[_i]; - switch (node.kind) { - case 198: - case 201: - case 199: - topLevelNodes.push(node); - break; - case 202: - var moduleDeclaration = node; - topLevelNodes.push(node); - addTopLevelNodes(getInnermostModule(moduleDeclaration).body.statements, topLevelNodes); - break; - case 197: - var functionDeclaration = node; - if (isTopLevelFunctionDeclaration(functionDeclaration)) { - topLevelNodes.push(node); - addTopLevelNodes(functionDeclaration.body.statements, topLevelNodes); - } - break; - } - } - } - function isTopLevelFunctionDeclaration(functionDeclaration) { - if (functionDeclaration.kind === 197) { - if (functionDeclaration.body && functionDeclaration.body.kind === 176) { - if (ts.forEach(functionDeclaration.body.statements, function (s) { return s.kind === 197 && !isEmpty(s.name.text); })) { - return true; - } - if (!ts.isFunctionBlock(functionDeclaration.parent)) { - return true; - } - } - } - return false; - } - function getItemsWorker(nodes, createItem) { - var items = []; - var keyToItem = {}; - for (var _i = 0, _n = nodes.length; _i < _n; _i++) { - var child = nodes[_i]; - var item_3 = createItem(child); - if (item_3 !== undefined) { - if (item_3.text.length > 0) { - var key = item_3.text + "-" + item_3.kind + "-" + item_3.indent; - var itemWithSameName = keyToItem[key]; - if (itemWithSameName) { - merge(itemWithSameName, item_3); - } - else { - keyToItem[key] = item_3; - items.push(item_3); - } - } - } - } - return items; - } - function merge(target, source) { - target.spans.push.apply(target.spans, source.spans); - if (source.childItems) { - if (!target.childItems) { - target.childItems = []; - } - outer: for (var _i = 0, _a = source.childItems, _n = _a.length; _i < _n; _i++) { - var sourceChild = _a[_i]; - for (var _b = 0, _c = target.childItems, _d = _c.length; _b < _d; _b++) { - var targetChild = _c[_b]; - if (targetChild.text === sourceChild.text && targetChild.kind === sourceChild.kind) { - merge(targetChild, sourceChild); - continue outer; - } - } - target.childItems.push(sourceChild); - } - } - } - function createChildItem(node) { - switch (node.kind) { - case 129: - if (ts.isBindingPattern(node.name)) { - break; - } - if ((node.flags & 499) === 0) { - return undefined; - } - return createItem(node, getTextOfNode(node.name), ts.ScriptElementKind.memberVariableElement); - case 134: - case 133: - return createItem(node, getTextOfNode(node.name), ts.ScriptElementKind.memberFunctionElement); - case 136: - return createItem(node, getTextOfNode(node.name), ts.ScriptElementKind.memberGetAccessorElement); - case 137: - return createItem(node, getTextOfNode(node.name), ts.ScriptElementKind.memberSetAccessorElement); - case 140: - return createItem(node, "[]", ts.ScriptElementKind.indexSignatureElement); - case 223: - return createItem(node, getTextOfNode(node.name), ts.ScriptElementKind.memberVariableElement); - case 138: - return createItem(node, "()", ts.ScriptElementKind.callSignatureElement); - case 139: - return createItem(node, "new()", ts.ScriptElementKind.constructSignatureElement); - case 132: - case 131: - return createItem(node, getTextOfNode(node.name), ts.ScriptElementKind.memberVariableElement); - case 197: - return createItem(node, getTextOfNode(node.name), ts.ScriptElementKind.functionElement); - case 195: - case 152: - var variableDeclarationNode; - var name_17; - if (node.kind === 152) { - name_17 = node.name; - variableDeclarationNode = node; - while (variableDeclarationNode && variableDeclarationNode.kind !== 195) { - variableDeclarationNode = variableDeclarationNode.parent; - } - ts.Debug.assert(variableDeclarationNode !== undefined); - } - else { - ts.Debug.assert(!ts.isBindingPattern(node.name)); - variableDeclarationNode = node; - name_17 = node.name; - } - if (ts.isConst(variableDeclarationNode)) { - return createItem(node, getTextOfNode(name_17), ts.ScriptElementKind.constElement); - } - else if (ts.isLet(variableDeclarationNode)) { - return createItem(node, getTextOfNode(name_17), ts.ScriptElementKind.letElement); - } - else { - return createItem(node, getTextOfNode(name_17), ts.ScriptElementKind.variableElement); - } - case 135: - return createItem(node, "constructor", ts.ScriptElementKind.constructorImplementationElement); - case 214: - case 210: - case 205: - case 207: - case 208: - return createItem(node, getTextOfNode(node.name), ts.ScriptElementKind.alias); - } - return undefined; - function createItem(node, name, scriptElementKind) { - return getNavigationBarItem(name, scriptElementKind, ts.getNodeModifiers(node), [getNodeSpan(node)]); - } - } - function isEmpty(text) { - return !text || text.trim() === ""; - } - function getNavigationBarItem(text, kind, kindModifiers, spans, childItems, indent) { - if (childItems === void 0) { childItems = []; } - if (indent === void 0) { indent = 0; } - if (isEmpty(text)) { - return undefined; - } - return { - text: text, - kind: kind, - kindModifiers: kindModifiers, - spans: spans, - childItems: childItems, - indent: indent, - bolded: false, - grayed: false - }; - } - function createTopLevelItem(node) { - switch (node.kind) { - case 224: - return createSourceFileItem(node); - case 198: - return createClassItem(node); - case 201: - return createEnumItem(node); - case 199: - return createIterfaceItem(node); - case 202: - return createModuleItem(node); - case 197: - return createFunctionItem(node); - } - return undefined; - function getModuleName(moduleDeclaration) { - if (moduleDeclaration.name.kind === 8) { - return getTextOfNode(moduleDeclaration.name); - } - var result = []; - result.push(moduleDeclaration.name.text); - while (moduleDeclaration.body && moduleDeclaration.body.kind === 202) { - moduleDeclaration = moduleDeclaration.body; - result.push(moduleDeclaration.name.text); - } - return result.join("."); - } - function createModuleItem(node) { - var moduleName = getModuleName(node); - var childItems = getItemsWorker(getChildNodes(getInnermostModule(node).body.statements), createChildItem); - return getNavigationBarItem(moduleName, ts.ScriptElementKind.moduleElement, ts.getNodeModifiers(node), [getNodeSpan(node)], childItems, getIndent(node)); - } - function createFunctionItem(node) { - if ((node.name || node.flags & 256) && node.body && node.body.kind === 176) { - var childItems = getItemsWorker(sortNodes(node.body.statements), createChildItem); - return getNavigationBarItem((!node.name && node.flags & 256) ? "default" : node.name.text, ts.ScriptElementKind.functionElement, ts.getNodeModifiers(node), [getNodeSpan(node)], childItems, getIndent(node)); - } - return undefined; - } - function createSourceFileItem(node) { - var childItems = getItemsWorker(getChildNodes(node.statements), createChildItem); - if (childItems === undefined || childItems.length === 0) { - return undefined; - } - hasGlobalNode = true; - var rootName = ts.isExternalModule(node) - ? "\"" + ts.escapeString(ts.getBaseFileName(ts.removeFileExtension(ts.normalizePath(node.fileName)))) + "\"" - : ""; - return getNavigationBarItem(rootName, ts.ScriptElementKind.moduleElement, ts.ScriptElementKindModifier.none, [getNodeSpan(node)], childItems); - } - function createClassItem(node) { - var childItems; - if (node.members) { - var constructor = ts.forEach(node.members, function (member) { - return member.kind === 135 && member; - }); - var nodes = removeDynamicallyNamedProperties(node); - if (constructor) { - nodes.push.apply(nodes, ts.filter(constructor.parameters, function (p) { return !ts.isBindingPattern(p.name); })); - } - childItems = getItemsWorker(sortNodes(nodes), createChildItem); - } - var nodeName = !node.name && (node.flags & 256) ? "default" : node.name.text; - return getNavigationBarItem(nodeName, ts.ScriptElementKind.classElement, ts.getNodeModifiers(node), [getNodeSpan(node)], childItems, getIndent(node)); - } - function createEnumItem(node) { - var childItems = getItemsWorker(sortNodes(removeComputedProperties(node)), createChildItem); - return getNavigationBarItem(node.name.text, ts.ScriptElementKind.enumElement, ts.getNodeModifiers(node), [getNodeSpan(node)], childItems, getIndent(node)); - } - function createIterfaceItem(node) { - var childItems = getItemsWorker(sortNodes(removeDynamicallyNamedProperties(node)), createChildItem); - return getNavigationBarItem(node.name.text, ts.ScriptElementKind.interfaceElement, ts.getNodeModifiers(node), [getNodeSpan(node)], childItems, getIndent(node)); - } - } - function removeComputedProperties(node) { - return ts.filter(node.members, function (member) { return member.name === undefined || member.name.kind !== 127; }); - } - function removeDynamicallyNamedProperties(node) { - return ts.filter(node.members, function (member) { return !ts.hasDynamicName(member); }); - } - function getInnermostModule(node) { - while (node.body.kind === 202) { - node = node.body; - } - return node; - } - function getNodeSpan(node) { - return node.kind === 224 - ? ts.createTextSpanFromBounds(node.getFullStart(), node.getEnd()) - : ts.createTextSpanFromBounds(node.getStart(), node.getEnd()); - } - function getTextOfNode(node) { - return ts.getTextOfNodeFromSourceText(sourceFile.text, node); - } - } - NavigationBar.getNavigationBarItems = getNavigationBarItems; - })(NavigationBar = ts.NavigationBar || (ts.NavigationBar = {})); -})(ts || (ts = {})); -var ts; -(function (ts) { - (function (PatternMatchKind) { - PatternMatchKind[PatternMatchKind["exact"] = 0] = "exact"; - PatternMatchKind[PatternMatchKind["prefix"] = 1] = "prefix"; - PatternMatchKind[PatternMatchKind["substring"] = 2] = "substring"; - PatternMatchKind[PatternMatchKind["camelCase"] = 3] = "camelCase"; - })(ts.PatternMatchKind || (ts.PatternMatchKind = {})); - var PatternMatchKind = ts.PatternMatchKind; - function createPatternMatch(kind, punctuationStripped, isCaseSensitive, camelCaseWeight) { - return { - kind: kind, - punctuationStripped: punctuationStripped, - isCaseSensitive: isCaseSensitive, - camelCaseWeight: camelCaseWeight - }; - } - function createPatternMatcher(pattern) { - var stringToWordSpans = {}; - pattern = pattern.trim(); - var fullPatternSegment = createSegment(pattern); - var dotSeparatedSegments = pattern.split(".").map(function (p) { return createSegment(p.trim()); }); - var invalidPattern = dotSeparatedSegments.length === 0 || ts.forEach(dotSeparatedSegments, segmentIsInvalid); - return { - getMatches: getMatches, - getMatchesForLastSegmentOfPattern: getMatchesForLastSegmentOfPattern, - patternContainsDots: dotSeparatedSegments.length > 1 - }; - function skipMatch(candidate) { - return invalidPattern || !candidate; - } - function getMatchesForLastSegmentOfPattern(candidate) { - if (skipMatch(candidate)) { - return undefined; - } - return matchSegment(candidate, ts.lastOrUndefined(dotSeparatedSegments)); - } - function getMatches(candidateContainers, candidate) { - if (skipMatch(candidate)) { - return undefined; - } - var candidateMatch = matchSegment(candidate, ts.lastOrUndefined(dotSeparatedSegments)); - if (!candidateMatch) { - return undefined; - } - candidateContainers = candidateContainers || []; - if (dotSeparatedSegments.length - 1 > candidateContainers.length) { - return undefined; - } - var totalMatch = candidateMatch; - for (var i = dotSeparatedSegments.length - 2, j = candidateContainers.length - 1; i >= 0; i--, j--) { - var segment = dotSeparatedSegments[i]; - var containerName = candidateContainers[j]; - var containerMatch = matchSegment(containerName, segment); - if (!containerMatch) { - return undefined; - } - ts.addRange(totalMatch, containerMatch); - } - return totalMatch; - } - function getWordSpans(word) { - if (!ts.hasProperty(stringToWordSpans, word)) { - stringToWordSpans[word] = breakIntoWordSpans(word); - } - return stringToWordSpans[word]; - } - function matchTextChunk(candidate, chunk, punctuationStripped) { - var index = indexOfIgnoringCase(candidate, chunk.textLowerCase); - if (index === 0) { - if (chunk.text.length === candidate.length) { - return createPatternMatch(PatternMatchKind.exact, punctuationStripped, candidate === chunk.text); - } - else { - return createPatternMatch(PatternMatchKind.prefix, punctuationStripped, startsWith(candidate, chunk.text)); - } - } - var isLowercase = chunk.isLowerCase; - if (isLowercase) { - if (index > 0) { - var wordSpans = getWordSpans(candidate); - for (var _i = 0, _n = wordSpans.length; _i < _n; _i++) { - var span = wordSpans[_i]; - if (partStartsWith(candidate, span, chunk.text, true)) { - return createPatternMatch(PatternMatchKind.substring, punctuationStripped, partStartsWith(candidate, span, chunk.text, false)); - } - } - } - } - else { - if (candidate.indexOf(chunk.text) > 0) { - return createPatternMatch(PatternMatchKind.substring, punctuationStripped, true); - } - } - if (!isLowercase) { - if (chunk.characterSpans.length > 0) { - var candidateParts = getWordSpans(candidate); - var camelCaseWeight = tryCamelCaseMatch(candidate, candidateParts, chunk, false); - if (camelCaseWeight !== undefined) { - return createPatternMatch(PatternMatchKind.camelCase, punctuationStripped, true, camelCaseWeight); - } - camelCaseWeight = tryCamelCaseMatch(candidate, candidateParts, chunk, true); - if (camelCaseWeight !== undefined) { - return createPatternMatch(PatternMatchKind.camelCase, punctuationStripped, false, camelCaseWeight); - } - } - } - if (isLowercase) { - if (chunk.text.length < candidate.length) { - if (index > 0 && isUpperCaseLetter(candidate.charCodeAt(index))) { - return createPatternMatch(PatternMatchKind.substring, punctuationStripped, false); - } - } - } - return undefined; - } - function containsSpaceOrAsterisk(text) { - for (var i = 0; i < text.length; i++) { - var ch = text.charCodeAt(i); - if (ch === 32 || ch === 42) { - return true; - } - } - return false; - } - function matchSegment(candidate, segment) { - if (!containsSpaceOrAsterisk(segment.totalTextChunk.text)) { - var match = matchTextChunk(candidate, segment.totalTextChunk, false); - if (match) { - return [match]; - } - } - var subWordTextChunks = segment.subWordTextChunks; - var matches = undefined; - for (var _i = 0, _n = subWordTextChunks.length; _i < _n; _i++) { - var subWordTextChunk = subWordTextChunks[_i]; - var result = matchTextChunk(candidate, subWordTextChunk, true); - if (!result) { - return undefined; - } - matches = matches || []; - matches.push(result); - } - return matches; - } - function partStartsWith(candidate, candidateSpan, pattern, ignoreCase, patternSpan) { - var patternPartStart = patternSpan ? patternSpan.start : 0; - var patternPartLength = patternSpan ? patternSpan.length : pattern.length; - if (patternPartLength > candidateSpan.length) { - return false; - } - if (ignoreCase) { - for (var i = 0; i < patternPartLength; i++) { - var ch1 = pattern.charCodeAt(patternPartStart + i); - var ch2 = candidate.charCodeAt(candidateSpan.start + i); - if (toLowerCase(ch1) !== toLowerCase(ch2)) { - return false; - } - } - } - else { - for (var i = 0; i < patternPartLength; i++) { - var ch1 = pattern.charCodeAt(patternPartStart + i); - var ch2 = candidate.charCodeAt(candidateSpan.start + i); - if (ch1 !== ch2) { - return false; - } - } - } - return true; - } - function tryCamelCaseMatch(candidate, candidateParts, chunk, ignoreCase) { - var chunkCharacterSpans = chunk.characterSpans; - var currentCandidate = 0; - var currentChunkSpan = 0; - var firstMatch = undefined; - var contiguous = undefined; - while (true) { - if (currentChunkSpan === chunkCharacterSpans.length) { - var weight = 0; - if (contiguous) { - weight += 1; - } - if (firstMatch === 0) { - weight += 2; - } - return weight; - } - else if (currentCandidate === candidateParts.length) { - return undefined; - } - var candidatePart = candidateParts[currentCandidate]; - var gotOneMatchThisCandidate = false; - for (; currentChunkSpan < chunkCharacterSpans.length; currentChunkSpan++) { - var chunkCharacterSpan = chunkCharacterSpans[currentChunkSpan]; - if (gotOneMatchThisCandidate) { - if (!isUpperCaseLetter(chunk.text.charCodeAt(chunkCharacterSpans[currentChunkSpan - 1].start)) || - !isUpperCaseLetter(chunk.text.charCodeAt(chunkCharacterSpans[currentChunkSpan].start))) { - break; - } - } - if (!partStartsWith(candidate, candidatePart, chunk.text, ignoreCase, chunkCharacterSpan)) { - break; - } - gotOneMatchThisCandidate = true; - firstMatch = firstMatch === undefined ? currentCandidate : firstMatch; - contiguous = contiguous === undefined ? true : contiguous; - candidatePart = ts.createTextSpan(candidatePart.start + chunkCharacterSpan.length, candidatePart.length - chunkCharacterSpan.length); - } - if (!gotOneMatchThisCandidate && contiguous !== undefined) { - contiguous = false; - } - currentCandidate++; - } - } - } - ts.createPatternMatcher = createPatternMatcher; - function patternMatchCompareTo(match1, match2) { - return compareType(match1, match2) || - compareCamelCase(match1, match2) || - compareCase(match1, match2) || - comparePunctuation(match1, match2); - } - function comparePunctuation(result1, result2) { - if (result1.punctuationStripped !== result2.punctuationStripped) { - return result1.punctuationStripped ? 1 : -1; - } - return 0; - } - function compareCase(result1, result2) { - if (result1.isCaseSensitive !== result2.isCaseSensitive) { - return result1.isCaseSensitive ? -1 : 1; - } - return 0; - } - function compareType(result1, result2) { - return result1.kind - result2.kind; - } - function compareCamelCase(result1, result2) { - if (result1.kind === PatternMatchKind.camelCase && result2.kind === PatternMatchKind.camelCase) { - return result2.camelCaseWeight - result1.camelCaseWeight; - } - return 0; - } - function createSegment(text) { - return { - totalTextChunk: createTextChunk(text), - subWordTextChunks: breakPatternIntoTextChunks(text) - }; - } - function segmentIsInvalid(segment) { - return segment.subWordTextChunks.length === 0; - } - function isUpperCaseLetter(ch) { - if (ch >= 65 && ch <= 90) { - return true; - } - if (ch < 127 || !ts.isUnicodeIdentifierStart(ch, 2)) { - return false; - } - var str = String.fromCharCode(ch); - return str === str.toUpperCase(); - } - function isLowerCaseLetter(ch) { - if (ch >= 97 && ch <= 122) { - return true; - } - if (ch < 127 || !ts.isUnicodeIdentifierStart(ch, 2)) { - return false; - } - var str = String.fromCharCode(ch); - return str === str.toLowerCase(); - } - function containsUpperCaseLetter(string) { - for (var i = 0, n = string.length; i < n; i++) { - if (isUpperCaseLetter(string.charCodeAt(i))) { - return true; - } - } - return false; - } - function startsWith(string, search) { - for (var i = 0, n = search.length; i < n; i++) { - if (string.charCodeAt(i) !== search.charCodeAt(i)) { - return false; - } - } - return true; - } - function indexOfIgnoringCase(string, value) { - for (var i = 0, n = string.length - value.length; i <= n; i++) { - if (startsWithIgnoringCase(string, value, i)) { - return i; - } - } - return -1; - } - function startsWithIgnoringCase(string, value, start) { - for (var i = 0, n = value.length; i < n; i++) { - var ch1 = toLowerCase(string.charCodeAt(i + start)); - var ch2 = value.charCodeAt(i); - if (ch1 !== ch2) { - return false; - } - } - return true; - } - function toLowerCase(ch) { - if (ch >= 65 && ch <= 90) { - return 97 + (ch - 65); - } - if (ch < 127) { - return ch; - } - return String.fromCharCode(ch).toLowerCase().charCodeAt(0); - } - function isDigit(ch) { - return ch >= 48 && ch <= 57; - } - function isWordChar(ch) { - return isUpperCaseLetter(ch) || isLowerCaseLetter(ch) || isDigit(ch) || ch === 95 || ch === 36; - } - function breakPatternIntoTextChunks(pattern) { - var result = []; - var wordStart = 0; - var wordLength = 0; - for (var i = 0; i < pattern.length; i++) { - var ch = pattern.charCodeAt(i); - if (isWordChar(ch)) { - if (wordLength++ === 0) { - wordStart = i; - } - } - else { - if (wordLength > 0) { - result.push(createTextChunk(pattern.substr(wordStart, wordLength))); - wordLength = 0; - } - } - } - if (wordLength > 0) { - result.push(createTextChunk(pattern.substr(wordStart, wordLength))); - } - return result; - } - function createTextChunk(text) { - var textLowerCase = text.toLowerCase(); - return { - text: text, - textLowerCase: textLowerCase, - isLowerCase: text === textLowerCase, - characterSpans: breakIntoCharacterSpans(text) - }; - } - function breakIntoCharacterSpans(identifier) { - return breakIntoSpans(identifier, false); - } - ts.breakIntoCharacterSpans = breakIntoCharacterSpans; - function breakIntoWordSpans(identifier) { - return breakIntoSpans(identifier, true); - } - ts.breakIntoWordSpans = breakIntoWordSpans; - function breakIntoSpans(identifier, word) { - var result = []; - var wordStart = 0; - for (var i = 1, n = identifier.length; i < n; i++) { - var lastIsDigit = isDigit(identifier.charCodeAt(i - 1)); - var currentIsDigit = isDigit(identifier.charCodeAt(i)); - var hasTransitionFromLowerToUpper = transitionFromLowerToUpper(identifier, word, i); - var hasTransitionFromUpperToLower = transitionFromUpperToLower(identifier, word, i, wordStart); - if (charIsPunctuation(identifier.charCodeAt(i - 1)) || - charIsPunctuation(identifier.charCodeAt(i)) || - lastIsDigit != currentIsDigit || - hasTransitionFromLowerToUpper || - hasTransitionFromUpperToLower) { - if (!isAllPunctuation(identifier, wordStart, i)) { - result.push(ts.createTextSpan(wordStart, i - wordStart)); - } - wordStart = i; - } - } - if (!isAllPunctuation(identifier, wordStart, identifier.length)) { - result.push(ts.createTextSpan(wordStart, identifier.length - wordStart)); - } - return result; - } - function charIsPunctuation(ch) { - switch (ch) { - case 33: - case 34: - case 35: - case 37: - case 38: - case 39: - case 40: - case 41: - case 42: - case 44: - case 45: - case 46: - case 47: - case 58: - case 59: - case 63: - case 64: - case 91: - case 92: - case 93: - case 95: - case 123: - case 125: - return true; - } - return false; - } - function isAllPunctuation(identifier, start, end) { - for (var i = start; i < end; i++) { - var ch = identifier.charCodeAt(i); - if (!charIsPunctuation(ch) || ch === 95 || ch === 36) { - return false; - } - } - return true; - } - function transitionFromUpperToLower(identifier, word, index, wordStart) { - if (word) { - if (index != wordStart && - index + 1 < identifier.length) { - var currentIsUpper = isUpperCaseLetter(identifier.charCodeAt(index)); - var nextIsLower = isLowerCaseLetter(identifier.charCodeAt(index + 1)); - if (currentIsUpper && nextIsLower) { - for (var i = wordStart; i < index; i++) { - if (!isUpperCaseLetter(identifier.charCodeAt(i))) { - return false; - } - } - return true; - } - } - } - return false; - } - function transitionFromLowerToUpper(identifier, word, index) { - var lastIsUpper = isUpperCaseLetter(identifier.charCodeAt(index - 1)); - var currentIsUpper = isUpperCaseLetter(identifier.charCodeAt(index)); - var transition = word - ? (currentIsUpper && !lastIsUpper) - : currentIsUpper; - return transition; - } -})(ts || (ts = {})); -/// -var ts; -(function (ts) { - var SignatureHelp; - (function (SignatureHelp) { - var emptyArray = []; - var ArgumentListKind; - (function (ArgumentListKind) { - ArgumentListKind[ArgumentListKind["TypeArguments"] = 0] = "TypeArguments"; - ArgumentListKind[ArgumentListKind["CallArguments"] = 1] = "CallArguments"; - ArgumentListKind[ArgumentListKind["TaggedTemplateArguments"] = 2] = "TaggedTemplateArguments"; - })(ArgumentListKind || (ArgumentListKind = {})); - function getSignatureHelpItems(sourceFile, position, typeInfoResolver, cancellationToken) { - var startingToken = ts.findTokenOnLeftOfPosition(sourceFile, position); - if (!startingToken) { - return undefined; - } - var argumentInfo = getContainingArgumentInfo(startingToken); - cancellationToken.throwIfCancellationRequested(); - if (!argumentInfo) { - return undefined; - } - var call = argumentInfo.invocation; - var candidates = []; - var resolvedSignature = typeInfoResolver.getResolvedSignature(call, candidates); - cancellationToken.throwIfCancellationRequested(); - if (!candidates.length) { - return undefined; - } - return createSignatureHelpItems(candidates, resolvedSignature, argumentInfo); - function getImmediatelyContainingArgumentInfo(node) { - if (node.parent.kind === 157 || node.parent.kind === 158) { - var callExpression = node.parent; - if (node.kind === 24 || - node.kind === 16) { - var list = getChildListThatStartsWithOpenerToken(callExpression, node, sourceFile); - var isTypeArgList = callExpression.typeArguments && callExpression.typeArguments.pos === list.pos; - ts.Debug.assert(list !== undefined); - return { - kind: isTypeArgList ? 0 : 1, - invocation: callExpression, - argumentsSpan: getApplicableSpanForArguments(list), - argumentIndex: 0, - argumentCount: getArgumentCount(list) - }; - } - var listItemInfo = ts.findListItemInfo(node); - if (listItemInfo) { - var list = listItemInfo.list; - var isTypeArgList = callExpression.typeArguments && callExpression.typeArguments.pos === list.pos; - var argumentIndex = getArgumentIndex(list, node); - var argumentCount = getArgumentCount(list); - ts.Debug.assert(argumentIndex === 0 || argumentIndex < argumentCount, "argumentCount < argumentIndex, " + argumentCount + " < " + argumentIndex); - return { - kind: isTypeArgList ? 0 : 1, - invocation: callExpression, - argumentsSpan: getApplicableSpanForArguments(list), - argumentIndex: argumentIndex, - argumentCount: argumentCount - }; - } - } - else if (node.kind === 10 && node.parent.kind === 159) { - if (ts.isInsideTemplateLiteral(node, position)) { - return getArgumentListInfoForTemplate(node.parent, 0); - } - } - else if (node.kind === 11 && node.parent.parent.kind === 159) { - var templateExpression = node.parent; - var tagExpression = templateExpression.parent; - ts.Debug.assert(templateExpression.kind === 171); - var argumentIndex = ts.isInsideTemplateLiteral(node, position) ? 0 : 1; - return getArgumentListInfoForTemplate(tagExpression, argumentIndex); - } - else if (node.parent.kind === 175 && node.parent.parent.parent.kind === 159) { - var templateSpan = node.parent; - var templateExpression = templateSpan.parent; - var tagExpression = templateExpression.parent; - ts.Debug.assert(templateExpression.kind === 171); - if (node.kind === 13 && !ts.isInsideTemplateLiteral(node, position)) { - return undefined; - } - var spanIndex = templateExpression.templateSpans.indexOf(templateSpan); - var argumentIndex = getArgumentIndexForTemplatePiece(spanIndex, node); - return getArgumentListInfoForTemplate(tagExpression, argumentIndex); - } - return undefined; - } - function getArgumentIndex(argumentsList, node) { - var argumentIndex = 0; - var listChildren = argumentsList.getChildren(); - for (var _i = 0, _n = listChildren.length; _i < _n; _i++) { - var child = listChildren[_i]; - if (child === node) { - break; - } - if (child.kind !== 23) { - argumentIndex++; - } - } - return argumentIndex; - } - function getArgumentCount(argumentsList) { - var listChildren = argumentsList.getChildren(); - var argumentCount = ts.countWhere(listChildren, function (arg) { return arg.kind !== 23; }); - if (listChildren.length > 0 && ts.lastOrUndefined(listChildren).kind === 23) { - argumentCount++; - } - return argumentCount; - } - function getArgumentIndexForTemplatePiece(spanIndex, node) { - ts.Debug.assert(position >= node.getStart(), "Assumed 'position' could not occur before node."); - if (ts.isTemplateLiteralKind(node.kind)) { - if (ts.isInsideTemplateLiteral(node, position)) { - return 0; - } - return spanIndex + 2; - } - return spanIndex + 1; - } - function getArgumentListInfoForTemplate(tagExpression, argumentIndex) { - var argumentCount = tagExpression.template.kind === 10 - ? 1 - : tagExpression.template.templateSpans.length + 1; - ts.Debug.assert(argumentIndex === 0 || argumentIndex < argumentCount, "argumentCount < argumentIndex, " + argumentCount + " < " + argumentIndex); - return { - kind: 2, - invocation: tagExpression, - argumentsSpan: getApplicableSpanForTaggedTemplate(tagExpression), - argumentIndex: argumentIndex, - argumentCount: argumentCount - }; - } - function getApplicableSpanForArguments(argumentsList) { - var applicableSpanStart = argumentsList.getFullStart(); - var applicableSpanEnd = ts.skipTrivia(sourceFile.text, argumentsList.getEnd(), false); - return ts.createTextSpan(applicableSpanStart, applicableSpanEnd - applicableSpanStart); - } - function getApplicableSpanForTaggedTemplate(taggedTemplate) { - var template = taggedTemplate.template; - var applicableSpanStart = template.getStart(); - var applicableSpanEnd = template.getEnd(); - if (template.kind === 171) { - var lastSpan = ts.lastOrUndefined(template.templateSpans); - if (lastSpan.literal.getFullWidth() === 0) { - applicableSpanEnd = ts.skipTrivia(sourceFile.text, applicableSpanEnd, false); - } - } - return ts.createTextSpan(applicableSpanStart, applicableSpanEnd - applicableSpanStart); - } - function getContainingArgumentInfo(node) { - for (var n = node; n.kind !== 224; n = n.parent) { - if (ts.isFunctionBlock(n)) { - return undefined; - } - if (n.pos < n.parent.pos || n.end > n.parent.end) { - ts.Debug.fail("Node of kind " + n.kind + " is not a subspan of its parent of kind " + n.parent.kind); - } - var argumentInfo_1 = getImmediatelyContainingArgumentInfo(n); - if (argumentInfo_1) { - return argumentInfo_1; - } - } - return undefined; - } - function getChildListThatStartsWithOpenerToken(parent, openerToken, sourceFile) { - var children = parent.getChildren(sourceFile); - var indexOfOpenerToken = children.indexOf(openerToken); - ts.Debug.assert(indexOfOpenerToken >= 0 && children.length > indexOfOpenerToken + 1); - return children[indexOfOpenerToken + 1]; - } - function selectBestInvalidOverloadIndex(candidates, argumentCount) { - var maxParamsSignatureIndex = -1; - var maxParams = -1; - for (var i = 0; i < candidates.length; i++) { - var candidate = candidates[i]; - if (candidate.hasRestParameter || candidate.parameters.length >= argumentCount) { - return i; - } - if (candidate.parameters.length > maxParams) { - maxParams = candidate.parameters.length; - maxParamsSignatureIndex = i; - } - } - return maxParamsSignatureIndex; - } - function createSignatureHelpItems(candidates, bestSignature, argumentListInfo) { - var applicableSpan = argumentListInfo.argumentsSpan; - var isTypeParameterList = argumentListInfo.kind === 0; - var invocation = argumentListInfo.invocation; - var callTarget = ts.getInvokedExpression(invocation); - var callTargetSymbol = typeInfoResolver.getSymbolAtLocation(callTarget); - var callTargetDisplayParts = callTargetSymbol && ts.symbolToDisplayParts(typeInfoResolver, callTargetSymbol, undefined, undefined); - var items = ts.map(candidates, function (candidateSignature) { - var signatureHelpParameters; - var prefixDisplayParts = []; - var suffixDisplayParts = []; - if (callTargetDisplayParts) { - prefixDisplayParts.push.apply(prefixDisplayParts, callTargetDisplayParts); - } - if (isTypeParameterList) { - prefixDisplayParts.push(ts.punctuationPart(24)); - var typeParameters = candidateSignature.typeParameters; - signatureHelpParameters = typeParameters && typeParameters.length > 0 ? ts.map(typeParameters, createSignatureHelpParameterForTypeParameter) : emptyArray; - suffixDisplayParts.push(ts.punctuationPart(25)); - var parameterParts = ts.mapToDisplayParts(function (writer) { - return typeInfoResolver.getSymbolDisplayBuilder().buildDisplayForParametersAndDelimiters(candidateSignature.parameters, writer, invocation); - }); - suffixDisplayParts.push.apply(suffixDisplayParts, parameterParts); - } - else { - var typeParameterParts = ts.mapToDisplayParts(function (writer) { - return typeInfoResolver.getSymbolDisplayBuilder().buildDisplayForTypeParametersAndDelimiters(candidateSignature.typeParameters, writer, invocation); - }); - prefixDisplayParts.push.apply(prefixDisplayParts, typeParameterParts); - prefixDisplayParts.push(ts.punctuationPart(16)); - var parameters = candidateSignature.parameters; - signatureHelpParameters = parameters.length > 0 ? ts.map(parameters, createSignatureHelpParameterForParameter) : emptyArray; - suffixDisplayParts.push(ts.punctuationPart(17)); - } - var returnTypeParts = ts.mapToDisplayParts(function (writer) { - return typeInfoResolver.getSymbolDisplayBuilder().buildReturnTypeDisplay(candidateSignature, writer, invocation); - }); - suffixDisplayParts.push.apply(suffixDisplayParts, returnTypeParts); - return { - isVariadic: candidateSignature.hasRestParameter, - prefixDisplayParts: prefixDisplayParts, - suffixDisplayParts: suffixDisplayParts, - separatorDisplayParts: [ts.punctuationPart(23), ts.spacePart()], - parameters: signatureHelpParameters, - documentation: candidateSignature.getDocumentationComment() - }; - }); - var argumentIndex = argumentListInfo.argumentIndex; - var argumentCount = argumentListInfo.argumentCount; - var selectedItemIndex = candidates.indexOf(bestSignature); - if (selectedItemIndex < 0) { - selectedItemIndex = selectBestInvalidOverloadIndex(candidates, argumentCount); - } - ts.Debug.assert(argumentIndex === 0 || argumentIndex < argumentCount, "argumentCount < argumentIndex, " + argumentCount + " < " + argumentIndex); - return { - items: items, - applicableSpan: applicableSpan, - selectedItemIndex: selectedItemIndex, - argumentIndex: argumentIndex, - argumentCount: argumentCount - }; - function createSignatureHelpParameterForParameter(parameter) { - var displayParts = ts.mapToDisplayParts(function (writer) { - return typeInfoResolver.getSymbolDisplayBuilder().buildParameterDisplay(parameter, writer, invocation); - }); - var isOptional = ts.hasQuestionToken(parameter.valueDeclaration); - return { - name: parameter.name, - documentation: parameter.getDocumentationComment(), - displayParts: displayParts, - isOptional: isOptional - }; - } - function createSignatureHelpParameterForTypeParameter(typeParameter) { - var displayParts = ts.mapToDisplayParts(function (writer) { - return typeInfoResolver.getSymbolDisplayBuilder().buildTypeParameterDisplay(typeParameter, writer, invocation); - }); - return { - name: typeParameter.symbol.name, - documentation: emptyArray, - displayParts: displayParts, - isOptional: false - }; - } - } - } - SignatureHelp.getSignatureHelpItems = getSignatureHelpItems; - })(SignatureHelp = ts.SignatureHelp || (ts.SignatureHelp = {})); -})(ts || (ts = {})); -var ts; -(function (ts) { - function getEndLinePosition(line, sourceFile) { - ts.Debug.assert(line >= 0); - var lineStarts = sourceFile.getLineStarts(); - var lineIndex = line; - if (lineIndex + 1 === lineStarts.length) { - return sourceFile.text.length - 1; - } - else { - var start = lineStarts[lineIndex]; - var pos = lineStarts[lineIndex + 1] - 1; - ts.Debug.assert(ts.isLineBreak(sourceFile.text.charCodeAt(pos))); - while (start <= pos && ts.isLineBreak(sourceFile.text.charCodeAt(pos))) { - pos--; - } - return pos; - } - } - ts.getEndLinePosition = getEndLinePosition; - function getLineStartPositionForPosition(position, sourceFile) { - var lineStarts = sourceFile.getLineStarts(); - var line = sourceFile.getLineAndCharacterOfPosition(position).line; - return lineStarts[line]; - } - ts.getLineStartPositionForPosition = getLineStartPositionForPosition; - function rangeContainsRange(r1, r2) { - return startEndContainsRange(r1.pos, r1.end, r2); - } - ts.rangeContainsRange = rangeContainsRange; - function startEndContainsRange(start, end, range) { - return start <= range.pos && end >= range.end; - } - ts.startEndContainsRange = startEndContainsRange; - function rangeContainsStartEnd(range, start, end) { - return range.pos <= start && range.end >= end; - } - ts.rangeContainsStartEnd = rangeContainsStartEnd; - function rangeOverlapsWithStartEnd(r1, start, end) { - return startEndOverlapsWithStartEnd(r1.pos, r1.end, start, end); - } - ts.rangeOverlapsWithStartEnd = rangeOverlapsWithStartEnd; - function startEndOverlapsWithStartEnd(start1, end1, start2, end2) { - var start = Math.max(start1, start2); - var end = Math.min(end1, end2); - return start < end; - } - ts.startEndOverlapsWithStartEnd = startEndOverlapsWithStartEnd; - function positionBelongsToNode(candidate, position, sourceFile) { - return candidate.end > position || !isCompletedNode(candidate, sourceFile); - } - ts.positionBelongsToNode = positionBelongsToNode; - function isCompletedNode(n, sourceFile) { - if (ts.nodeIsMissing(n)) { - return false; - } - switch (n.kind) { - case 198: - case 199: - case 201: - case 154: - case 150: - case 145: - case 176: - case 203: - case 204: - return nodeEndsWith(n, 15, sourceFile); - case 220: - return isCompletedNode(n.block, sourceFile); - case 158: - if (!n.arguments) { - return true; - } - case 157: - case 161: - case 149: - return nodeEndsWith(n, 17, sourceFile); - case 142: - case 143: - return isCompletedNode(n.type, sourceFile); - case 135: - case 136: - case 137: - case 197: - case 162: - case 134: - case 133: - case 139: - case 138: - case 163: - if (n.body) { - return isCompletedNode(n.body, sourceFile); - } - if (n.type) { - return isCompletedNode(n.type, sourceFile); - } - return hasChildOfKind(n, 17, sourceFile); - case 202: - return n.body && isCompletedNode(n.body, sourceFile); - case 180: - if (n.elseStatement) { - return isCompletedNode(n.elseStatement, sourceFile); - } - return isCompletedNode(n.thenStatement, sourceFile); - case 179: - return isCompletedNode(n.expression, sourceFile); - case 153: - case 151: - case 156: - case 127: - case 147: - return nodeEndsWith(n, 19, sourceFile); - case 140: - if (n.type) { - return isCompletedNode(n.type, sourceFile); - } - return hasChildOfKind(n, 19, sourceFile); - case 217: - case 218: - return false; - case 183: - case 184: - case 185: - case 182: - return isCompletedNode(n.statement, sourceFile); - case 181: - var hasWhileKeyword = findChildOfKind(n, 100, sourceFile); - if (hasWhileKeyword) { - return nodeEndsWith(n, 17, sourceFile); - } - return isCompletedNode(n.statement, sourceFile); - case 144: - return isCompletedNode(n.exprName, sourceFile); - case 165: - case 164: - case 166: - case 172: - case 173: - var unaryWordExpression = n; - return isCompletedNode(unaryWordExpression.expression, sourceFile); - case 159: - return isCompletedNode(n.template, sourceFile); - case 171: - var lastSpan = ts.lastOrUndefined(n.templateSpans); - return isCompletedNode(lastSpan, sourceFile); - case 175: - return ts.nodeIsPresent(n.literal); - case 167: - return isCompletedNode(n.operand, sourceFile); - case 169: - return isCompletedNode(n.right, sourceFile); - case 170: - return isCompletedNode(n.whenFalse, sourceFile); - default: - return true; - } - } - ts.isCompletedNode = isCompletedNode; - function nodeEndsWith(n, expectedLastToken, sourceFile) { - var children = n.getChildren(sourceFile); - if (children.length) { - var last = children[children.length - 1]; - if (last.kind === expectedLastToken) { - return true; - } - else if (last.kind === 22 && children.length !== 1) { - return children[children.length - 2].kind === expectedLastToken; - } - } - return false; - } - function findListItemInfo(node) { - var list = findContainingList(node); - if (!list) { - return undefined; - } - var children = list.getChildren(); - var listItemIndex = ts.indexOf(children, node); - return { - listItemIndex: listItemIndex, - list: list - }; - } - ts.findListItemInfo = findListItemInfo; - function hasChildOfKind(n, kind, sourceFile) { - return !!findChildOfKind(n, kind, sourceFile); - } - ts.hasChildOfKind = hasChildOfKind; - function findChildOfKind(n, kind, sourceFile) { - return ts.forEach(n.getChildren(sourceFile), function (c) { return c.kind === kind && c; }); - } - ts.findChildOfKind = findChildOfKind; - function findContainingList(node) { - var syntaxList = ts.forEach(node.parent.getChildren(), function (c) { - if (c.kind === 225 && c.pos <= node.pos && c.end >= node.end) { - return c; - } - }); - ts.Debug.assert(!syntaxList || ts.contains(syntaxList.getChildren(), node)); - return syntaxList; - } - ts.findContainingList = findContainingList; - function getTouchingWord(sourceFile, position) { - return getTouchingToken(sourceFile, position, function (n) { return isWord(n.kind); }); - } - ts.getTouchingWord = getTouchingWord; - function getTouchingPropertyName(sourceFile, position) { - return getTouchingToken(sourceFile, position, function (n) { return isPropertyName(n.kind); }); - } - ts.getTouchingPropertyName = getTouchingPropertyName; - function getTouchingToken(sourceFile, position, includeItemAtEndPosition) { - return getTokenAtPositionWorker(sourceFile, position, false, includeItemAtEndPosition); - } - ts.getTouchingToken = getTouchingToken; - function getTokenAtPosition(sourceFile, position) { - return getTokenAtPositionWorker(sourceFile, position, true, undefined); - } - ts.getTokenAtPosition = getTokenAtPosition; - function getTokenAtPositionWorker(sourceFile, position, allowPositionInLeadingTrivia, includeItemAtEndPosition) { - var current = sourceFile; - outer: while (true) { - if (isToken(current)) { - return current; - } - for (var i = 0, n = current.getChildCount(sourceFile); i < n; i++) { - var child = current.getChildAt(i); - var start = allowPositionInLeadingTrivia ? child.getFullStart() : child.getStart(sourceFile); - if (start <= position) { - var end = child.getEnd(); - if (position < end || (position === end && child.kind === 1)) { - current = child; - continue outer; - } - else if (includeItemAtEndPosition && end === position) { - var previousToken = findPrecedingToken(position, sourceFile, child); - if (previousToken && includeItemAtEndPosition(previousToken)) { - return previousToken; - } - } - } - } - return current; - } - } - function findTokenOnLeftOfPosition(file, position) { - var tokenAtPosition = getTokenAtPosition(file, position); - if (isToken(tokenAtPosition) && position > tokenAtPosition.getStart(file) && position < tokenAtPosition.getEnd()) { - return tokenAtPosition; - } - return findPrecedingToken(position, file); - } - ts.findTokenOnLeftOfPosition = findTokenOnLeftOfPosition; - function findNextToken(previousToken, parent) { - return find(parent); - function find(n) { - if (isToken(n) && n.pos === previousToken.end) { - return n; - } - var children = n.getChildren(); - for (var _i = 0, _n = children.length; _i < _n; _i++) { - var child = children[_i]; - var shouldDiveInChildNode = (child.pos <= previousToken.pos && child.end > previousToken.end) || - (child.pos === previousToken.end); - if (shouldDiveInChildNode && nodeHasTokens(child)) { - return find(child); - } - } - return undefined; - } - } - ts.findNextToken = findNextToken; - function findPrecedingToken(position, sourceFile, startNode) { - return find(startNode || sourceFile); - function findRightmostToken(n) { - if (isToken(n)) { - return n; - } - var children = n.getChildren(); - var candidate = findRightmostChildNodeWithTokens(children, children.length); - return candidate && findRightmostToken(candidate); - } - function find(n) { - if (isToken(n)) { - return n; - } - var children = n.getChildren(); - for (var i = 0, len = children.length; i < len; i++) { - var child = children[i]; - if (nodeHasTokens(child)) { - if (position <= child.end) { - if (child.getStart(sourceFile) >= position) { - var candidate = findRightmostChildNodeWithTokens(children, i); - return candidate && findRightmostToken(candidate); - } - else { - return find(child); - } - } - } - } - ts.Debug.assert(startNode !== undefined || n.kind === 224); - if (children.length) { - var candidate = findRightmostChildNodeWithTokens(children, children.length); - return candidate && findRightmostToken(candidate); - } - } - function findRightmostChildNodeWithTokens(children, exclusiveStartPosition) { - for (var i = exclusiveStartPosition - 1; i >= 0; --i) { - if (nodeHasTokens(children[i])) { - return children[i]; - } - } - } - } - ts.findPrecedingToken = findPrecedingToken; - function nodeHasTokens(n) { - return n.getWidth() !== 0; - } - function getNodeModifiers(node) { - var flags = ts.getCombinedNodeFlags(node); - var result = []; - if (flags & 32) - result.push(ts.ScriptElementKindModifier.privateMemberModifier); - if (flags & 64) - result.push(ts.ScriptElementKindModifier.protectedMemberModifier); - if (flags & 16) - result.push(ts.ScriptElementKindModifier.publicMemberModifier); - if (flags & 128) - result.push(ts.ScriptElementKindModifier.staticModifier); - if (flags & 1) - result.push(ts.ScriptElementKindModifier.exportedModifier); - if (ts.isInAmbientContext(node)) - result.push(ts.ScriptElementKindModifier.ambientModifier); - return result.length > 0 ? result.join(',') : ts.ScriptElementKindModifier.none; - } - ts.getNodeModifiers = getNodeModifiers; - function getTypeArgumentOrTypeParameterList(node) { - if (node.kind === 141 || node.kind === 157) { - return node.typeArguments; - } - if (ts.isFunctionLike(node) || node.kind === 198 || node.kind === 199) { - return node.typeParameters; - } - return undefined; - } - ts.getTypeArgumentOrTypeParameterList = getTypeArgumentOrTypeParameterList; - function isToken(n) { - return n.kind >= 0 && n.kind <= 125; - } - ts.isToken = isToken; - function isWord(kind) { - return kind === 65 || ts.isKeyword(kind); - } - ts.isWord = isWord; - function isPropertyName(kind) { - return kind === 8 || kind === 7 || isWord(kind); - } - function isComment(kind) { - return kind === 2 || kind === 3; - } - ts.isComment = isComment; - function isPunctuation(kind) { - return 14 <= kind && kind <= 64; - } - ts.isPunctuation = isPunctuation; - function isInsideTemplateLiteral(node, position) { - return ts.isTemplateLiteralKind(node.kind) - && (node.getStart() < position && position < node.getEnd()) || (!!node.isUnterminated && position === node.getEnd()); - } - ts.isInsideTemplateLiteral = isInsideTemplateLiteral; - function isAccessibilityModifier(kind) { - switch (kind) { - case 109: - case 107: - case 108: - return true; - } - return false; - } - ts.isAccessibilityModifier = isAccessibilityModifier; - function compareDataObjects(dst, src) { - for (var e in dst) { - if (typeof dst[e] === "object") { - if (!compareDataObjects(dst[e], src[e])) { - return false; - } - } - else if (typeof dst[e] !== "function") { - if (dst[e] !== src[e]) { - return false; - } - } - } - return true; - } - ts.compareDataObjects = compareDataObjects; -})(ts || (ts = {})); -var ts; -(function (ts) { - function isFirstDeclarationOfSymbolParameter(symbol) { - return symbol.declarations && symbol.declarations.length > 0 && symbol.declarations[0].kind === 129; - } - ts.isFirstDeclarationOfSymbolParameter = isFirstDeclarationOfSymbolParameter; - var displayPartWriter = getDisplayPartWriter(); - function getDisplayPartWriter() { - var displayParts; - var lineStart; - var indent; - resetWriter(); - return { - displayParts: function () { return displayParts; }, - writeKeyword: function (text) { return writeKind(text, ts.SymbolDisplayPartKind.keyword); }, - writeOperator: function (text) { return writeKind(text, ts.SymbolDisplayPartKind.operator); }, - writePunctuation: function (text) { return writeKind(text, ts.SymbolDisplayPartKind.punctuation); }, - writeSpace: function (text) { return writeKind(text, ts.SymbolDisplayPartKind.space); }, - writeStringLiteral: function (text) { return writeKind(text, ts.SymbolDisplayPartKind.stringLiteral); }, - writeParameter: function (text) { return writeKind(text, ts.SymbolDisplayPartKind.parameterName); }, - writeSymbol: writeSymbol, - writeLine: writeLine, - increaseIndent: function () { indent++; }, - decreaseIndent: function () { indent--; }, - clear: resetWriter, - trackSymbol: function () { } - }; - function writeIndent() { - if (lineStart) { - var indentString = ts.getIndentString(indent); - if (indentString) { - displayParts.push(displayPart(indentString, ts.SymbolDisplayPartKind.space)); - } - lineStart = false; - } - } - function writeKind(text, kind) { - writeIndent(); - displayParts.push(displayPart(text, kind)); - } - function writeSymbol(text, symbol) { - writeIndent(); - displayParts.push(symbolPart(text, symbol)); - } - function writeLine() { - displayParts.push(lineBreakPart()); - lineStart = true; - } - function resetWriter() { - displayParts = []; - lineStart = true; - indent = 0; - } - } - function symbolPart(text, symbol) { - return displayPart(text, displayPartKind(symbol), symbol); - function displayPartKind(symbol) { - var flags = symbol.flags; - if (flags & 3) { - return isFirstDeclarationOfSymbolParameter(symbol) ? ts.SymbolDisplayPartKind.parameterName : ts.SymbolDisplayPartKind.localName; - } - else if (flags & 4) { - return ts.SymbolDisplayPartKind.propertyName; - } - else if (flags & 32768) { - return ts.SymbolDisplayPartKind.propertyName; - } - else if (flags & 65536) { - return ts.SymbolDisplayPartKind.propertyName; - } - else if (flags & 8) { - return ts.SymbolDisplayPartKind.enumMemberName; - } - else if (flags & 16) { - return ts.SymbolDisplayPartKind.functionName; - } - else if (flags & 32) { - return ts.SymbolDisplayPartKind.className; - } - else if (flags & 64) { - return ts.SymbolDisplayPartKind.interfaceName; - } - else if (flags & 384) { - return ts.SymbolDisplayPartKind.enumName; - } - else if (flags & 1536) { - return ts.SymbolDisplayPartKind.moduleName; - } - else if (flags & 8192) { - return ts.SymbolDisplayPartKind.methodName; - } - else if (flags & 262144) { - return ts.SymbolDisplayPartKind.typeParameterName; - } - else if (flags & 524288) { - return ts.SymbolDisplayPartKind.aliasName; - } - else if (flags & 8388608) { - return ts.SymbolDisplayPartKind.aliasName; - } - return ts.SymbolDisplayPartKind.text; - } - } - ts.symbolPart = symbolPart; - function displayPart(text, kind, symbol) { - return { - text: text, - kind: ts.SymbolDisplayPartKind[kind] - }; - } - ts.displayPart = displayPart; - function spacePart() { - return displayPart(" ", ts.SymbolDisplayPartKind.space); - } - ts.spacePart = spacePart; - function keywordPart(kind) { - return displayPart(ts.tokenToString(kind), ts.SymbolDisplayPartKind.keyword); - } - ts.keywordPart = keywordPart; - function punctuationPart(kind) { - return displayPart(ts.tokenToString(kind), ts.SymbolDisplayPartKind.punctuation); - } - ts.punctuationPart = punctuationPart; - function operatorPart(kind) { - return displayPart(ts.tokenToString(kind), ts.SymbolDisplayPartKind.operator); - } - ts.operatorPart = operatorPart; - function textOrKeywordPart(text) { - var kind = ts.stringToToken(text); - return kind === undefined - ? textPart(text) - : keywordPart(kind); - } - ts.textOrKeywordPart = textOrKeywordPart; - function textPart(text) { - return displayPart(text, ts.SymbolDisplayPartKind.text); - } - ts.textPart = textPart; - function lineBreakPart() { - return displayPart("\n", ts.SymbolDisplayPartKind.lineBreak); - } - ts.lineBreakPart = lineBreakPart; - function mapToDisplayParts(writeDisplayParts) { - writeDisplayParts(displayPartWriter); - var result = displayPartWriter.displayParts(); - displayPartWriter.clear(); - return result; - } - ts.mapToDisplayParts = mapToDisplayParts; - function typeToDisplayParts(typechecker, type, enclosingDeclaration, flags) { - return mapToDisplayParts(function (writer) { - typechecker.getSymbolDisplayBuilder().buildTypeDisplay(type, writer, enclosingDeclaration, flags); - }); - } - ts.typeToDisplayParts = typeToDisplayParts; - function symbolToDisplayParts(typeChecker, symbol, enclosingDeclaration, meaning, flags) { - return mapToDisplayParts(function (writer) { - typeChecker.getSymbolDisplayBuilder().buildSymbolDisplay(symbol, writer, enclosingDeclaration, meaning, flags); - }); - } - ts.symbolToDisplayParts = symbolToDisplayParts; - function signatureToDisplayParts(typechecker, signature, enclosingDeclaration, flags) { - return mapToDisplayParts(function (writer) { - typechecker.getSymbolDisplayBuilder().buildSignatureDisplay(signature, writer, enclosingDeclaration, flags); - }); - } - ts.signatureToDisplayParts = signatureToDisplayParts; -})(ts || (ts = {})); -/// -/// -var ts; -(function (ts) { - var formatting; - (function (formatting) { - var scanner = ts.createScanner(2, false); - var ScanAction; - (function (ScanAction) { - ScanAction[ScanAction["Scan"] = 0] = "Scan"; - ScanAction[ScanAction["RescanGreaterThanToken"] = 1] = "RescanGreaterThanToken"; - ScanAction[ScanAction["RescanSlashToken"] = 2] = "RescanSlashToken"; - ScanAction[ScanAction["RescanTemplateToken"] = 3] = "RescanTemplateToken"; - })(ScanAction || (ScanAction = {})); - function getFormattingScanner(sourceFile, startPos, endPos) { - scanner.setText(sourceFile.text); - scanner.setTextPos(startPos); - var wasNewLine = true; - var leadingTrivia; - var trailingTrivia; - var savedPos; - var lastScanAction; - var lastTokenInfo; - return { - advance: advance, - readTokenInfo: readTokenInfo, - isOnToken: isOnToken, - lastTrailingTriviaWasNewLine: function () { return wasNewLine; }, - close: function () { - lastTokenInfo = undefined; - scanner.setText(undefined); - } - }; - function advance() { - lastTokenInfo = undefined; - var isStarted = scanner.getStartPos() !== startPos; - if (isStarted) { - if (trailingTrivia) { - ts.Debug.assert(trailingTrivia.length !== 0); - wasNewLine = trailingTrivia[trailingTrivia.length - 1].kind === 4; - } - else { - wasNewLine = false; - } - } - leadingTrivia = undefined; - trailingTrivia = undefined; - if (!isStarted) { - scanner.scan(); - } - var t; - var pos = scanner.getStartPos(); - while (pos < endPos) { - var t_2 = scanner.getToken(); - if (!ts.isTrivia(t_2)) { - break; - } - scanner.scan(); - var item_4 = { - pos: pos, - end: scanner.getStartPos(), - kind: t_2 - }; - pos = scanner.getStartPos(); - if (!leadingTrivia) { - leadingTrivia = []; - } - leadingTrivia.push(item_4); - } - savedPos = scanner.getStartPos(); - } - function shouldRescanGreaterThanToken(node) { - if (node) { - switch (node.kind) { - case 27: - case 60: - case 61: - case 42: - case 41: - return true; - } - } - return false; - } - function shouldRescanSlashToken(container) { - return container.kind === 9; - } - function shouldRescanTemplateToken(container) { - return container.kind === 12 || - container.kind === 13; - } - function startsWithSlashToken(t) { - return t === 36 || t === 57; - } - function readTokenInfo(n) { - if (!isOnToken()) { - return { - leadingTrivia: leadingTrivia, - trailingTrivia: undefined, - token: undefined - }; - } - var expectedScanAction = shouldRescanGreaterThanToken(n) - ? 1 - : shouldRescanSlashToken(n) - ? 2 - : shouldRescanTemplateToken(n) - ? 3 - : 0; - if (lastTokenInfo && expectedScanAction === lastScanAction) { - return fixTokenKind(lastTokenInfo, n); - } - if (scanner.getStartPos() !== savedPos) { - ts.Debug.assert(lastTokenInfo !== undefined); - scanner.setTextPos(savedPos); - scanner.scan(); - } - var currentToken = scanner.getToken(); - if (expectedScanAction === 1 && currentToken === 25) { - currentToken = scanner.reScanGreaterToken(); - ts.Debug.assert(n.kind === currentToken); - lastScanAction = 1; - } - else if (expectedScanAction === 2 && startsWithSlashToken(currentToken)) { - currentToken = scanner.reScanSlashToken(); - ts.Debug.assert(n.kind === currentToken); - lastScanAction = 2; - } - else if (expectedScanAction === 3 && currentToken === 15) { - currentToken = scanner.reScanTemplateToken(); - lastScanAction = 3; - } - else { - lastScanAction = 0; - } - var token = { - pos: scanner.getStartPos(), - end: scanner.getTextPos(), - kind: currentToken - }; - if (trailingTrivia) { - trailingTrivia = undefined; - } - while (scanner.getStartPos() < endPos) { - currentToken = scanner.scan(); - if (!ts.isTrivia(currentToken)) { - break; - } - var trivia = { - pos: scanner.getStartPos(), - end: scanner.getTextPos(), - kind: currentToken - }; - if (!trailingTrivia) { - trailingTrivia = []; - } - trailingTrivia.push(trivia); - if (currentToken === 4) { - scanner.scan(); - break; - } - } - lastTokenInfo = { - leadingTrivia: leadingTrivia, - trailingTrivia: trailingTrivia, - token: token - }; - return fixTokenKind(lastTokenInfo, n); - } - function isOnToken() { - var current = (lastTokenInfo && lastTokenInfo.token.kind) || scanner.getToken(); - var startPos = (lastTokenInfo && lastTokenInfo.token.pos) || scanner.getStartPos(); - return startPos < endPos && current !== 1 && !ts.isTrivia(current); - } - function fixTokenKind(tokenInfo, container) { - if (ts.isToken(container) && tokenInfo.token.kind !== container.kind) { - tokenInfo.token.kind = container.kind; - } - return tokenInfo; - } - } - formatting.getFormattingScanner = getFormattingScanner; - })(formatting = ts.formatting || (ts.formatting = {})); -})(ts || (ts = {})); -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -/// -var ts; -(function (ts) { - var formatting; - (function (formatting) { - var FormattingContext = (function () { - function FormattingContext(sourceFile, formattingRequestKind) { - this.sourceFile = sourceFile; - this.formattingRequestKind = formattingRequestKind; - } - FormattingContext.prototype.updateContext = function (currentRange, currentTokenParent, nextRange, nextTokenParent, commonParent) { - ts.Debug.assert(currentRange !== undefined, "currentTokenSpan is null"); - ts.Debug.assert(currentTokenParent !== undefined, "currentTokenParent is null"); - ts.Debug.assert(nextRange !== undefined, "nextTokenSpan is null"); - ts.Debug.assert(nextTokenParent !== undefined, "nextTokenParent is null"); - ts.Debug.assert(commonParent !== undefined, "commonParent is null"); - this.currentTokenSpan = currentRange; - this.currentTokenParent = currentTokenParent; - this.nextTokenSpan = nextRange; - this.nextTokenParent = nextTokenParent; - this.contextNode = commonParent; - this.contextNodeAllOnSameLine = undefined; - this.nextNodeAllOnSameLine = undefined; - this.tokensAreOnSameLine = undefined; - this.contextNodeBlockIsOnOneLine = undefined; - this.nextNodeBlockIsOnOneLine = undefined; - }; - FormattingContext.prototype.ContextNodeAllOnSameLine = function () { - if (this.contextNodeAllOnSameLine === undefined) { - this.contextNodeAllOnSameLine = this.NodeIsOnOneLine(this.contextNode); - } - return this.contextNodeAllOnSameLine; - }; - FormattingContext.prototype.NextNodeAllOnSameLine = function () { - if (this.nextNodeAllOnSameLine === undefined) { - this.nextNodeAllOnSameLine = this.NodeIsOnOneLine(this.nextTokenParent); - } - return this.nextNodeAllOnSameLine; - }; - FormattingContext.prototype.TokensAreOnSameLine = function () { - if (this.tokensAreOnSameLine === undefined) { - var startLine = this.sourceFile.getLineAndCharacterOfPosition(this.currentTokenSpan.pos).line; - var endLine = this.sourceFile.getLineAndCharacterOfPosition(this.nextTokenSpan.pos).line; - this.tokensAreOnSameLine = (startLine == endLine); - } - return this.tokensAreOnSameLine; - }; - FormattingContext.prototype.ContextNodeBlockIsOnOneLine = function () { - if (this.contextNodeBlockIsOnOneLine === undefined) { - this.contextNodeBlockIsOnOneLine = this.BlockIsOnOneLine(this.contextNode); - } - return this.contextNodeBlockIsOnOneLine; - }; - FormattingContext.prototype.NextNodeBlockIsOnOneLine = function () { - if (this.nextNodeBlockIsOnOneLine === undefined) { - this.nextNodeBlockIsOnOneLine = this.BlockIsOnOneLine(this.nextTokenParent); - } - return this.nextNodeBlockIsOnOneLine; - }; - FormattingContext.prototype.NodeIsOnOneLine = function (node) { - var startLine = this.sourceFile.getLineAndCharacterOfPosition(node.getStart(this.sourceFile)).line; - var endLine = this.sourceFile.getLineAndCharacterOfPosition(node.getEnd()).line; - return startLine == endLine; - }; - FormattingContext.prototype.BlockIsOnOneLine = function (node) { - var openBrace = ts.findChildOfKind(node, 14, this.sourceFile); - var closeBrace = ts.findChildOfKind(node, 15, this.sourceFile); - if (openBrace && closeBrace) { - var startLine = this.sourceFile.getLineAndCharacterOfPosition(openBrace.getEnd()).line; - var endLine = this.sourceFile.getLineAndCharacterOfPosition(closeBrace.getStart(this.sourceFile)).line; - return startLine === endLine; - } - return false; - }; - return FormattingContext; - })(); - formatting.FormattingContext = FormattingContext; - })(formatting = ts.formatting || (ts.formatting = {})); -})(ts || (ts = {})); -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -/// -var ts; -(function (ts) { - var formatting; - (function (formatting) { - (function (FormattingRequestKind) { - FormattingRequestKind[FormattingRequestKind["FormatDocument"] = 0] = "FormatDocument"; - FormattingRequestKind[FormattingRequestKind["FormatSelection"] = 1] = "FormatSelection"; - FormattingRequestKind[FormattingRequestKind["FormatOnEnter"] = 2] = "FormatOnEnter"; - FormattingRequestKind[FormattingRequestKind["FormatOnSemicolon"] = 3] = "FormatOnSemicolon"; - FormattingRequestKind[FormattingRequestKind["FormatOnClosingCurlyBrace"] = 4] = "FormatOnClosingCurlyBrace"; - })(formatting.FormattingRequestKind || (formatting.FormattingRequestKind = {})); - var FormattingRequestKind = formatting.FormattingRequestKind; - })(formatting = ts.formatting || (ts.formatting = {})); -})(ts || (ts = {})); -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -/// -var ts; -(function (ts) { - var formatting; - (function (formatting) { - var Rule = (function () { - function Rule(Descriptor, Operation, Flag) { - if (Flag === void 0) { Flag = 0; } - this.Descriptor = Descriptor; - this.Operation = Operation; - this.Flag = Flag; - } - Rule.prototype.toString = function () { - return "[desc=" + this.Descriptor + "," + - "operation=" + this.Operation + "," + - "flag=" + this.Flag + "]"; - }; - return Rule; - })(); - formatting.Rule = Rule; - })(formatting = ts.formatting || (ts.formatting = {})); -})(ts || (ts = {})); -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -/// -var ts; -(function (ts) { - var formatting; - (function (formatting) { - (function (RuleAction) { - RuleAction[RuleAction["Ignore"] = 1] = "Ignore"; - RuleAction[RuleAction["Space"] = 2] = "Space"; - RuleAction[RuleAction["NewLine"] = 4] = "NewLine"; - RuleAction[RuleAction["Delete"] = 8] = "Delete"; - })(formatting.RuleAction || (formatting.RuleAction = {})); - var RuleAction = formatting.RuleAction; - })(formatting = ts.formatting || (ts.formatting = {})); -})(ts || (ts = {})); -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -/// -var ts; -(function (ts) { - var formatting; - (function (formatting) { - var RuleDescriptor = (function () { - function RuleDescriptor(LeftTokenRange, RightTokenRange) { - this.LeftTokenRange = LeftTokenRange; - this.RightTokenRange = RightTokenRange; - } - RuleDescriptor.prototype.toString = function () { - return "[leftRange=" + this.LeftTokenRange + "," + - "rightRange=" + this.RightTokenRange + "]"; - }; - RuleDescriptor.create1 = function (left, right) { - return RuleDescriptor.create4(formatting.Shared.TokenRange.FromToken(left), formatting.Shared.TokenRange.FromToken(right)); - }; - RuleDescriptor.create2 = function (left, right) { - return RuleDescriptor.create4(left, formatting.Shared.TokenRange.FromToken(right)); - }; - RuleDescriptor.create3 = function (left, right) { - return RuleDescriptor.create4(formatting.Shared.TokenRange.FromToken(left), right); - }; - RuleDescriptor.create4 = function (left, right) { - return new RuleDescriptor(left, right); - }; - return RuleDescriptor; - })(); - formatting.RuleDescriptor = RuleDescriptor; - })(formatting = ts.formatting || (ts.formatting = {})); -})(ts || (ts = {})); -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -/// -var ts; -(function (ts) { - var formatting; - (function (formatting) { - (function (RuleFlags) { - RuleFlags[RuleFlags["None"] = 0] = "None"; - RuleFlags[RuleFlags["CanDeleteNewLines"] = 1] = "CanDeleteNewLines"; - })(formatting.RuleFlags || (formatting.RuleFlags = {})); - var RuleFlags = formatting.RuleFlags; - })(formatting = ts.formatting || (ts.formatting = {})); -})(ts || (ts = {})); -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -/// -var ts; -(function (ts) { - var formatting; - (function (formatting) { - var RuleOperation = (function () { - function RuleOperation() { - this.Context = null; - this.Action = null; - } - RuleOperation.prototype.toString = function () { - return "[context=" + this.Context + "," + - "action=" + this.Action + "]"; - }; - RuleOperation.create1 = function (action) { - return RuleOperation.create2(formatting.RuleOperationContext.Any, action); - }; - RuleOperation.create2 = function (context, action) { - var result = new RuleOperation(); - result.Context = context; - result.Action = action; - return result; - }; - return RuleOperation; - })(); - formatting.RuleOperation = RuleOperation; - })(formatting = ts.formatting || (ts.formatting = {})); -})(ts || (ts = {})); -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -/// -var ts; -(function (ts) { - var formatting; - (function (formatting) { - var RuleOperationContext = (function () { - function RuleOperationContext() { - var funcs = []; - for (var _i = 0; _i < arguments.length; _i++) { - funcs[_i - 0] = arguments[_i]; - } - this.customContextChecks = funcs; - } - RuleOperationContext.prototype.IsAny = function () { - return this == RuleOperationContext.Any; - }; - RuleOperationContext.prototype.InContext = function (context) { - if (this.IsAny()) { - return true; - } - for (var _i = 0, _a = this.customContextChecks, _n = _a.length; _i < _n; _i++) { - var check = _a[_i]; - if (!check(context)) { - return false; - } - } - return true; - }; - RuleOperationContext.Any = new RuleOperationContext(); - return RuleOperationContext; - })(); - formatting.RuleOperationContext = RuleOperationContext; - })(formatting = ts.formatting || (ts.formatting = {})); -})(ts || (ts = {})); -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -/// -var ts; -(function (ts) { - var formatting; - (function (formatting) { - var Rules = (function () { - function Rules() { - /// - /// Common Rules - /// - this.IgnoreBeforeComment = new formatting.Rule(formatting.RuleDescriptor.create4(formatting.Shared.TokenRange.Any, formatting.Shared.TokenRange.Comments), formatting.RuleOperation.create1(1)); - this.IgnoreAfterLineComment = new formatting.Rule(formatting.RuleDescriptor.create3(2, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create1(1)); - this.NoSpaceBeforeSemicolon = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.Any, 22), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8)); - this.NoSpaceBeforeColon = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.Any, 51), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsNotBinaryOpContext), 8)); - this.NoSpaceBeforeQuestionMark = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.Any, 50), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsNotBinaryOpContext), 8)); - this.SpaceAfterColon = new formatting.Rule(formatting.RuleDescriptor.create3(51, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsNotBinaryOpContext), 2)); - this.SpaceAfterQuestionMarkInConditionalOperator = new formatting.Rule(formatting.RuleDescriptor.create3(50, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsConditionalOperatorContext), 2)); - this.NoSpaceAfterQuestionMark = new formatting.Rule(formatting.RuleDescriptor.create3(50, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8)); - this.SpaceAfterSemicolon = new formatting.Rule(formatting.RuleDescriptor.create3(22, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 2)); - this.SpaceAfterCloseBrace = new formatting.Rule(formatting.RuleDescriptor.create3(15, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsAfterCodeBlockContext), 2)); - this.SpaceBetweenCloseBraceAndElse = new formatting.Rule(formatting.RuleDescriptor.create1(15, 76), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 2)); - this.SpaceBetweenCloseBraceAndWhile = new formatting.Rule(formatting.RuleDescriptor.create1(15, 100), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 2)); - this.NoSpaceAfterCloseBrace = new formatting.Rule(formatting.RuleDescriptor.create3(15, formatting.Shared.TokenRange.FromTokens([17, 19, 23, 22])), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8)); - this.NoSpaceBeforeDot = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.Any, 20), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8)); - this.NoSpaceAfterDot = new formatting.Rule(formatting.RuleDescriptor.create3(20, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8)); - this.NoSpaceBeforeOpenBracket = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.Any, 18), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8)); - this.NoSpaceAfterOpenBracket = new formatting.Rule(formatting.RuleDescriptor.create3(18, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8)); - this.NoSpaceBeforeCloseBracket = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.Any, 19), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8)); - this.NoSpaceAfterCloseBracket = new formatting.Rule(formatting.RuleDescriptor.create3(19, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8)); - this.FunctionOpenBraceLeftTokenRange = formatting.Shared.TokenRange.AnyIncludingMultilineComments; - this.SpaceBeforeOpenBraceInFunction = new formatting.Rule(formatting.RuleDescriptor.create2(this.FunctionOpenBraceLeftTokenRange, 14), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsFunctionDeclContext, Rules.IsBeforeBlockContext, Rules.IsNotFormatOnEnter, Rules.IsSameLineTokenOrBeforeMultilineBlockContext), 2), 1); - this.TypeScriptOpenBraceLeftTokenRange = formatting.Shared.TokenRange.FromTokens([65, 3]); - this.SpaceBeforeOpenBraceInTypeScriptDeclWithBlock = new formatting.Rule(formatting.RuleDescriptor.create2(this.TypeScriptOpenBraceLeftTokenRange, 14), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsTypeScriptDeclWithBlockContext, Rules.IsNotFormatOnEnter, Rules.IsSameLineTokenOrBeforeMultilineBlockContext), 2), 1); - this.ControlOpenBraceLeftTokenRange = formatting.Shared.TokenRange.FromTokens([17, 3, 75, 96, 81, 76]); - this.SpaceBeforeOpenBraceInControl = new formatting.Rule(formatting.RuleDescriptor.create2(this.ControlOpenBraceLeftTokenRange, 14), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsControlDeclContext, Rules.IsNotFormatOnEnter, Rules.IsSameLineTokenOrBeforeMultilineBlockContext), 2), 1); - this.SpaceAfterOpenBrace = new formatting.Rule(formatting.RuleDescriptor.create3(14, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSingleLineBlockContext), 2)); - this.SpaceBeforeCloseBrace = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.Any, 15), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSingleLineBlockContext), 2)); - this.NoSpaceBetweenEmptyBraceBrackets = new formatting.Rule(formatting.RuleDescriptor.create1(14, 15), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsObjectContext), 8)); - this.NewLineAfterOpenBraceInBlockContext = new formatting.Rule(formatting.RuleDescriptor.create3(14, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsMultilineBlockContext), 4)); - this.NewLineBeforeCloseBraceInBlockContext = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.AnyIncludingMultilineComments, 15), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsMultilineBlockContext), 4)); - this.NoSpaceAfterUnaryPrefixOperator = new formatting.Rule(formatting.RuleDescriptor.create4(formatting.Shared.TokenRange.UnaryPrefixOperators, formatting.Shared.TokenRange.UnaryPrefixExpressions), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsNotBinaryOpContext), 8)); - this.NoSpaceAfterUnaryPreincrementOperator = new formatting.Rule(formatting.RuleDescriptor.create3(38, formatting.Shared.TokenRange.UnaryPreincrementExpressions), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8)); - this.NoSpaceAfterUnaryPredecrementOperator = new formatting.Rule(formatting.RuleDescriptor.create3(39, formatting.Shared.TokenRange.UnaryPredecrementExpressions), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8)); - this.NoSpaceBeforeUnaryPostincrementOperator = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.UnaryPostincrementExpressions, 38), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8)); - this.NoSpaceBeforeUnaryPostdecrementOperator = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.UnaryPostdecrementExpressions, 39), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8)); - this.SpaceAfterPostincrementWhenFollowedByAdd = new formatting.Rule(formatting.RuleDescriptor.create1(38, 33), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsBinaryOpContext), 2)); - this.SpaceAfterAddWhenFollowedByUnaryPlus = new formatting.Rule(formatting.RuleDescriptor.create1(33, 33), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsBinaryOpContext), 2)); - this.SpaceAfterAddWhenFollowedByPreincrement = new formatting.Rule(formatting.RuleDescriptor.create1(33, 38), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsBinaryOpContext), 2)); - this.SpaceAfterPostdecrementWhenFollowedBySubtract = new formatting.Rule(formatting.RuleDescriptor.create1(39, 34), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsBinaryOpContext), 2)); - this.SpaceAfterSubtractWhenFollowedByUnaryMinus = new formatting.Rule(formatting.RuleDescriptor.create1(34, 34), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsBinaryOpContext), 2)); - this.SpaceAfterSubtractWhenFollowedByPredecrement = new formatting.Rule(formatting.RuleDescriptor.create1(34, 39), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsBinaryOpContext), 2)); - this.NoSpaceBeforeComma = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.Any, 23), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8)); - this.SpaceAfterCertainKeywords = new formatting.Rule(formatting.RuleDescriptor.create4(formatting.Shared.TokenRange.FromTokens([98, 94, 88, 74, 90, 97]), formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 2)); - this.SpaceAfterLetConstInVariableDeclaration = new formatting.Rule(formatting.RuleDescriptor.create4(formatting.Shared.TokenRange.FromTokens([105, 70]), formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsStartOfVariableDeclarationList), 2)); - this.NoSpaceBeforeOpenParenInFuncCall = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.Any, 16), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsFunctionCallOrNewContext, Rules.IsPreviousTokenNotComma), 8)); - this.SpaceAfterFunctionInFuncDecl = new formatting.Rule(formatting.RuleDescriptor.create3(83, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsFunctionDeclContext), 2)); - this.NoSpaceBeforeOpenParenInFuncDecl = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.Any, 16), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsFunctionDeclContext), 8)); - this.SpaceAfterVoidOperator = new formatting.Rule(formatting.RuleDescriptor.create3(99, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsVoidOpContext), 2)); - this.NoSpaceBetweenReturnAndSemicolon = new formatting.Rule(formatting.RuleDescriptor.create1(90, 22), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8)); - this.SpaceBetweenStatements = new formatting.Rule(formatting.RuleDescriptor.create4(formatting.Shared.TokenRange.FromTokens([17, 75, 76, 67]), formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsNotForContext), 2)); - this.SpaceAfterTryFinally = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.FromTokens([96, 81]), 14), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 2)); - this.SpaceAfterGetSetInMember = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.FromTokens([116, 120]), 65), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsFunctionDeclContext), 2)); - this.SpaceBeforeBinaryKeywordOperator = new formatting.Rule(formatting.RuleDescriptor.create4(formatting.Shared.TokenRange.Any, formatting.Shared.TokenRange.BinaryKeywordOperators), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsBinaryOpContext), 2)); - this.SpaceAfterBinaryKeywordOperator = new formatting.Rule(formatting.RuleDescriptor.create4(formatting.Shared.TokenRange.BinaryKeywordOperators, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsBinaryOpContext), 2)); - this.NoSpaceAfterConstructor = new formatting.Rule(formatting.RuleDescriptor.create1(114, 16), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8)); - this.NoSpaceAfterModuleImport = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.FromTokens([117, 118]), 16), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8)); - this.SpaceAfterCertainTypeScriptKeywords = new formatting.Rule(formatting.RuleDescriptor.create4(formatting.Shared.TokenRange.FromTokens([69, 115, 77, 78, 79, 116, 103, 85, 104, 117, 107, 109, 120, 110]), formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 2)); - this.SpaceBeforeCertainTypeScriptKeywords = new formatting.Rule(formatting.RuleDescriptor.create4(formatting.Shared.TokenRange.Any, formatting.Shared.TokenRange.FromTokens([79, 103])), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 2)); - this.SpaceAfterModuleName = new formatting.Rule(formatting.RuleDescriptor.create1(8, 14), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsModuleDeclContext), 2)); - this.SpaceAfterArrow = new formatting.Rule(formatting.RuleDescriptor.create3(32, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 2)); - this.NoSpaceAfterEllipsis = new formatting.Rule(formatting.RuleDescriptor.create1(21, 65), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8)); - this.NoSpaceAfterOptionalParameters = new formatting.Rule(formatting.RuleDescriptor.create3(50, formatting.Shared.TokenRange.FromTokens([17, 23])), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsNotBinaryOpContext), 8)); - this.NoSpaceBeforeOpenAngularBracket = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.TypeNames, 24), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsTypeArgumentOrParameterContext), 8)); - this.NoSpaceBetweenCloseParenAndAngularBracket = new formatting.Rule(formatting.RuleDescriptor.create1(17, 24), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsTypeArgumentOrParameterContext), 8)); - this.NoSpaceAfterOpenAngularBracket = new formatting.Rule(formatting.RuleDescriptor.create3(24, formatting.Shared.TokenRange.TypeNames), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsTypeArgumentOrParameterContext), 8)); - this.NoSpaceBeforeCloseAngularBracket = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.Any, 25), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsTypeArgumentOrParameterContext), 8)); - this.NoSpaceAfterCloseAngularBracket = new formatting.Rule(formatting.RuleDescriptor.create3(25, formatting.Shared.TokenRange.FromTokens([16, 18, 25, 23])), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsTypeArgumentOrParameterContext), 8)); - this.NoSpaceBetweenEmptyInterfaceBraceBrackets = new formatting.Rule(formatting.RuleDescriptor.create1(14, 15), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsObjectTypeContext), 8)); - this.HighPriorityCommonRules = - [ - this.IgnoreBeforeComment, this.IgnoreAfterLineComment, - this.NoSpaceBeforeColon, this.SpaceAfterColon, this.NoSpaceBeforeQuestionMark, this.SpaceAfterQuestionMarkInConditionalOperator, - this.NoSpaceAfterQuestionMark, - this.NoSpaceBeforeDot, this.NoSpaceAfterDot, - this.NoSpaceAfterUnaryPrefixOperator, - this.NoSpaceAfterUnaryPreincrementOperator, this.NoSpaceAfterUnaryPredecrementOperator, - this.NoSpaceBeforeUnaryPostincrementOperator, this.NoSpaceBeforeUnaryPostdecrementOperator, - this.SpaceAfterPostincrementWhenFollowedByAdd, - this.SpaceAfterAddWhenFollowedByUnaryPlus, this.SpaceAfterAddWhenFollowedByPreincrement, - this.SpaceAfterPostdecrementWhenFollowedBySubtract, - this.SpaceAfterSubtractWhenFollowedByUnaryMinus, this.SpaceAfterSubtractWhenFollowedByPredecrement, - this.NoSpaceAfterCloseBrace, - this.SpaceAfterOpenBrace, this.SpaceBeforeCloseBrace, this.NewLineBeforeCloseBraceInBlockContext, - this.SpaceAfterCloseBrace, this.SpaceBetweenCloseBraceAndElse, this.SpaceBetweenCloseBraceAndWhile, this.NoSpaceBetweenEmptyBraceBrackets, - this.SpaceAfterFunctionInFuncDecl, this.NewLineAfterOpenBraceInBlockContext, this.SpaceAfterGetSetInMember, - this.NoSpaceBetweenReturnAndSemicolon, - this.SpaceAfterCertainKeywords, - this.SpaceAfterLetConstInVariableDeclaration, - this.NoSpaceBeforeOpenParenInFuncCall, - this.SpaceBeforeBinaryKeywordOperator, this.SpaceAfterBinaryKeywordOperator, - this.SpaceAfterVoidOperator, - this.NoSpaceAfterConstructor, this.NoSpaceAfterModuleImport, - this.SpaceAfterCertainTypeScriptKeywords, this.SpaceBeforeCertainTypeScriptKeywords, - this.SpaceAfterModuleName, - this.SpaceAfterArrow, - this.NoSpaceAfterEllipsis, - this.NoSpaceAfterOptionalParameters, - this.NoSpaceBetweenEmptyInterfaceBraceBrackets, - this.NoSpaceBeforeOpenAngularBracket, - this.NoSpaceBetweenCloseParenAndAngularBracket, - this.NoSpaceAfterOpenAngularBracket, - this.NoSpaceBeforeCloseAngularBracket, - this.NoSpaceAfterCloseAngularBracket - ]; - this.LowPriorityCommonRules = - [ - this.NoSpaceBeforeSemicolon, - this.SpaceBeforeOpenBraceInControl, this.SpaceBeforeOpenBraceInFunction, this.SpaceBeforeOpenBraceInTypeScriptDeclWithBlock, - this.NoSpaceBeforeComma, - this.NoSpaceBeforeOpenBracket, this.NoSpaceAfterOpenBracket, - this.NoSpaceBeforeCloseBracket, this.NoSpaceAfterCloseBracket, - this.SpaceAfterSemicolon, - this.NoSpaceBeforeOpenParenInFuncDecl, - this.SpaceBetweenStatements, this.SpaceAfterTryFinally - ]; - this.SpaceAfterComma = new formatting.Rule(formatting.RuleDescriptor.create3(23, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 2)); - this.NoSpaceAfterComma = new formatting.Rule(formatting.RuleDescriptor.create3(23, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8)); - this.SpaceBeforeBinaryOperator = new formatting.Rule(formatting.RuleDescriptor.create4(formatting.Shared.TokenRange.Any, formatting.Shared.TokenRange.BinaryOperators), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsBinaryOpContext), 2)); - this.SpaceAfterBinaryOperator = new formatting.Rule(formatting.RuleDescriptor.create4(formatting.Shared.TokenRange.BinaryOperators, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsBinaryOpContext), 2)); - this.NoSpaceBeforeBinaryOperator = new formatting.Rule(formatting.RuleDescriptor.create4(formatting.Shared.TokenRange.Any, formatting.Shared.TokenRange.BinaryOperators), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsBinaryOpContext), 8)); - this.NoSpaceAfterBinaryOperator = new formatting.Rule(formatting.RuleDescriptor.create4(formatting.Shared.TokenRange.BinaryOperators, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsBinaryOpContext), 8)); - this.SpaceAfterKeywordInControl = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.Keywords, 16), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsControlDeclContext), 2)); - this.NoSpaceAfterKeywordInControl = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.Keywords, 16), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsControlDeclContext), 8)); - this.NewLineBeforeOpenBraceInFunction = new formatting.Rule(formatting.RuleDescriptor.create2(this.FunctionOpenBraceLeftTokenRange, 14), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsFunctionDeclContext, Rules.IsBeforeMultilineBlockContext), 4), 1); - this.NewLineBeforeOpenBraceInTypeScriptDeclWithBlock = new formatting.Rule(formatting.RuleDescriptor.create2(this.TypeScriptOpenBraceLeftTokenRange, 14), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsTypeScriptDeclWithBlockContext, Rules.IsBeforeMultilineBlockContext), 4), 1); - this.NewLineBeforeOpenBraceInControl = new formatting.Rule(formatting.RuleDescriptor.create2(this.ControlOpenBraceLeftTokenRange, 14), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsControlDeclContext, Rules.IsBeforeMultilineBlockContext), 4), 1); - this.SpaceAfterSemicolonInFor = new formatting.Rule(formatting.RuleDescriptor.create3(22, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsForContext), 2)); - this.NoSpaceAfterSemicolonInFor = new formatting.Rule(formatting.RuleDescriptor.create3(22, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsForContext), 8)); - this.SpaceAfterOpenParen = new formatting.Rule(formatting.RuleDescriptor.create3(16, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 2)); - this.SpaceBeforeCloseParen = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.Any, 17), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 2)); - this.NoSpaceBetweenParens = new formatting.Rule(formatting.RuleDescriptor.create1(16, 17), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8)); - this.NoSpaceAfterOpenParen = new formatting.Rule(formatting.RuleDescriptor.create3(16, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8)); - this.NoSpaceBeforeCloseParen = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.Any, 17), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8)); - this.SpaceAfterAnonymousFunctionKeyword = new formatting.Rule(formatting.RuleDescriptor.create1(83, 16), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsFunctionDeclContext), 2)); - this.NoSpaceAfterAnonymousFunctionKeyword = new formatting.Rule(formatting.RuleDescriptor.create1(83, 16), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsFunctionDeclContext), 8)); - } - Rules.prototype.getRuleName = function (rule) { - var o = this; - for (var name_18 in o) { - if (o[name_18] === rule) { - return name_18; - } - } - throw new Error("Unknown rule"); - }; - Rules.IsForContext = function (context) { - return context.contextNode.kind === 183; - }; - Rules.IsNotForContext = function (context) { - return !Rules.IsForContext(context); - }; - Rules.IsBinaryOpContext = function (context) { - switch (context.contextNode.kind) { - case 169: - case 170: - return true; - case 205: - case 195: - case 129: - case 223: - case 132: - case 131: - return context.currentTokenSpan.kind === 53 || context.nextTokenSpan.kind === 53; - case 184: - return context.currentTokenSpan.kind === 86 || context.nextTokenSpan.kind === 86; - case 185: - return context.currentTokenSpan.kind === 125 || context.nextTokenSpan.kind === 125; - case 152: - return context.currentTokenSpan.kind === 53 || context.nextTokenSpan.kind === 53; - } - return false; - }; - Rules.IsNotBinaryOpContext = function (context) { - return !Rules.IsBinaryOpContext(context); - }; - Rules.IsConditionalOperatorContext = function (context) { - return context.contextNode.kind === 170; - }; - Rules.IsSameLineTokenOrBeforeMultilineBlockContext = function (context) { - //// This check is mainly used inside SpaceBeforeOpenBraceInControl and SpaceBeforeOpenBraceInFunction. - //// - //// Ex: - //// if (1) { .... - //// * ) and { are on the same line so apply the rule. Here we don't care whether it's same or multi block context - //// - //// Ex: - //// if (1) - //// { ... } - //// * ) and { are on differnet lines. We only need to format if the block is multiline context. So in this case we don't format. - //// - //// Ex: - //// if (1) - //// { ... - //// } - //// * ) and { are on differnet lines. We only need to format if the block is multiline context. So in this case we format. - return context.TokensAreOnSameLine() || Rules.IsBeforeMultilineBlockContext(context); - }; - Rules.IsBeforeMultilineBlockContext = function (context) { - return Rules.IsBeforeBlockContext(context) && !(context.NextNodeAllOnSameLine() || context.NextNodeBlockIsOnOneLine()); - }; - Rules.IsMultilineBlockContext = function (context) { - return Rules.IsBlockContext(context) && !(context.ContextNodeAllOnSameLine() || context.ContextNodeBlockIsOnOneLine()); - }; - Rules.IsSingleLineBlockContext = function (context) { - return Rules.IsBlockContext(context) && (context.ContextNodeAllOnSameLine() || context.ContextNodeBlockIsOnOneLine()); - }; - Rules.IsBlockContext = function (context) { - return Rules.NodeIsBlockContext(context.contextNode); - }; - Rules.IsBeforeBlockContext = function (context) { - return Rules.NodeIsBlockContext(context.nextTokenParent); - }; - Rules.NodeIsBlockContext = function (node) { - if (Rules.NodeIsTypeScriptDeclWithBlockContext(node)) { - return true; - } - switch (node.kind) { - case 176: - case 204: - case 154: - case 203: - return true; - } - return false; - }; - Rules.IsFunctionDeclContext = function (context) { - switch (context.contextNode.kind) { - case 197: - case 134: - case 133: - case 136: - case 137: - case 138: - case 162: - case 135: - case 163: - case 199: - return true; - } - return false; - }; - Rules.IsTypeScriptDeclWithBlockContext = function (context) { - return Rules.NodeIsTypeScriptDeclWithBlockContext(context.contextNode); - }; - Rules.NodeIsTypeScriptDeclWithBlockContext = function (node) { - switch (node.kind) { - case 198: - case 199: - case 201: - case 145: - case 202: - return true; - } - return false; - }; - Rules.IsAfterCodeBlockContext = function (context) { - switch (context.currentTokenParent.kind) { - case 198: - case 202: - case 201: - case 176: - case 220: - case 203: - case 190: - return true; - } - return false; - }; - Rules.IsControlDeclContext = function (context) { - switch (context.contextNode.kind) { - case 180: - case 190: - case 183: - case 184: - case 185: - case 182: - case 193: - case 181: - case 189: - case 220: - return true; - default: - return false; - } - }; - Rules.IsObjectContext = function (context) { - return context.contextNode.kind === 154; - }; - Rules.IsFunctionCallContext = function (context) { - return context.contextNode.kind === 157; - }; - Rules.IsNewContext = function (context) { - return context.contextNode.kind === 158; - }; - Rules.IsFunctionCallOrNewContext = function (context) { - return Rules.IsFunctionCallContext(context) || Rules.IsNewContext(context); - }; - Rules.IsPreviousTokenNotComma = function (context) { - return context.currentTokenSpan.kind !== 23; - }; - Rules.IsSameLineTokenContext = function (context) { - return context.TokensAreOnSameLine(); - }; - Rules.IsStartOfVariableDeclarationList = function (context) { - return context.currentTokenParent.kind === 196 && - context.currentTokenParent.getStart(context.sourceFile) === context.currentTokenSpan.pos; - }; - Rules.IsNotFormatOnEnter = function (context) { - return context.formattingRequestKind != 2; - }; - Rules.IsModuleDeclContext = function (context) { - return context.contextNode.kind === 202; - }; - Rules.IsObjectTypeContext = function (context) { - return context.contextNode.kind === 145; - }; - Rules.IsTypeArgumentOrParameter = function (token, parent) { - if (token.kind !== 24 && token.kind !== 25) { - return false; - } - switch (parent.kind) { - case 141: - case 198: - case 199: - case 197: - case 162: - case 163: - case 134: - case 133: - case 138: - case 139: - case 157: - case 158: - return true; - default: - return false; - } - }; - Rules.IsTypeArgumentOrParameterContext = function (context) { - return Rules.IsTypeArgumentOrParameter(context.currentTokenSpan, context.currentTokenParent) || - Rules.IsTypeArgumentOrParameter(context.nextTokenSpan, context.nextTokenParent); - }; - Rules.IsVoidOpContext = function (context) { - return context.currentTokenSpan.kind === 99 && context.currentTokenParent.kind === 166; - }; - return Rules; - })(); - formatting.Rules = Rules; - })(formatting = ts.formatting || (ts.formatting = {})); -})(ts || (ts = {})); -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -/// -var ts; -(function (ts) { - var formatting; - (function (formatting) { - var RulesMap = (function () { - function RulesMap() { - this.map = []; - this.mapRowLength = 0; - } - RulesMap.create = function (rules) { - var result = new RulesMap(); - result.Initialize(rules); - return result; - }; - RulesMap.prototype.Initialize = function (rules) { - this.mapRowLength = 125 + 1; - this.map = new Array(this.mapRowLength * this.mapRowLength); - var rulesBucketConstructionStateList = new Array(this.map.length); - this.FillRules(rules, rulesBucketConstructionStateList); - return this.map; - }; - RulesMap.prototype.FillRules = function (rules, rulesBucketConstructionStateList) { - var _this = this; - rules.forEach(function (rule) { - _this.FillRule(rule, rulesBucketConstructionStateList); - }); - }; - RulesMap.prototype.GetRuleBucketIndex = function (row, column) { - var rulesBucketIndex = (row * this.mapRowLength) + column; - return rulesBucketIndex; - }; - RulesMap.prototype.FillRule = function (rule, rulesBucketConstructionStateList) { - var _this = this; - var specificRule = rule.Descriptor.LeftTokenRange != formatting.Shared.TokenRange.Any && - rule.Descriptor.RightTokenRange != formatting.Shared.TokenRange.Any; - rule.Descriptor.LeftTokenRange.GetTokens().forEach(function (left) { - rule.Descriptor.RightTokenRange.GetTokens().forEach(function (right) { - var rulesBucketIndex = _this.GetRuleBucketIndex(left, right); - var rulesBucket = _this.map[rulesBucketIndex]; - if (rulesBucket == undefined) { - rulesBucket = _this.map[rulesBucketIndex] = new RulesBucket(); - } - rulesBucket.AddRule(rule, specificRule, rulesBucketConstructionStateList, rulesBucketIndex); - }); - }); - }; - RulesMap.prototype.GetRule = function (context) { - var bucketIndex = this.GetRuleBucketIndex(context.currentTokenSpan.kind, context.nextTokenSpan.kind); - var bucket = this.map[bucketIndex]; - if (bucket != null) { - for (var _i = 0, _a = bucket.Rules(), _n = _a.length; _i < _n; _i++) { - var rule = _a[_i]; - if (rule.Operation.Context.InContext(context)) { - return rule; - } - } - } - return null; - }; - return RulesMap; - })(); - formatting.RulesMap = RulesMap; - var MaskBitSize = 5; - var Mask = 0x1f; - (function (RulesPosition) { - RulesPosition[RulesPosition["IgnoreRulesSpecific"] = 0] = "IgnoreRulesSpecific"; - RulesPosition[RulesPosition["IgnoreRulesAny"] = MaskBitSize * 1] = "IgnoreRulesAny"; - RulesPosition[RulesPosition["ContextRulesSpecific"] = MaskBitSize * 2] = "ContextRulesSpecific"; - RulesPosition[RulesPosition["ContextRulesAny"] = MaskBitSize * 3] = "ContextRulesAny"; - RulesPosition[RulesPosition["NoContextRulesSpecific"] = MaskBitSize * 4] = "NoContextRulesSpecific"; - RulesPosition[RulesPosition["NoContextRulesAny"] = MaskBitSize * 5] = "NoContextRulesAny"; - })(formatting.RulesPosition || (formatting.RulesPosition = {})); - var RulesPosition = formatting.RulesPosition; - var RulesBucketConstructionState = (function () { - function RulesBucketConstructionState() { - this.rulesInsertionIndexBitmap = 0; - } - RulesBucketConstructionState.prototype.GetInsertionIndex = function (maskPosition) { - var index = 0; - var pos = 0; - var indexBitmap = this.rulesInsertionIndexBitmap; - while (pos <= maskPosition) { - index += (indexBitmap & Mask); - indexBitmap >>= MaskBitSize; - pos += MaskBitSize; - } - return index; - }; - RulesBucketConstructionState.prototype.IncreaseInsertionIndex = function (maskPosition) { - var value = (this.rulesInsertionIndexBitmap >> maskPosition) & Mask; - value++; - ts.Debug.assert((value & Mask) == value, "Adding more rules into the sub-bucket than allowed. Maximum allowed is 32 rules."); - var temp = this.rulesInsertionIndexBitmap & ~(Mask << maskPosition); - temp |= value << maskPosition; - this.rulesInsertionIndexBitmap = temp; - }; - return RulesBucketConstructionState; - })(); - formatting.RulesBucketConstructionState = RulesBucketConstructionState; - var RulesBucket = (function () { - function RulesBucket() { - this.rules = []; - } - RulesBucket.prototype.Rules = function () { - return this.rules; - }; - RulesBucket.prototype.AddRule = function (rule, specificTokens, constructionState, rulesBucketIndex) { - var position; - if (rule.Operation.Action == 1) { - position = specificTokens ? - RulesPosition.IgnoreRulesSpecific : - RulesPosition.IgnoreRulesAny; - } - else if (!rule.Operation.Context.IsAny()) { - position = specificTokens ? - RulesPosition.ContextRulesSpecific : - RulesPosition.ContextRulesAny; - } - else { - position = specificTokens ? - RulesPosition.NoContextRulesSpecific : - RulesPosition.NoContextRulesAny; - } - var state = constructionState[rulesBucketIndex]; - if (state === undefined) { - state = constructionState[rulesBucketIndex] = new RulesBucketConstructionState(); - } - var index = state.GetInsertionIndex(position); - this.rules.splice(index, 0, rule); - state.IncreaseInsertionIndex(position); - }; - return RulesBucket; - })(); - formatting.RulesBucket = RulesBucket; - })(formatting = ts.formatting || (ts.formatting = {})); -})(ts || (ts = {})); -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -/// -var ts; -(function (ts) { - var formatting; - (function (formatting) { - var Shared; - (function (Shared) { - var TokenRangeAccess = (function () { - function TokenRangeAccess(from, to, except) { - this.tokens = []; - for (var token = from; token <= to; token++) { - if (except.indexOf(token) < 0) { - this.tokens.push(token); - } - } - } - TokenRangeAccess.prototype.GetTokens = function () { - return this.tokens; - }; - TokenRangeAccess.prototype.Contains = function (token) { - return this.tokens.indexOf(token) >= 0; - }; - return TokenRangeAccess; - })(); - Shared.TokenRangeAccess = TokenRangeAccess; - var TokenValuesAccess = (function () { - function TokenValuesAccess(tks) { - this.tokens = tks && tks.length ? tks : []; - } - TokenValuesAccess.prototype.GetTokens = function () { - return this.tokens; - }; - TokenValuesAccess.prototype.Contains = function (token) { - return this.tokens.indexOf(token) >= 0; - }; - return TokenValuesAccess; - })(); - Shared.TokenValuesAccess = TokenValuesAccess; - var TokenSingleValueAccess = (function () { - function TokenSingleValueAccess(token) { - this.token = token; - } - TokenSingleValueAccess.prototype.GetTokens = function () { - return [this.token]; - }; - TokenSingleValueAccess.prototype.Contains = function (tokenValue) { - return tokenValue == this.token; - }; - return TokenSingleValueAccess; - })(); - Shared.TokenSingleValueAccess = TokenSingleValueAccess; - var TokenAllAccess = (function () { - function TokenAllAccess() { - } - TokenAllAccess.prototype.GetTokens = function () { - var result = []; - for (var token = 0; token <= 125; token++) { - result.push(token); - } - return result; - }; - TokenAllAccess.prototype.Contains = function (tokenValue) { - return true; - }; - TokenAllAccess.prototype.toString = function () { - return "[allTokens]"; - }; - return TokenAllAccess; - })(); - Shared.TokenAllAccess = TokenAllAccess; - var TokenRange = (function () { - function TokenRange(tokenAccess) { - this.tokenAccess = tokenAccess; - } - TokenRange.FromToken = function (token) { - return new TokenRange(new TokenSingleValueAccess(token)); - }; - TokenRange.FromTokens = function (tokens) { - return new TokenRange(new TokenValuesAccess(tokens)); - }; - TokenRange.FromRange = function (f, to, except) { - if (except === void 0) { except = []; } - return new TokenRange(new TokenRangeAccess(f, to, except)); - }; - TokenRange.AllTokens = function () { - return new TokenRange(new TokenAllAccess()); - }; - TokenRange.prototype.GetTokens = function () { - return this.tokenAccess.GetTokens(); - }; - TokenRange.prototype.Contains = function (token) { - return this.tokenAccess.Contains(token); - }; - TokenRange.prototype.toString = function () { - return this.tokenAccess.toString(); - }; - TokenRange.Any = TokenRange.AllTokens(); - TokenRange.AnyIncludingMultilineComments = TokenRange.FromTokens(TokenRange.Any.GetTokens().concat([3])); - TokenRange.Keywords = TokenRange.FromRange(66, 125); - TokenRange.BinaryOperators = TokenRange.FromRange(24, 64); - TokenRange.BinaryKeywordOperators = TokenRange.FromTokens([86, 87, 125]); - TokenRange.UnaryPrefixOperators = TokenRange.FromTokens([38, 39, 47, 46]); - TokenRange.UnaryPrefixExpressions = TokenRange.FromTokens([7, 65, 16, 18, 14, 93, 88]); - TokenRange.UnaryPreincrementExpressions = TokenRange.FromTokens([65, 16, 93, 88]); - TokenRange.UnaryPostincrementExpressions = TokenRange.FromTokens([65, 17, 19, 88]); - TokenRange.UnaryPredecrementExpressions = TokenRange.FromTokens([65, 16, 93, 88]); - TokenRange.UnaryPostdecrementExpressions = TokenRange.FromTokens([65, 17, 19, 88]); - TokenRange.Comments = TokenRange.FromTokens([2, 3]); - TokenRange.TypeNames = TokenRange.FromTokens([65, 119, 121, 113, 122, 99, 112]); - return TokenRange; - })(); - Shared.TokenRange = TokenRange; - })(Shared = formatting.Shared || (formatting.Shared = {})); - })(formatting = ts.formatting || (ts.formatting = {})); -})(ts || (ts = {})); -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -/// -/// -/// -/// -/// -/// -/// -/// -/// -/// -/// -/// -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -/// -var ts; -(function (ts) { - var formatting; - (function (formatting) { - var RulesProvider = (function () { - function RulesProvider() { - this.globalRules = new formatting.Rules(); - } - RulesProvider.prototype.getRuleName = function (rule) { - return this.globalRules.getRuleName(rule); - }; - RulesProvider.prototype.getRuleByName = function (name) { - return this.globalRules[name]; - }; - RulesProvider.prototype.getRulesMap = function () { - return this.rulesMap; - }; - RulesProvider.prototype.ensureUpToDate = function (options) { - if (this.options == null || !ts.compareDataObjects(this.options, options)) { - var activeRules = this.createActiveRules(options); - var rulesMap = formatting.RulesMap.create(activeRules); - this.activeRules = activeRules; - this.rulesMap = rulesMap; - this.options = ts.clone(options); - } - }; - RulesProvider.prototype.createActiveRules = function (options) { - var rules = this.globalRules.HighPriorityCommonRules.slice(0); - if (options.InsertSpaceAfterCommaDelimiter) { - rules.push(this.globalRules.SpaceAfterComma); - } - else { - rules.push(this.globalRules.NoSpaceAfterComma); - } - if (options.InsertSpaceAfterFunctionKeywordForAnonymousFunctions) { - rules.push(this.globalRules.SpaceAfterAnonymousFunctionKeyword); - } - else { - rules.push(this.globalRules.NoSpaceAfterAnonymousFunctionKeyword); - } - if (options.InsertSpaceAfterKeywordsInControlFlowStatements) { - rules.push(this.globalRules.SpaceAfterKeywordInControl); - } - else { - rules.push(this.globalRules.NoSpaceAfterKeywordInControl); - } - if (options.InsertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis) { - rules.push(this.globalRules.SpaceAfterOpenParen); - rules.push(this.globalRules.SpaceBeforeCloseParen); - rules.push(this.globalRules.NoSpaceBetweenParens); - } - else { - rules.push(this.globalRules.NoSpaceAfterOpenParen); - rules.push(this.globalRules.NoSpaceBeforeCloseParen); - rules.push(this.globalRules.NoSpaceBetweenParens); - } - if (options.InsertSpaceAfterSemicolonInForStatements) { - rules.push(this.globalRules.SpaceAfterSemicolonInFor); - } - else { - rules.push(this.globalRules.NoSpaceAfterSemicolonInFor); - } - if (options.InsertSpaceBeforeAndAfterBinaryOperators) { - rules.push(this.globalRules.SpaceBeforeBinaryOperator); - rules.push(this.globalRules.SpaceAfterBinaryOperator); - } - else { - rules.push(this.globalRules.NoSpaceBeforeBinaryOperator); - rules.push(this.globalRules.NoSpaceAfterBinaryOperator); - } - if (options.PlaceOpenBraceOnNewLineForControlBlocks) { - rules.push(this.globalRules.NewLineBeforeOpenBraceInControl); - } - if (options.PlaceOpenBraceOnNewLineForFunctions) { - rules.push(this.globalRules.NewLineBeforeOpenBraceInFunction); - rules.push(this.globalRules.NewLineBeforeOpenBraceInTypeScriptDeclWithBlock); - } - rules = rules.concat(this.globalRules.LowPriorityCommonRules); - return rules; - }; - return RulesProvider; - })(); - formatting.RulesProvider = RulesProvider; - })(formatting = ts.formatting || (ts.formatting = {})); -})(ts || (ts = {})); -/// -/// -/// -/// -var ts; -(function (ts) { - var formatting; - (function (formatting) { - var Constants; - (function (Constants) { - Constants[Constants["Unknown"] = -1] = "Unknown"; - })(Constants || (Constants = {})); - function formatOnEnter(position, sourceFile, rulesProvider, options) { - var line = sourceFile.getLineAndCharacterOfPosition(position).line; - if (line === 0) { - return []; - } - var span = { - pos: ts.getStartPositionOfLine(line - 1, sourceFile), - end: ts.getEndLinePosition(line, sourceFile) + 1 - }; - return formatSpan(span, sourceFile, options, rulesProvider, 2); - } - formatting.formatOnEnter = formatOnEnter; - function formatOnSemicolon(position, sourceFile, rulesProvider, options) { - return formatOutermostParent(position, 22, sourceFile, options, rulesProvider, 3); - } - formatting.formatOnSemicolon = formatOnSemicolon; - function formatOnClosingCurly(position, sourceFile, rulesProvider, options) { - return formatOutermostParent(position, 15, sourceFile, options, rulesProvider, 4); - } - formatting.formatOnClosingCurly = formatOnClosingCurly; - function formatDocument(sourceFile, rulesProvider, options) { - var span = { - pos: 0, - end: sourceFile.text.length - }; - return formatSpan(span, sourceFile, options, rulesProvider, 0); - } - formatting.formatDocument = formatDocument; - function formatSelection(start, end, sourceFile, rulesProvider, options) { - var span = { - pos: ts.getLineStartPositionForPosition(start, sourceFile), - end: end - }; - return formatSpan(span, sourceFile, options, rulesProvider, 1); - } - formatting.formatSelection = formatSelection; - function formatOutermostParent(position, expectedLastToken, sourceFile, options, rulesProvider, requestKind) { - var parent = findOutermostParent(position, expectedLastToken, sourceFile); - if (!parent) { - return []; - } - var span = { - pos: ts.getLineStartPositionForPosition(parent.getStart(sourceFile), sourceFile), - end: parent.end - }; - return formatSpan(span, sourceFile, options, rulesProvider, requestKind); - } - function findOutermostParent(position, expectedTokenKind, sourceFile) { - var precedingToken = ts.findPrecedingToken(position, sourceFile); - if (!precedingToken || - precedingToken.kind !== expectedTokenKind || - position !== precedingToken.getEnd()) { - return undefined; - } - var current = precedingToken; - while (current && - current.parent && - current.parent.end === precedingToken.end && - !isListElement(current.parent, current)) { - current = current.parent; - } - return current; - } - function isListElement(parent, node) { - switch (parent.kind) { - case 198: - case 199: - return ts.rangeContainsRange(parent.members, node); - case 202: - var body = parent.body; - return body && body.kind === 176 && ts.rangeContainsRange(body.statements, node); - case 224: - case 176: - case 203: - return ts.rangeContainsRange(parent.statements, node); - case 220: - return ts.rangeContainsRange(parent.block.statements, node); - } - return false; - } - function findEnclosingNode(range, sourceFile) { - return find(sourceFile); - function find(n) { - var candidate = ts.forEachChild(n, function (c) { return ts.startEndContainsRange(c.getStart(sourceFile), c.end, range) && c; }); - if (candidate) { - var result = find(candidate); - if (result) { - return result; - } - } - return n; - } - } - function prepareRangeContainsErrorFunction(errors, originalRange) { - if (!errors.length) { - return rangeHasNoErrors; - } - var sorted = errors - .filter(function (d) { return ts.rangeOverlapsWithStartEnd(originalRange, d.start, d.start + d.length); }) - .sort(function (e1, e2) { return e1.start - e2.start; }); - if (!sorted.length) { - return rangeHasNoErrors; - } - var index = 0; - return function (r) { - while (true) { - if (index >= sorted.length) { - return false; - } - var error = sorted[index]; - if (r.end <= error.start) { - return false; - } - if (ts.startEndOverlapsWithStartEnd(r.pos, r.end, error.start, error.start + error.length)) { - return true; - } - index++; - } - }; - function rangeHasNoErrors(r) { - return false; - } - } - function getScanStartPosition(enclosingNode, originalRange, sourceFile) { - var start = enclosingNode.getStart(sourceFile); - if (start === originalRange.pos && enclosingNode.end === originalRange.end) { - return start; - } - var precedingToken = ts.findPrecedingToken(originalRange.pos, sourceFile); - if (!precedingToken) { - return enclosingNode.pos; - } - if (precedingToken.end >= originalRange.pos) { - return enclosingNode.pos; - } - return precedingToken.end; - } - function getOwnOrInheritedDelta(n, options, sourceFile) { - var previousLine = -1; - var childKind = 0; - while (n) { - var line = sourceFile.getLineAndCharacterOfPosition(n.getStart(sourceFile)).line; - if (previousLine !== -1 && line !== previousLine) { - break; - } - if (formatting.SmartIndenter.shouldIndentChildNode(n.kind, childKind)) { - return options.IndentSize; - } - previousLine = line; - childKind = n.kind; - n = n.parent; - } - return 0; - } - function formatSpan(originalRange, sourceFile, options, rulesProvider, requestKind) { - var rangeContainsError = prepareRangeContainsErrorFunction(sourceFile.parseDiagnostics, originalRange); - var formattingContext = new formatting.FormattingContext(sourceFile, requestKind); - var enclosingNode = findEnclosingNode(originalRange, sourceFile); - var formattingScanner = formatting.getFormattingScanner(sourceFile, getScanStartPosition(enclosingNode, originalRange, sourceFile), originalRange.end); - var initialIndentation = formatting.SmartIndenter.getIndentationForNode(enclosingNode, originalRange, sourceFile, options); - var previousRangeHasError; - var previousRange; - var previousParent; - var previousRangeStartLine; - var edits = []; - formattingScanner.advance(); - if (formattingScanner.isOnToken()) { - var startLine = sourceFile.getLineAndCharacterOfPosition(enclosingNode.getStart(sourceFile)).line; - var delta = getOwnOrInheritedDelta(enclosingNode, options, sourceFile); - processNode(enclosingNode, enclosingNode, startLine, initialIndentation, delta); - } - formattingScanner.close(); - return edits; - function tryComputeIndentationForListItem(startPos, endPos, parentStartLine, range, inheritedIndentation) { - if (ts.rangeOverlapsWithStartEnd(range, startPos, endPos)) { - if (inheritedIndentation !== -1) { - return inheritedIndentation; - } - } - else { - var startLine = sourceFile.getLineAndCharacterOfPosition(startPos).line; - var startLinePosition = ts.getLineStartPositionForPosition(startPos, sourceFile); - var column = formatting.SmartIndenter.findFirstNonWhitespaceColumn(startLinePosition, startPos, sourceFile, options); - if (startLine !== parentStartLine || startPos === column) { - return column; - } - } - return -1; - } - function computeIndentation(node, startLine, inheritedIndentation, parent, parentDynamicIndentation, effectiveParentStartLine) { - var indentation = inheritedIndentation; - if (indentation === -1) { - if (isSomeBlock(node.kind)) { - if (isSomeBlock(parent.kind) || - parent.kind === 224 || - parent.kind === 217 || - parent.kind === 218) { - indentation = parentDynamicIndentation.getIndentation() + parentDynamicIndentation.getDelta(); - } - else { - indentation = parentDynamicIndentation.getIndentation(); - } - } - else { - if (formatting.SmartIndenter.childStartsOnTheSameLineWithElseInIfStatement(parent, node, startLine, sourceFile)) { - indentation = parentDynamicIndentation.getIndentation(); - } - else { - indentation = parentDynamicIndentation.getIndentation() + parentDynamicIndentation.getDelta(); - } - } - } - var delta = formatting.SmartIndenter.shouldIndentChildNode(node.kind, 0) ? options.IndentSize : 0; - if (effectiveParentStartLine === startLine) { - indentation = parentDynamicIndentation.getIndentation(); - delta = Math.min(options.IndentSize, parentDynamicIndentation.getDelta() + delta); - } - return { - indentation: indentation, - delta: delta - }; - } - function getFirstNonDecoratorTokenOfNode(node) { - if (node.modifiers && node.modifiers.length) { - return node.modifiers[0].kind; - } - switch (node.kind) { - case 198: return 69; - case 199: return 104; - case 197: return 83; - case 201: return 201; - case 136: return 116; - case 137: return 120; - case 134: - if (node.asteriskToken) { - return 35; - } - case 132: - case 129: - return node.name.kind; - } - } - function getDynamicIndentation(node, nodeStartLine, indentation, delta) { - return { - getIndentationForComment: function (kind) { - switch (kind) { - case 15: - case 19: - return indentation + delta; - } - return indentation; - }, - getIndentationForToken: function (line, kind) { - if (nodeStartLine !== line && node.decorators) { - if (kind === getFirstNonDecoratorTokenOfNode(node)) { - return indentation; - } - } - switch (kind) { - case 14: - case 15: - case 18: - case 19: - case 76: - case 100: - case 52: - return indentation; - default: - return nodeStartLine !== line ? indentation + delta : indentation; - } - }, - getIndentation: function () { return indentation; }, - getDelta: function () { return delta; }, - recomputeIndentation: function (lineAdded) { - if (node.parent && formatting.SmartIndenter.shouldIndentChildNode(node.parent.kind, node.kind)) { - if (lineAdded) { - indentation += options.IndentSize; - } - else { - indentation -= options.IndentSize; - } - if (formatting.SmartIndenter.shouldIndentChildNode(node.kind, 0)) { - delta = options.IndentSize; - } - else { - delta = 0; - } - } - } - }; - } - function processNode(node, contextNode, nodeStartLine, indentation, delta) { - if (!ts.rangeOverlapsWithStartEnd(originalRange, node.getStart(sourceFile), node.getEnd())) { - return; - } - var nodeDynamicIndentation = getDynamicIndentation(node, nodeStartLine, indentation, delta); - var childContextNode = contextNode; - ts.forEachChild(node, function (child) { - processChildNode(child, -1, node, nodeDynamicIndentation, nodeStartLine, false); - }, function (nodes) { - processChildNodes(nodes, node, nodeStartLine, nodeDynamicIndentation); - }); - while (formattingScanner.isOnToken()) { - var tokenInfo = formattingScanner.readTokenInfo(node); - if (tokenInfo.token.end > node.end) { - break; - } - consumeTokenAndAdvanceScanner(tokenInfo, node, nodeDynamicIndentation); - } - function processChildNode(child, inheritedIndentation, parent, parentDynamicIndentation, parentStartLine, isListItem) { - var childStartPos = child.getStart(sourceFile); - var childStart = sourceFile.getLineAndCharacterOfPosition(childStartPos); - var childIndentationAmount = -1; - if (isListItem) { - childIndentationAmount = tryComputeIndentationForListItem(childStartPos, child.end, parentStartLine, originalRange, inheritedIndentation); - if (childIndentationAmount !== -1) { - inheritedIndentation = childIndentationAmount; - } - } - if (!ts.rangeOverlapsWithStartEnd(originalRange, child.pos, child.end)) { - return inheritedIndentation; - } - if (child.getFullWidth() === 0) { - return inheritedIndentation; - } - while (formattingScanner.isOnToken()) { - var tokenInfo = formattingScanner.readTokenInfo(node); - if (tokenInfo.token.end > childStartPos) { - break; - } - consumeTokenAndAdvanceScanner(tokenInfo, node, parentDynamicIndentation); - } - if (!formattingScanner.isOnToken()) { - return inheritedIndentation; - } - if (ts.isToken(child)) { - var tokenInfo = formattingScanner.readTokenInfo(child); - ts.Debug.assert(tokenInfo.token.end === child.end); - consumeTokenAndAdvanceScanner(tokenInfo, node, parentDynamicIndentation); - return inheritedIndentation; - } - var childIndentation = computeIndentation(child, childStart.line, childIndentationAmount, node, parentDynamicIndentation, parentStartLine); - processNode(child, childContextNode, childStart.line, childIndentation.indentation, childIndentation.delta); - childContextNode = node; - return inheritedIndentation; - } - function processChildNodes(nodes, parent, parentStartLine, parentDynamicIndentation) { - var listStartToken = getOpenTokenForList(parent, nodes); - var listEndToken = getCloseTokenForOpenToken(listStartToken); - var listDynamicIndentation = parentDynamicIndentation; - var startLine = parentStartLine; - if (listStartToken !== 0) { - while (formattingScanner.isOnToken()) { - var tokenInfo = formattingScanner.readTokenInfo(parent); - if (tokenInfo.token.end > nodes.pos) { - break; - } - else if (tokenInfo.token.kind === listStartToken) { - startLine = sourceFile.getLineAndCharacterOfPosition(tokenInfo.token.pos).line; - var indentation_1 = computeIndentation(tokenInfo.token, startLine, -1, parent, parentDynamicIndentation, startLine); - listDynamicIndentation = getDynamicIndentation(parent, parentStartLine, indentation_1.indentation, indentation_1.delta); - consumeTokenAndAdvanceScanner(tokenInfo, parent, listDynamicIndentation); - } - else { - consumeTokenAndAdvanceScanner(tokenInfo, parent, parentDynamicIndentation); - } - } - } - var inheritedIndentation = -1; - for (var _i = 0, _n = nodes.length; _i < _n; _i++) { - var child = nodes[_i]; - inheritedIndentation = processChildNode(child, inheritedIndentation, node, listDynamicIndentation, startLine, true); - } - if (listEndToken !== 0) { - if (formattingScanner.isOnToken()) { - var tokenInfo = formattingScanner.readTokenInfo(parent); - if (tokenInfo.token.kind === listEndToken && ts.rangeContainsRange(parent, tokenInfo.token)) { - consumeTokenAndAdvanceScanner(tokenInfo, parent, listDynamicIndentation); - } - } - } - } - function consumeTokenAndAdvanceScanner(currentTokenInfo, parent, dynamicIndentation) { - ts.Debug.assert(ts.rangeContainsRange(parent, currentTokenInfo.token)); - var lastTriviaWasNewLine = formattingScanner.lastTrailingTriviaWasNewLine(); - var indentToken = false; - if (currentTokenInfo.leadingTrivia) { - processTrivia(currentTokenInfo.leadingTrivia, parent, childContextNode, dynamicIndentation); - } - var lineAdded; - var isTokenInRange = ts.rangeContainsRange(originalRange, currentTokenInfo.token); - var tokenStart = sourceFile.getLineAndCharacterOfPosition(currentTokenInfo.token.pos); - if (isTokenInRange) { - var rangeHasError = rangeContainsError(currentTokenInfo.token); - var prevStartLine = previousRangeStartLine; - lineAdded = processRange(currentTokenInfo.token, tokenStart, parent, childContextNode, dynamicIndentation); - if (rangeHasError) { - indentToken = false; - } - else { - if (lineAdded !== undefined) { - indentToken = lineAdded; - } - else { - indentToken = lastTriviaWasNewLine && tokenStart.line !== prevStartLine; - } - } - } - if (currentTokenInfo.trailingTrivia) { - processTrivia(currentTokenInfo.trailingTrivia, parent, childContextNode, dynamicIndentation); - } - if (indentToken) { - var indentNextTokenOrTrivia = true; - if (currentTokenInfo.leadingTrivia) { - for (var _i = 0, _a = currentTokenInfo.leadingTrivia, _n = _a.length; _i < _n; _i++) { - var triviaItem = _a[_i]; - if (!ts.rangeContainsRange(originalRange, triviaItem)) { - continue; - } - var triviaStartLine = sourceFile.getLineAndCharacterOfPosition(triviaItem.pos).line; - switch (triviaItem.kind) { - case 3: - var commentIndentation = dynamicIndentation.getIndentationForComment(currentTokenInfo.token.kind); - indentMultilineComment(triviaItem, commentIndentation, !indentNextTokenOrTrivia); - indentNextTokenOrTrivia = false; - break; - case 2: - if (indentNextTokenOrTrivia) { - var commentIndentation_1 = dynamicIndentation.getIndentationForComment(currentTokenInfo.token.kind); - insertIndentation(triviaItem.pos, commentIndentation_1, false); - indentNextTokenOrTrivia = false; - } - break; - case 4: - indentNextTokenOrTrivia = true; - break; - } - } - } - if (isTokenInRange && !rangeContainsError(currentTokenInfo.token)) { - var tokenIndentation = dynamicIndentation.getIndentationForToken(tokenStart.line, currentTokenInfo.token.kind); - insertIndentation(currentTokenInfo.token.pos, tokenIndentation, lineAdded); - } - } - formattingScanner.advance(); - childContextNode = parent; - } - } - function processTrivia(trivia, parent, contextNode, dynamicIndentation) { - for (var _i = 0, _n = trivia.length; _i < _n; _i++) { - var triviaItem = trivia[_i]; - if (ts.isComment(triviaItem.kind) && ts.rangeContainsRange(originalRange, triviaItem)) { - var triviaItemStart = sourceFile.getLineAndCharacterOfPosition(triviaItem.pos); - processRange(triviaItem, triviaItemStart, parent, contextNode, dynamicIndentation); - } - } - } - function processRange(range, rangeStart, parent, contextNode, dynamicIndentation) { - var rangeHasError = rangeContainsError(range); - var lineAdded; - if (!rangeHasError && !previousRangeHasError) { - if (!previousRange) { - var originalStart = sourceFile.getLineAndCharacterOfPosition(originalRange.pos); - trimTrailingWhitespacesForLines(originalStart.line, rangeStart.line); - } - else { - lineAdded = - processPair(range, rangeStart.line, parent, previousRange, previousRangeStartLine, previousParent, contextNode, dynamicIndentation); - } - } - previousRange = range; - previousParent = parent; - previousRangeStartLine = rangeStart.line; - previousRangeHasError = rangeHasError; - return lineAdded; - } - function processPair(currentItem, currentStartLine, currentParent, previousItem, previousStartLine, previousParent, contextNode, dynamicIndentation) { - formattingContext.updateContext(previousItem, previousParent, currentItem, currentParent, contextNode); - var rule = rulesProvider.getRulesMap().GetRule(formattingContext); - var trimTrailingWhitespaces; - var lineAdded; - if (rule) { - applyRuleEdits(rule, previousItem, previousStartLine, currentItem, currentStartLine); - if (rule.Operation.Action & (2 | 8) && currentStartLine !== previousStartLine) { - lineAdded = false; - if (currentParent.getStart(sourceFile) === currentItem.pos) { - dynamicIndentation.recomputeIndentation(false); - } - } - else if (rule.Operation.Action & 4 && currentStartLine === previousStartLine) { - lineAdded = true; - if (currentParent.getStart(sourceFile) === currentItem.pos) { - dynamicIndentation.recomputeIndentation(true); - } - } - trimTrailingWhitespaces = - (rule.Operation.Action & (4 | 2)) && - rule.Flag !== 1; - } - else { - trimTrailingWhitespaces = true; - } - if (currentStartLine !== previousStartLine && trimTrailingWhitespaces) { - trimTrailingWhitespacesForLines(previousStartLine, currentStartLine, previousItem); - } - return lineAdded; - } - function insertIndentation(pos, indentation, lineAdded) { - var indentationString = getIndentationString(indentation, options); - if (lineAdded) { - recordReplace(pos, 0, indentationString); - } - else { - var tokenStart = sourceFile.getLineAndCharacterOfPosition(pos); - if (indentation !== tokenStart.character) { - var startLinePosition = ts.getStartPositionOfLine(tokenStart.line, sourceFile); - recordReplace(startLinePosition, tokenStart.character, indentationString); - } - } - } - function indentMultilineComment(commentRange, indentation, firstLineIsIndented) { - var startLine = sourceFile.getLineAndCharacterOfPosition(commentRange.pos).line; - var endLine = sourceFile.getLineAndCharacterOfPosition(commentRange.end).line; - var parts; - if (startLine === endLine) { - if (!firstLineIsIndented) { - insertIndentation(commentRange.pos, indentation, false); - } - return; - } - else { - parts = []; - var startPos = commentRange.pos; - for (var line = startLine; line < endLine; ++line) { - var endOfLine = ts.getEndLinePosition(line, sourceFile); - parts.push({ pos: startPos, end: endOfLine }); - startPos = ts.getStartPositionOfLine(line + 1, sourceFile); - } - parts.push({ pos: startPos, end: commentRange.end }); - } - var startLinePos = ts.getStartPositionOfLine(startLine, sourceFile); - var nonWhitespaceColumnInFirstPart = formatting.SmartIndenter.findFirstNonWhitespaceCharacterAndColumn(startLinePos, parts[0].pos, sourceFile, options); - if (indentation === nonWhitespaceColumnInFirstPart.column) { - return; - } - var startIndex = 0; - if (firstLineIsIndented) { - startIndex = 1; - startLine++; - } - var delta = indentation - nonWhitespaceColumnInFirstPart.column; - for (var i = startIndex, len = parts.length; i < len; ++i, ++startLine) { - var startLinePos_1 = ts.getStartPositionOfLine(startLine, sourceFile); - var nonWhitespaceCharacterAndColumn = i === 0 - ? nonWhitespaceColumnInFirstPart - : formatting.SmartIndenter.findFirstNonWhitespaceCharacterAndColumn(parts[i].pos, parts[i].end, sourceFile, options); - var newIndentation = nonWhitespaceCharacterAndColumn.column + delta; - if (newIndentation > 0) { - var indentationString = getIndentationString(newIndentation, options); - recordReplace(startLinePos_1, nonWhitespaceCharacterAndColumn.character, indentationString); - } - else { - recordDelete(startLinePos_1, nonWhitespaceCharacterAndColumn.character); - } - } - } - function trimTrailingWhitespacesForLines(line1, line2, range) { - for (var line = line1; line < line2; ++line) { - var lineStartPosition = ts.getStartPositionOfLine(line, sourceFile); - var lineEndPosition = ts.getEndLinePosition(line, sourceFile); - if (range && ts.isComment(range.kind) && range.pos <= lineEndPosition && range.end > lineEndPosition) { - continue; - } - var pos = lineEndPosition; - while (pos >= lineStartPosition && ts.isWhiteSpace(sourceFile.text.charCodeAt(pos))) { - pos--; - } - if (pos !== lineEndPosition) { - ts.Debug.assert(pos === lineStartPosition || !ts.isWhiteSpace(sourceFile.text.charCodeAt(pos))); - recordDelete(pos + 1, lineEndPosition - pos); - } - } - } - function newTextChange(start, len, newText) { - return { span: ts.createTextSpan(start, len), newText: newText }; - } - function recordDelete(start, len) { - if (len) { - edits.push(newTextChange(start, len, "")); - } - } - function recordReplace(start, len, newText) { - if (len || newText) { - edits.push(newTextChange(start, len, newText)); - } - } - function applyRuleEdits(rule, previousRange, previousStartLine, currentRange, currentStartLine) { - var between; - switch (rule.Operation.Action) { - case 1: - return; - case 8: - if (previousRange.end !== currentRange.pos) { - recordDelete(previousRange.end, currentRange.pos - previousRange.end); - } - break; - case 4: - if (rule.Flag !== 1 && previousStartLine !== currentStartLine) { - return; - } - var lineDelta = currentStartLine - previousStartLine; - if (lineDelta !== 1) { - recordReplace(previousRange.end, currentRange.pos - previousRange.end, options.NewLineCharacter); - } - break; - case 2: - if (rule.Flag !== 1 && previousStartLine !== currentStartLine) { - return; - } - var posDelta = currentRange.pos - previousRange.end; - if (posDelta !== 1 || sourceFile.text.charCodeAt(previousRange.end) !== 32) { - recordReplace(previousRange.end, currentRange.pos - previousRange.end, " "); - } - break; - } - } - } - function isSomeBlock(kind) { - switch (kind) { - case 176: - case 203: - return true; - } - return false; - } - function getOpenTokenForList(node, list) { - switch (node.kind) { - case 135: - case 197: - case 162: - case 134: - case 133: - case 163: - if (node.typeParameters === list) { - return 24; - } - else if (node.parameters === list) { - return 16; - } - break; - case 157: - case 158: - if (node.typeArguments === list) { - return 24; - } - else if (node.arguments === list) { - return 16; - } - break; - case 141: - if (node.typeArguments === list) { - return 24; - } - } - return 0; - } - function getCloseTokenForOpenToken(kind) { - switch (kind) { - case 16: - return 17; - case 24: - return 25; - } - return 0; - } - var internedSizes; - var internedTabsIndentation; - var internedSpacesIndentation; - function getIndentationString(indentation, options) { - var resetInternedStrings = !internedSizes || (internedSizes.tabSize !== options.TabSize || internedSizes.indentSize !== options.IndentSize); - if (resetInternedStrings) { - internedSizes = { tabSize: options.TabSize, indentSize: options.IndentSize }; - internedTabsIndentation = internedSpacesIndentation = undefined; - } - if (!options.ConvertTabsToSpaces) { - var tabs = Math.floor(indentation / options.TabSize); - var spaces = indentation - tabs * options.TabSize; - var tabString; - if (!internedTabsIndentation) { - internedTabsIndentation = []; - } - if (internedTabsIndentation[tabs] === undefined) { - internedTabsIndentation[tabs] = tabString = repeat('\t', tabs); - } - else { - tabString = internedTabsIndentation[tabs]; - } - return spaces ? tabString + repeat(" ", spaces) : tabString; - } - else { - var spacesString; - var quotient = Math.floor(indentation / options.IndentSize); - var remainder = indentation % options.IndentSize; - if (!internedSpacesIndentation) { - internedSpacesIndentation = []; - } - if (internedSpacesIndentation[quotient] === undefined) { - spacesString = repeat(" ", options.IndentSize * quotient); - internedSpacesIndentation[quotient] = spacesString; - } - else { - spacesString = internedSpacesIndentation[quotient]; - } - return remainder ? spacesString + repeat(" ", remainder) : spacesString; - } - function repeat(value, count) { - var s = ""; - for (var i = 0; i < count; ++i) { - s += value; - } - return s; - } - } - formatting.getIndentationString = getIndentationString; - })(formatting = ts.formatting || (ts.formatting = {})); -})(ts || (ts = {})); -/// -var ts; -(function (ts) { - var formatting; - (function (formatting) { - var SmartIndenter; - (function (SmartIndenter) { - var Value; - (function (Value) { - Value[Value["Unknown"] = -1] = "Unknown"; - })(Value || (Value = {})); - function getIndentation(position, sourceFile, options) { - if (position > sourceFile.text.length) { - return 0; - } - var precedingToken = ts.findPrecedingToken(position, sourceFile); - if (!precedingToken) { - return 0; - } - var precedingTokenIsLiteral = precedingToken.kind === 8 || - precedingToken.kind === 9 || - precedingToken.kind === 10 || - precedingToken.kind === 11 || - precedingToken.kind === 12 || - precedingToken.kind === 13; - if (precedingTokenIsLiteral && precedingToken.getStart(sourceFile) <= position && precedingToken.end > position) { - return 0; - } - var lineAtPosition = sourceFile.getLineAndCharacterOfPosition(position).line; - if (precedingToken.kind === 23 && precedingToken.parent.kind !== 169) { - var actualIndentation = getActualIndentationForListItemBeforeComma(precedingToken, sourceFile, options); - if (actualIndentation !== -1) { - return actualIndentation; - } - } - var previous; - var current = precedingToken; - var currentStart; - var indentationDelta; - while (current) { - if (ts.positionBelongsToNode(current, position, sourceFile) && shouldIndentChildNode(current.kind, previous ? previous.kind : 0)) { - currentStart = getStartLineAndCharacterForNode(current, sourceFile); - if (nextTokenIsCurlyBraceOnSameLineAsCursor(precedingToken, current, lineAtPosition, sourceFile)) { - indentationDelta = 0; - } - else { - indentationDelta = lineAtPosition !== currentStart.line ? options.IndentSize : 0; - } - break; - } - var actualIndentation = getActualIndentationForListItem(current, sourceFile, options); - if (actualIndentation !== -1) { - return actualIndentation; - } - previous = current; - current = current.parent; - } - if (!current) { - return 0; - } - return getIndentationForNodeWorker(current, currentStart, undefined, indentationDelta, sourceFile, options); - } - SmartIndenter.getIndentation = getIndentation; - function getIndentationForNode(n, ignoreActualIndentationRange, sourceFile, options) { - var start = sourceFile.getLineAndCharacterOfPosition(n.getStart(sourceFile)); - return getIndentationForNodeWorker(n, start, ignoreActualIndentationRange, 0, sourceFile, options); - } - SmartIndenter.getIndentationForNode = getIndentationForNode; - function getIndentationForNodeWorker(current, currentStart, ignoreActualIndentationRange, indentationDelta, sourceFile, options) { - var parent = current.parent; - var parentStart; - while (parent) { - var useActualIndentation = true; - if (ignoreActualIndentationRange) { - var start = current.getStart(sourceFile); - useActualIndentation = start < ignoreActualIndentationRange.pos || start > ignoreActualIndentationRange.end; - } - if (useActualIndentation) { - var actualIndentation = getActualIndentationForListItem(current, sourceFile, options); - if (actualIndentation !== -1) { - return actualIndentation + indentationDelta; - } - } - parentStart = getParentStart(parent, current, sourceFile); - var parentAndChildShareLine = parentStart.line === currentStart.line || - childStartsOnTheSameLineWithElseInIfStatement(parent, current, currentStart.line, sourceFile); - if (useActualIndentation) { - var actualIndentation = getActualIndentationForNode(current, parent, currentStart, parentAndChildShareLine, sourceFile, options); - if (actualIndentation !== -1) { - return actualIndentation + indentationDelta; - } - } - if (shouldIndentChildNode(parent.kind, current.kind) && !parentAndChildShareLine) { - indentationDelta += options.IndentSize; - } - current = parent; - currentStart = parentStart; - parent = current.parent; - } - return indentationDelta; - } - function getParentStart(parent, child, sourceFile) { - var containingList = getContainingList(child, sourceFile); - if (containingList) { - return sourceFile.getLineAndCharacterOfPosition(containingList.pos); - } - return sourceFile.getLineAndCharacterOfPosition(parent.getStart(sourceFile)); - } - function getActualIndentationForListItemBeforeComma(commaToken, sourceFile, options) { - var commaItemInfo = ts.findListItemInfo(commaToken); - if (commaItemInfo && commaItemInfo.listItemIndex > 0) { - return deriveActualIndentationFromList(commaItemInfo.list.getChildren(), commaItemInfo.listItemIndex - 1, sourceFile, options); - } - else { - return -1; - } - } - function getActualIndentationForNode(current, parent, currentLineAndChar, parentAndChildShareLine, sourceFile, options) { - var useActualIndentation = (ts.isDeclaration(current) || ts.isStatement(current)) && - (parent.kind === 224 || !parentAndChildShareLine); - if (!useActualIndentation) { - return -1; - } - return findColumnForFirstNonWhitespaceCharacterInLine(currentLineAndChar, sourceFile, options); - } - function nextTokenIsCurlyBraceOnSameLineAsCursor(precedingToken, current, lineAtPosition, sourceFile) { - var nextToken = ts.findNextToken(precedingToken, current); - if (!nextToken) { - return false; - } - if (nextToken.kind === 14) { - return true; - } - else if (nextToken.kind === 15) { - var nextTokenStartLine = getStartLineAndCharacterForNode(nextToken, sourceFile).line; - return lineAtPosition === nextTokenStartLine; - } - return false; - } - function getStartLineAndCharacterForNode(n, sourceFile) { - return sourceFile.getLineAndCharacterOfPosition(n.getStart(sourceFile)); - } - function childStartsOnTheSameLineWithElseInIfStatement(parent, child, childStartLine, sourceFile) { - if (parent.kind === 180 && parent.elseStatement === child) { - var elseKeyword = ts.findChildOfKind(parent, 76, sourceFile); - ts.Debug.assert(elseKeyword !== undefined); - var elseKeywordStartLine = getStartLineAndCharacterForNode(elseKeyword, sourceFile).line; - return elseKeywordStartLine === childStartLine; - } - return false; - } - SmartIndenter.childStartsOnTheSameLineWithElseInIfStatement = childStartsOnTheSameLineWithElseInIfStatement; - function getContainingList(node, sourceFile) { - if (node.parent) { - switch (node.parent.kind) { - case 141: - if (node.parent.typeArguments && - ts.rangeContainsStartEnd(node.parent.typeArguments, node.getStart(sourceFile), node.getEnd())) { - return node.parent.typeArguments; - } - break; - case 154: - return node.parent.properties; - case 153: - return node.parent.elements; - case 197: - case 162: - case 163: - case 134: - case 133: - case 138: - case 139: { - var start = node.getStart(sourceFile); - if (node.parent.typeParameters && - ts.rangeContainsStartEnd(node.parent.typeParameters, start, node.getEnd())) { - return node.parent.typeParameters; - } - if (ts.rangeContainsStartEnd(node.parent.parameters, start, node.getEnd())) { - return node.parent.parameters; - } - break; - } - case 158: - case 157: { - var start = node.getStart(sourceFile); - if (node.parent.typeArguments && - ts.rangeContainsStartEnd(node.parent.typeArguments, start, node.getEnd())) { - return node.parent.typeArguments; - } - if (node.parent.arguments && - ts.rangeContainsStartEnd(node.parent.arguments, start, node.getEnd())) { - return node.parent.arguments; - } - break; - } - } - } - return undefined; - } - function getActualIndentationForListItem(node, sourceFile, options) { - var containingList = getContainingList(node, sourceFile); - return containingList ? getActualIndentationFromList(containingList) : -1; - function getActualIndentationFromList(list) { - var index = ts.indexOf(list, node); - return index !== -1 ? deriveActualIndentationFromList(list, index, sourceFile, options) : -1; - } - } - function deriveActualIndentationFromList(list, index, sourceFile, options) { - ts.Debug.assert(index >= 0 && index < list.length); - var node = list[index]; - var lineAndCharacter = getStartLineAndCharacterForNode(node, sourceFile); - for (var i = index - 1; i >= 0; --i) { - if (list[i].kind === 23) { - continue; - } - var prevEndLine = sourceFile.getLineAndCharacterOfPosition(list[i].end).line; - if (prevEndLine !== lineAndCharacter.line) { - return findColumnForFirstNonWhitespaceCharacterInLine(lineAndCharacter, sourceFile, options); - } - lineAndCharacter = getStartLineAndCharacterForNode(list[i], sourceFile); - } - return -1; - } - function findColumnForFirstNonWhitespaceCharacterInLine(lineAndCharacter, sourceFile, options) { - var lineStart = sourceFile.getPositionOfLineAndCharacter(lineAndCharacter.line, 0); - return findFirstNonWhitespaceColumn(lineStart, lineStart + lineAndCharacter.character, sourceFile, options); - } - function findFirstNonWhitespaceCharacterAndColumn(startPos, endPos, sourceFile, options) { - var character = 0; - var column = 0; - for (var pos = startPos; pos < endPos; ++pos) { - var ch = sourceFile.text.charCodeAt(pos); - if (!ts.isWhiteSpace(ch)) { - break; - } - if (ch === 9) { - column += options.TabSize + (column % options.TabSize); - } - else { - column++; - } - character++; - } - return { column: column, character: character }; - } - SmartIndenter.findFirstNonWhitespaceCharacterAndColumn = findFirstNonWhitespaceCharacterAndColumn; - function findFirstNonWhitespaceColumn(startPos, endPos, sourceFile, options) { - return findFirstNonWhitespaceCharacterAndColumn(startPos, endPos, sourceFile, options).column; - } - SmartIndenter.findFirstNonWhitespaceColumn = findFirstNonWhitespaceColumn; - function nodeContentIsAlwaysIndented(kind) { - switch (kind) { - case 198: - case 199: - case 201: - case 153: - case 176: - case 203: - case 154: - case 145: - case 147: - case 204: - case 218: - case 217: - case 161: - case 157: - case 158: - case 177: - case 195: - case 211: - case 188: - case 170: - case 151: - case 150: - return true; - } - return false; - } - function shouldIndentChildNode(parent, child) { - if (nodeContentIsAlwaysIndented(parent)) { - return true; - } - switch (parent) { - case 181: - case 182: - case 184: - case 185: - case 183: - case 180: - case 197: - case 162: - case 134: - case 133: - case 138: - case 163: - case 135: - case 136: - case 137: - return child !== 176; - default: - return false; - } - } - SmartIndenter.shouldIndentChildNode = shouldIndentChildNode; - })(SmartIndenter = formatting.SmartIndenter || (formatting.SmartIndenter = {})); - })(formatting = ts.formatting || (ts.formatting = {})); -})(ts || (ts = {})); -/// -var __extends = this.__extends || function (d, b) { - for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; - function __() { this.constructor = d; } - __.prototype = b.prototype; - d.prototype = new __(); -}; -/// -/// -/// -/// -/// -/// -/// -/// -/// -var ts; -(function (ts) { - ts.servicesVersion = "0.4"; - var ScriptSnapshot; - (function (ScriptSnapshot) { - var StringScriptSnapshot = (function () { - function StringScriptSnapshot(text) { - this.text = text; - this._lineStartPositions = undefined; - } - StringScriptSnapshot.prototype.getText = function (start, end) { - return this.text.substring(start, end); - }; - StringScriptSnapshot.prototype.getLength = function () { - return this.text.length; - }; - StringScriptSnapshot.prototype.getChangeRange = function (oldSnapshot) { - return undefined; - }; - return StringScriptSnapshot; - })(); - function fromString(text) { - return new StringScriptSnapshot(text); - } - ScriptSnapshot.fromString = fromString; - })(ScriptSnapshot = ts.ScriptSnapshot || (ts.ScriptSnapshot = {})); - var scanner = ts.createScanner(2, true); - var emptyArray = []; - function createNode(kind, pos, end, flags, parent) { - var node = new (ts.getNodeConstructor(kind))(); - node.pos = pos; - node.end = end; - node.flags = flags; - node.parent = parent; - return node; - } - var NodeObject = (function () { - function NodeObject() { - } - NodeObject.prototype.getSourceFile = function () { - return ts.getSourceFileOfNode(this); - }; - NodeObject.prototype.getStart = function (sourceFile) { - return ts.getTokenPosOfNode(this, sourceFile); - }; - NodeObject.prototype.getFullStart = function () { - return this.pos; - }; - NodeObject.prototype.getEnd = function () { - return this.end; - }; - NodeObject.prototype.getWidth = function (sourceFile) { - return this.getEnd() - this.getStart(sourceFile); - }; - NodeObject.prototype.getFullWidth = function () { - return this.end - this.getFullStart(); - }; - NodeObject.prototype.getLeadingTriviaWidth = function (sourceFile) { - return this.getStart(sourceFile) - this.pos; - }; - NodeObject.prototype.getFullText = function (sourceFile) { - return (sourceFile || this.getSourceFile()).text.substring(this.pos, this.end); - }; - NodeObject.prototype.getText = function (sourceFile) { - return (sourceFile || this.getSourceFile()).text.substring(this.getStart(), this.getEnd()); - }; - NodeObject.prototype.addSyntheticNodes = function (nodes, pos, end) { - scanner.setTextPos(pos); - while (pos < end) { - var token = scanner.scan(); - var textPos = scanner.getTextPos(); - nodes.push(createNode(token, pos, textPos, 1024, this)); - pos = textPos; - } - return pos; - }; - NodeObject.prototype.createSyntaxList = function (nodes) { - var list = createNode(225, nodes.pos, nodes.end, 1024, this); - list._children = []; - var pos = nodes.pos; - for (var _i = 0, _n = nodes.length; _i < _n; _i++) { - var node = nodes[_i]; - if (pos < node.pos) { - pos = this.addSyntheticNodes(list._children, pos, node.pos); - } - list._children.push(node); - pos = node.end; - } - if (pos < nodes.end) { - this.addSyntheticNodes(list._children, pos, nodes.end); - } - return list; - }; - NodeObject.prototype.createChildren = function (sourceFile) { - var _this = this; - var children; - if (this.kind >= 126) { - scanner.setText((sourceFile || this.getSourceFile()).text); - children = []; - var pos = this.pos; - var processNode = function (node) { - if (pos < node.pos) { - pos = _this.addSyntheticNodes(children, pos, node.pos); - } - children.push(node); - pos = node.end; - }; - var processNodes = function (nodes) { - if (pos < nodes.pos) { - pos = _this.addSyntheticNodes(children, pos, nodes.pos); - } - children.push(_this.createSyntaxList(nodes)); - pos = nodes.end; - }; - ts.forEachChild(this, processNode, processNodes); - if (pos < this.end) { - this.addSyntheticNodes(children, pos, this.end); - } - scanner.setText(undefined); - } - this._children = children || emptyArray; - }; - NodeObject.prototype.getChildCount = function (sourceFile) { - if (!this._children) - this.createChildren(sourceFile); - return this._children.length; - }; - NodeObject.prototype.getChildAt = function (index, sourceFile) { - if (!this._children) - this.createChildren(sourceFile); - return this._children[index]; - }; - NodeObject.prototype.getChildren = function (sourceFile) { - if (!this._children) - this.createChildren(sourceFile); - return this._children; - }; - NodeObject.prototype.getFirstToken = function (sourceFile) { - var children = this.getChildren(); - for (var _i = 0, _n = children.length; _i < _n; _i++) { - var child = children[_i]; - if (child.kind < 126) { - return child; - } - return child.getFirstToken(sourceFile); - } - }; - NodeObject.prototype.getLastToken = function (sourceFile) { - var children = this.getChildren(sourceFile); - for (var i = children.length - 1; i >= 0; i--) { - var child = children[i]; - if (child.kind < 126) { - return child; - } - return child.getLastToken(sourceFile); - } - }; - return NodeObject; - })(); - var SymbolObject = (function () { - function SymbolObject(flags, name) { - this.flags = flags; - this.name = name; - } - SymbolObject.prototype.getFlags = function () { - return this.flags; - }; - SymbolObject.prototype.getName = function () { - return this.name; - }; - SymbolObject.prototype.getDeclarations = function () { - return this.declarations; - }; - SymbolObject.prototype.getDocumentationComment = function () { - if (this.documentationComment === undefined) { - this.documentationComment = getJsDocCommentsFromDeclarations(this.declarations, this.name, !(this.flags & 4)); - } - return this.documentationComment; - }; - return SymbolObject; - })(); - function getJsDocCommentsFromDeclarations(declarations, name, canUseParsedParamTagComments) { - var documentationComment = []; - var docComments = getJsDocCommentsSeparatedByNewLines(); - ts.forEach(docComments, function (docComment) { - if (documentationComment.length) { - documentationComment.push(ts.lineBreakPart()); - } - documentationComment.push(docComment); - }); - return documentationComment; - function getJsDocCommentsSeparatedByNewLines() { - var paramTag = "@param"; - var jsDocCommentParts = []; - ts.forEach(declarations, function (declaration, indexOfDeclaration) { - if (ts.indexOf(declarations, declaration) === indexOfDeclaration) { - var sourceFileOfDeclaration = ts.getSourceFileOfNode(declaration); - if (canUseParsedParamTagComments && declaration.kind === 129) { - ts.forEach(getJsDocCommentTextRange(declaration.parent, sourceFileOfDeclaration), function (jsDocCommentTextRange) { - var cleanedParamJsDocComment = getCleanedParamJsDocComment(jsDocCommentTextRange.pos, jsDocCommentTextRange.end, sourceFileOfDeclaration); - if (cleanedParamJsDocComment) { - jsDocCommentParts.push.apply(jsDocCommentParts, cleanedParamJsDocComment); - } - }); - } - if (declaration.kind === 202 && declaration.body.kind === 202) { - return; - } - while (declaration.kind === 202 && declaration.parent.kind === 202) { - declaration = declaration.parent; - } - ts.forEach(getJsDocCommentTextRange(declaration.kind === 195 ? declaration.parent.parent : declaration, sourceFileOfDeclaration), function (jsDocCommentTextRange) { - var cleanedJsDocComment = getCleanedJsDocComment(jsDocCommentTextRange.pos, jsDocCommentTextRange.end, sourceFileOfDeclaration); - if (cleanedJsDocComment) { - jsDocCommentParts.push.apply(jsDocCommentParts, cleanedJsDocComment); - } - }); - } - }); - return jsDocCommentParts; - function getJsDocCommentTextRange(node, sourceFile) { - return ts.map(ts.getJsDocComments(node, sourceFile), function (jsDocComment) { - return { - pos: jsDocComment.pos + "/*".length, - end: jsDocComment.end - "*/".length - }; - }); - } - function consumeWhiteSpacesOnTheLine(pos, end, sourceFile, maxSpacesToRemove) { - if (maxSpacesToRemove !== undefined) { - end = Math.min(end, pos + maxSpacesToRemove); - } - for (; pos < end; pos++) { - var ch = sourceFile.text.charCodeAt(pos); - if (!ts.isWhiteSpace(ch) || ts.isLineBreak(ch)) { - return pos; - } - } - return end; - } - function consumeLineBreaks(pos, end, sourceFile) { - while (pos < end && ts.isLineBreak(sourceFile.text.charCodeAt(pos))) { - pos++; - } - return pos; - } - function isName(pos, end, sourceFile, name) { - return pos + name.length < end && - sourceFile.text.substr(pos, name.length) === name && - (ts.isWhiteSpace(sourceFile.text.charCodeAt(pos + name.length)) || - ts.isLineBreak(sourceFile.text.charCodeAt(pos + name.length))); - } - function isParamTag(pos, end, sourceFile) { - return isName(pos, end, sourceFile, paramTag); - } - function pushDocCommentLineText(docComments, text, blankLineCount) { - while (blankLineCount--) { - docComments.push(ts.textPart("")); - } - docComments.push(ts.textPart(text)); - } - function getCleanedJsDocComment(pos, end, sourceFile) { - var spacesToRemoveAfterAsterisk; - var docComments = []; - var blankLineCount = 0; - var isInParamTag = false; - while (pos < end) { - var docCommentTextOfLine = ""; - pos = consumeWhiteSpacesOnTheLine(pos, end, sourceFile); - if (pos < end && sourceFile.text.charCodeAt(pos) === 42) { - var lineStartPos = pos + 1; - pos = consumeWhiteSpacesOnTheLine(pos + 1, end, sourceFile, spacesToRemoveAfterAsterisk); - if (spacesToRemoveAfterAsterisk === undefined && pos < end && !ts.isLineBreak(sourceFile.text.charCodeAt(pos))) { - spacesToRemoveAfterAsterisk = pos - lineStartPos; - } - } - else if (spacesToRemoveAfterAsterisk === undefined) { - spacesToRemoveAfterAsterisk = 0; - } - while (pos < end && !ts.isLineBreak(sourceFile.text.charCodeAt(pos))) { - var ch = sourceFile.text.charAt(pos); - if (ch === "@") { - if (isParamTag(pos, end, sourceFile)) { - isInParamTag = true; - pos += paramTag.length; - continue; - } - else { - isInParamTag = false; - } - } - if (!isInParamTag) { - docCommentTextOfLine += ch; - } - pos++; - } - pos = consumeLineBreaks(pos, end, sourceFile); - if (docCommentTextOfLine) { - pushDocCommentLineText(docComments, docCommentTextOfLine, blankLineCount); - blankLineCount = 0; - } - else if (!isInParamTag && docComments.length) { - blankLineCount++; - } - } - return docComments; - } - function getCleanedParamJsDocComment(pos, end, sourceFile) { - var paramHelpStringMargin; - var paramDocComments = []; - while (pos < end) { - if (isParamTag(pos, end, sourceFile)) { - var blankLineCount = 0; - var recordedParamTag = false; - pos = consumeWhiteSpaces(pos + paramTag.length); - if (pos >= end) { - break; - } - if (sourceFile.text.charCodeAt(pos) === 123) { - pos++; - for (var curlies = 1; pos < end; pos++) { - var charCode = sourceFile.text.charCodeAt(pos); - if (charCode === 123) { - curlies++; - continue; - } - if (charCode === 125) { - curlies--; - if (curlies === 0) { - pos++; - break; - } - else { - continue; - } - } - if (charCode === 64) { - break; - } - } - pos = consumeWhiteSpaces(pos); - if (pos >= end) { - break; - } - } - if (isName(pos, end, sourceFile, name)) { - pos = consumeWhiteSpaces(pos + name.length); - if (pos >= end) { - break; - } - var paramHelpString = ""; - var firstLineParamHelpStringPos = pos; - while (pos < end) { - var ch = sourceFile.text.charCodeAt(pos); - if (ts.isLineBreak(ch)) { - if (paramHelpString) { - pushDocCommentLineText(paramDocComments, paramHelpString, blankLineCount); - paramHelpString = ""; - blankLineCount = 0; - recordedParamTag = true; - } - else if (recordedParamTag) { - blankLineCount++; - } - setPosForParamHelpStringOnNextLine(firstLineParamHelpStringPos); - continue; - } - if (ch === 64) { - break; - } - paramHelpString += sourceFile.text.charAt(pos); - pos++; - } - if (paramHelpString) { - pushDocCommentLineText(paramDocComments, paramHelpString, blankLineCount); - } - paramHelpStringMargin = undefined; - } - if (sourceFile.text.charCodeAt(pos) === 64) { - continue; - } - } - pos++; - } - return paramDocComments; - function consumeWhiteSpaces(pos) { - while (pos < end && ts.isWhiteSpace(sourceFile.text.charCodeAt(pos))) { - pos++; - } - return pos; - } - function setPosForParamHelpStringOnNextLine(firstLineParamHelpStringPos) { - pos = consumeLineBreaks(pos, end, sourceFile); - if (pos >= end) { - return; - } - if (paramHelpStringMargin === undefined) { - paramHelpStringMargin = sourceFile.getLineAndCharacterOfPosition(firstLineParamHelpStringPos).character; - } - var startOfLinePos = pos; - pos = consumeWhiteSpacesOnTheLine(pos, end, sourceFile, paramHelpStringMargin); - if (pos >= end) { - return; - } - var consumedSpaces = pos - startOfLinePos; - if (consumedSpaces < paramHelpStringMargin) { - var ch = sourceFile.text.charCodeAt(pos); - if (ch === 42) { - pos = consumeWhiteSpacesOnTheLine(pos + 1, end, sourceFile, paramHelpStringMargin - consumedSpaces - 1); - } - } - } - } - } - } - var TypeObject = (function () { - function TypeObject(checker, flags) { - this.checker = checker; - this.flags = flags; - } - TypeObject.prototype.getFlags = function () { - return this.flags; - }; - TypeObject.prototype.getSymbol = function () { - return this.symbol; - }; - TypeObject.prototype.getProperties = function () { - return this.checker.getPropertiesOfType(this); - }; - TypeObject.prototype.getProperty = function (propertyName) { - return this.checker.getPropertyOfType(this, propertyName); - }; - TypeObject.prototype.getApparentProperties = function () { - return this.checker.getAugmentedPropertiesOfType(this); - }; - TypeObject.prototype.getCallSignatures = function () { - return this.checker.getSignaturesOfType(this, 0); - }; - TypeObject.prototype.getConstructSignatures = function () { - return this.checker.getSignaturesOfType(this, 1); - }; - TypeObject.prototype.getStringIndexType = function () { - return this.checker.getIndexTypeOfType(this, 0); - }; - TypeObject.prototype.getNumberIndexType = function () { - return this.checker.getIndexTypeOfType(this, 1); - }; - return TypeObject; - })(); - var SignatureObject = (function () { - function SignatureObject(checker) { - this.checker = checker; - } - SignatureObject.prototype.getDeclaration = function () { - return this.declaration; - }; - SignatureObject.prototype.getTypeParameters = function () { - return this.typeParameters; - }; - SignatureObject.prototype.getParameters = function () { - return this.parameters; - }; - SignatureObject.prototype.getReturnType = function () { - return this.checker.getReturnTypeOfSignature(this); - }; - SignatureObject.prototype.getDocumentationComment = function () { - if (this.documentationComment === undefined) { - this.documentationComment = this.declaration ? getJsDocCommentsFromDeclarations([this.declaration], undefined, false) : []; - } - return this.documentationComment; - }; - return SignatureObject; - })(); - var SourceFileObject = (function (_super) { - __extends(SourceFileObject, _super); - function SourceFileObject() { - _super.apply(this, arguments); - } - SourceFileObject.prototype.update = function (newText, textChangeRange) { - return ts.updateSourceFile(this, newText, textChangeRange); - }; - SourceFileObject.prototype.getLineAndCharacterOfPosition = function (position) { - return ts.getLineAndCharacterOfPosition(this, position); - }; - SourceFileObject.prototype.getLineStarts = function () { - return ts.getLineStarts(this); - }; - SourceFileObject.prototype.getPositionOfLineAndCharacter = function (line, character) { - return ts.getPositionOfLineAndCharacter(this, line, character); - }; - SourceFileObject.prototype.getNamedDeclarations = function () { - if (!this.namedDeclarations) { - var sourceFile = this; - var namedDeclarations = []; - ts.forEachChild(sourceFile, function visit(node) { - switch (node.kind) { - case 197: - case 134: - case 133: - var functionDeclaration = node; - if (functionDeclaration.name && functionDeclaration.name.getFullWidth() > 0) { - var lastDeclaration = namedDeclarations.length > 0 ? - namedDeclarations[namedDeclarations.length - 1] : - undefined; - if (lastDeclaration && functionDeclaration.symbol === lastDeclaration.symbol) { - if (functionDeclaration.body && !lastDeclaration.body) { - namedDeclarations[namedDeclarations.length - 1] = functionDeclaration; - } - } - else { - namedDeclarations.push(functionDeclaration); - } - ts.forEachChild(node, visit); - } - break; - case 198: - case 199: - case 200: - case 201: - case 202: - case 205: - case 214: - case 210: - case 205: - case 207: - case 208: - case 136: - case 137: - case 145: - if (node.name) { - namedDeclarations.push(node); - } - case 135: - case 177: - case 196: - case 150: - case 151: - case 203: - ts.forEachChild(node, visit); - break; - case 176: - if (ts.isFunctionBlock(node)) { - ts.forEachChild(node, visit); - } - break; - case 129: - if (!(node.flags & 112)) { - break; - } - case 195: - case 152: - if (ts.isBindingPattern(node.name)) { - ts.forEachChild(node.name, visit); - break; - } - case 223: - case 132: - case 131: - namedDeclarations.push(node); - break; - case 212: - if (node.exportClause) { - ts.forEach(node.exportClause.elements, visit); - } - break; - case 206: - var importClause = node.importClause; - if (importClause) { - if (importClause.name) { - namedDeclarations.push(importClause); - } - if (importClause.namedBindings) { - if (importClause.namedBindings.kind === 208) { - namedDeclarations.push(importClause.namedBindings); - } - else { - ts.forEach(importClause.namedBindings.elements, visit); - } - } - } - break; - } - }); - this.namedDeclarations = namedDeclarations; - } - return this.namedDeclarations; - }; - return SourceFileObject; - })(NodeObject); - var TextChange = (function () { - function TextChange() { - } - return TextChange; - })(); - ts.TextChange = TextChange; - (function (SymbolDisplayPartKind) { - SymbolDisplayPartKind[SymbolDisplayPartKind["aliasName"] = 0] = "aliasName"; - SymbolDisplayPartKind[SymbolDisplayPartKind["className"] = 1] = "className"; - SymbolDisplayPartKind[SymbolDisplayPartKind["enumName"] = 2] = "enumName"; - SymbolDisplayPartKind[SymbolDisplayPartKind["fieldName"] = 3] = "fieldName"; - SymbolDisplayPartKind[SymbolDisplayPartKind["interfaceName"] = 4] = "interfaceName"; - SymbolDisplayPartKind[SymbolDisplayPartKind["keyword"] = 5] = "keyword"; - SymbolDisplayPartKind[SymbolDisplayPartKind["lineBreak"] = 6] = "lineBreak"; - SymbolDisplayPartKind[SymbolDisplayPartKind["numericLiteral"] = 7] = "numericLiteral"; - SymbolDisplayPartKind[SymbolDisplayPartKind["stringLiteral"] = 8] = "stringLiteral"; - SymbolDisplayPartKind[SymbolDisplayPartKind["localName"] = 9] = "localName"; - SymbolDisplayPartKind[SymbolDisplayPartKind["methodName"] = 10] = "methodName"; - SymbolDisplayPartKind[SymbolDisplayPartKind["moduleName"] = 11] = "moduleName"; - SymbolDisplayPartKind[SymbolDisplayPartKind["operator"] = 12] = "operator"; - SymbolDisplayPartKind[SymbolDisplayPartKind["parameterName"] = 13] = "parameterName"; - SymbolDisplayPartKind[SymbolDisplayPartKind["propertyName"] = 14] = "propertyName"; - SymbolDisplayPartKind[SymbolDisplayPartKind["punctuation"] = 15] = "punctuation"; - SymbolDisplayPartKind[SymbolDisplayPartKind["space"] = 16] = "space"; - SymbolDisplayPartKind[SymbolDisplayPartKind["text"] = 17] = "text"; - SymbolDisplayPartKind[SymbolDisplayPartKind["typeParameterName"] = 18] = "typeParameterName"; - SymbolDisplayPartKind[SymbolDisplayPartKind["enumMemberName"] = 19] = "enumMemberName"; - SymbolDisplayPartKind[SymbolDisplayPartKind["functionName"] = 20] = "functionName"; - SymbolDisplayPartKind[SymbolDisplayPartKind["regularExpressionLiteral"] = 21] = "regularExpressionLiteral"; - })(ts.SymbolDisplayPartKind || (ts.SymbolDisplayPartKind = {})); - var SymbolDisplayPartKind = ts.SymbolDisplayPartKind; - (function (OutputFileType) { - OutputFileType[OutputFileType["JavaScript"] = 0] = "JavaScript"; - OutputFileType[OutputFileType["SourceMap"] = 1] = "SourceMap"; - OutputFileType[OutputFileType["Declaration"] = 2] = "Declaration"; - })(ts.OutputFileType || (ts.OutputFileType = {})); - var OutputFileType = ts.OutputFileType; - (function (EndOfLineState) { - EndOfLineState[EndOfLineState["Start"] = 0] = "Start"; - EndOfLineState[EndOfLineState["InMultiLineCommentTrivia"] = 1] = "InMultiLineCommentTrivia"; - EndOfLineState[EndOfLineState["InSingleQuoteStringLiteral"] = 2] = "InSingleQuoteStringLiteral"; - EndOfLineState[EndOfLineState["InDoubleQuoteStringLiteral"] = 3] = "InDoubleQuoteStringLiteral"; - EndOfLineState[EndOfLineState["InTemplateHeadOrNoSubstitutionTemplate"] = 4] = "InTemplateHeadOrNoSubstitutionTemplate"; - EndOfLineState[EndOfLineState["InTemplateMiddleOrTail"] = 5] = "InTemplateMiddleOrTail"; - EndOfLineState[EndOfLineState["InTemplateSubstitutionPosition"] = 6] = "InTemplateSubstitutionPosition"; - })(ts.EndOfLineState || (ts.EndOfLineState = {})); - var EndOfLineState = ts.EndOfLineState; - (function (TokenClass) { - TokenClass[TokenClass["Punctuation"] = 0] = "Punctuation"; - TokenClass[TokenClass["Keyword"] = 1] = "Keyword"; - TokenClass[TokenClass["Operator"] = 2] = "Operator"; - TokenClass[TokenClass["Comment"] = 3] = "Comment"; - TokenClass[TokenClass["Whitespace"] = 4] = "Whitespace"; - TokenClass[TokenClass["Identifier"] = 5] = "Identifier"; - TokenClass[TokenClass["NumberLiteral"] = 6] = "NumberLiteral"; - TokenClass[TokenClass["StringLiteral"] = 7] = "StringLiteral"; - TokenClass[TokenClass["RegExpLiteral"] = 8] = "RegExpLiteral"; - })(ts.TokenClass || (ts.TokenClass = {})); - var TokenClass = ts.TokenClass; - var ScriptElementKind = (function () { - function ScriptElementKind() { - } - ScriptElementKind.unknown = ""; - ScriptElementKind.keyword = "keyword"; - ScriptElementKind.scriptElement = "script"; - ScriptElementKind.moduleElement = "module"; - ScriptElementKind.classElement = "class"; - ScriptElementKind.interfaceElement = "interface"; - ScriptElementKind.typeElement = "type"; - ScriptElementKind.enumElement = "enum"; - ScriptElementKind.variableElement = "var"; - ScriptElementKind.localVariableElement = "local var"; - ScriptElementKind.functionElement = "function"; - ScriptElementKind.localFunctionElement = "local function"; - ScriptElementKind.memberFunctionElement = "method"; - ScriptElementKind.memberGetAccessorElement = "getter"; - ScriptElementKind.memberSetAccessorElement = "setter"; - ScriptElementKind.memberVariableElement = "property"; - ScriptElementKind.constructorImplementationElement = "constructor"; - ScriptElementKind.callSignatureElement = "call"; - ScriptElementKind.indexSignatureElement = "index"; - ScriptElementKind.constructSignatureElement = "construct"; - ScriptElementKind.parameterElement = "parameter"; - ScriptElementKind.typeParameterElement = "type parameter"; - ScriptElementKind.primitiveType = "primitive type"; - ScriptElementKind.label = "label"; - ScriptElementKind.alias = "alias"; - ScriptElementKind.constElement = "const"; - ScriptElementKind.letElement = "let"; - return ScriptElementKind; - })(); - ts.ScriptElementKind = ScriptElementKind; - var ScriptElementKindModifier = (function () { - function ScriptElementKindModifier() { - } - ScriptElementKindModifier.none = ""; - ScriptElementKindModifier.publicMemberModifier = "public"; - ScriptElementKindModifier.privateMemberModifier = "private"; - ScriptElementKindModifier.protectedMemberModifier = "protected"; - ScriptElementKindModifier.exportedModifier = "export"; - ScriptElementKindModifier.ambientModifier = "declare"; - ScriptElementKindModifier.staticModifier = "static"; - return ScriptElementKindModifier; - })(); - ts.ScriptElementKindModifier = ScriptElementKindModifier; - var ClassificationTypeNames = (function () { - function ClassificationTypeNames() { - } - ClassificationTypeNames.comment = "comment"; - ClassificationTypeNames.identifier = "identifier"; - ClassificationTypeNames.keyword = "keyword"; - ClassificationTypeNames.numericLiteral = "number"; - ClassificationTypeNames.operator = "operator"; - ClassificationTypeNames.stringLiteral = "string"; - ClassificationTypeNames.whiteSpace = "whitespace"; - ClassificationTypeNames.text = "text"; - ClassificationTypeNames.punctuation = "punctuation"; - ClassificationTypeNames.className = "class name"; - ClassificationTypeNames.enumName = "enum name"; - ClassificationTypeNames.interfaceName = "interface name"; - ClassificationTypeNames.moduleName = "module name"; - ClassificationTypeNames.typeParameterName = "type parameter name"; - ClassificationTypeNames.typeAlias = "type alias name"; - return ClassificationTypeNames; - })(); - ts.ClassificationTypeNames = ClassificationTypeNames; - function displayPartsToString(displayParts) { - if (displayParts) { - return ts.map(displayParts, function (displayPart) { return displayPart.text; }).join(""); - } - return ""; - } - ts.displayPartsToString = displayPartsToString; - function isLocalVariableOrFunction(symbol) { - if (symbol.parent) { - return false; - } - return ts.forEach(symbol.declarations, function (declaration) { - if (declaration.kind === 162) { - return true; - } - if (declaration.kind !== 195 && declaration.kind !== 197) { - return false; - } - for (var parent_7 = declaration.parent; !ts.isFunctionBlock(parent_7); parent_7 = parent_7.parent) { - if (parent_7.kind === 224 || parent_7.kind === 203) { - return false; - } - } - return true; - }); - } - function getDefaultCompilerOptions() { - return { - target: 1, - module: 0 - }; - } - ts.getDefaultCompilerOptions = getDefaultCompilerOptions; - var OperationCanceledException = (function () { - function OperationCanceledException() { - } - return OperationCanceledException; - })(); - ts.OperationCanceledException = OperationCanceledException; - var CancellationTokenObject = (function () { - function CancellationTokenObject(cancellationToken) { - this.cancellationToken = cancellationToken; - } - CancellationTokenObject.prototype.isCancellationRequested = function () { - return this.cancellationToken && this.cancellationToken.isCancellationRequested(); - }; - CancellationTokenObject.prototype.throwIfCancellationRequested = function () { - if (this.isCancellationRequested()) { - throw new OperationCanceledException(); - } - }; - CancellationTokenObject.None = new CancellationTokenObject(null); - return CancellationTokenObject; - })(); - ts.CancellationTokenObject = CancellationTokenObject; - var HostCache = (function () { - function HostCache(host) { - this.host = host; - this.fileNameToEntry = {}; - var rootFileNames = host.getScriptFileNames(); - for (var _i = 0, _n = rootFileNames.length; _i < _n; _i++) { - var fileName = rootFileNames[_i]; - this.createEntry(fileName); - } - this._compilationSettings = host.getCompilationSettings() || getDefaultCompilerOptions(); - } - HostCache.prototype.compilationSettings = function () { - return this._compilationSettings; - }; - HostCache.prototype.createEntry = function (fileName) { - var entry; - var scriptSnapshot = this.host.getScriptSnapshot(fileName); - if (scriptSnapshot) { - entry = { - hostFileName: fileName, - version: this.host.getScriptVersion(fileName), - scriptSnapshot: scriptSnapshot - }; - } - return this.fileNameToEntry[ts.normalizeSlashes(fileName)] = entry; - }; - HostCache.prototype.getEntry = function (fileName) { - return ts.lookUp(this.fileNameToEntry, ts.normalizeSlashes(fileName)); - }; - HostCache.prototype.contains = function (fileName) { - return ts.hasProperty(this.fileNameToEntry, ts.normalizeSlashes(fileName)); - }; - HostCache.prototype.getOrCreateEntry = function (fileName) { - if (this.contains(fileName)) { - return this.getEntry(fileName); - } - return this.createEntry(fileName); - }; - HostCache.prototype.getRootFileNames = function () { - var _this = this; - var fileNames = []; - ts.forEachKey(this.fileNameToEntry, function (key) { - if (ts.hasProperty(_this.fileNameToEntry, key) && _this.fileNameToEntry[key]) - fileNames.push(key); - }); - return fileNames; - }; - HostCache.prototype.getVersion = function (fileName) { - var file = this.getEntry(fileName); - return file && file.version; - }; - HostCache.prototype.getScriptSnapshot = function (fileName) { - var file = this.getEntry(fileName); - return file && file.scriptSnapshot; - }; - return HostCache; - })(); - var SyntaxTreeCache = (function () { - function SyntaxTreeCache(host) { - this.host = host; - } - SyntaxTreeCache.prototype.getCurrentSourceFile = function (fileName) { - var scriptSnapshot = this.host.getScriptSnapshot(fileName); - if (!scriptSnapshot) { - throw new Error("Could not find file: '" + fileName + "'."); - } - var version = this.host.getScriptVersion(fileName); - var sourceFile; - if (this.currentFileName !== fileName) { - sourceFile = createLanguageServiceSourceFile(fileName, scriptSnapshot, 2, version, true); - } - else if (this.currentFileVersion !== version) { - var editRange = scriptSnapshot.getChangeRange(this.currentFileScriptSnapshot); - sourceFile = updateLanguageServiceSourceFile(this.currentSourceFile, scriptSnapshot, version, editRange); - } - if (sourceFile) { - this.currentFileVersion = version; - this.currentFileName = fileName; - this.currentFileScriptSnapshot = scriptSnapshot; - this.currentSourceFile = sourceFile; - } - return this.currentSourceFile; - }; - return SyntaxTreeCache; - })(); - function setSourceFileFields(sourceFile, scriptSnapshot, version) { - sourceFile.version = version; - sourceFile.scriptSnapshot = scriptSnapshot; - } - function createLanguageServiceSourceFile(fileName, scriptSnapshot, scriptTarget, version, setNodeParents) { - var sourceFile = ts.createSourceFile(fileName, scriptSnapshot.getText(0, scriptSnapshot.getLength()), scriptTarget, setNodeParents); - setSourceFileFields(sourceFile, scriptSnapshot, version); - sourceFile.nameTable = sourceFile.identifiers; - return sourceFile; - } - ts.createLanguageServiceSourceFile = createLanguageServiceSourceFile; - ts.disableIncrementalParsing = false; - function updateLanguageServiceSourceFile(sourceFile, scriptSnapshot, version, textChangeRange, aggressiveChecks) { - if (textChangeRange) { - if (version !== sourceFile.version) { - if (!ts.disableIncrementalParsing) { - var newSourceFile = ts.updateSourceFile(sourceFile, scriptSnapshot.getText(0, scriptSnapshot.getLength()), textChangeRange, aggressiveChecks); - setSourceFileFields(newSourceFile, scriptSnapshot, version); - newSourceFile.nameTable = undefined; - return newSourceFile; - } - } - } - return createLanguageServiceSourceFile(sourceFile.fileName, scriptSnapshot, sourceFile.languageVersion, version, true); - } - ts.updateLanguageServiceSourceFile = updateLanguageServiceSourceFile; - function createDocumentRegistry() { - var buckets = {}; - function getKeyFromCompilationSettings(settings) { - return "_" + settings.target; - } - function getBucketForCompilationSettings(settings, createIfMissing) { - var key = getKeyFromCompilationSettings(settings); - var bucket = ts.lookUp(buckets, key); - if (!bucket && createIfMissing) { - buckets[key] = bucket = {}; - } - return bucket; - } - function reportStats() { - var bucketInfoArray = Object.keys(buckets).filter(function (name) { return name && name.charAt(0) === '_'; }).map(function (name) { - var entries = ts.lookUp(buckets, name); - var sourceFiles = []; - for (var i in entries) { - var entry = entries[i]; - sourceFiles.push({ - name: i, - refCount: entry.languageServiceRefCount, - references: entry.owners.slice(0) - }); - } - sourceFiles.sort(function (x, y) { return y.refCount - x.refCount; }); - return { - bucket: name, - sourceFiles: sourceFiles - }; - }); - return JSON.stringify(bucketInfoArray, null, 2); - } - function acquireDocument(fileName, compilationSettings, scriptSnapshot, version) { - return acquireOrUpdateDocument(fileName, compilationSettings, scriptSnapshot, version, true); - } - function updateDocument(fileName, compilationSettings, scriptSnapshot, version) { - return acquireOrUpdateDocument(fileName, compilationSettings, scriptSnapshot, version, false); - } - function acquireOrUpdateDocument(fileName, compilationSettings, scriptSnapshot, version, acquiring) { - var bucket = getBucketForCompilationSettings(compilationSettings, true); - var entry = ts.lookUp(bucket, fileName); - if (!entry) { - ts.Debug.assert(acquiring, "How could we be trying to update a document that the registry doesn't have?"); - var sourceFile = createLanguageServiceSourceFile(fileName, scriptSnapshot, compilationSettings.target, version, false); - bucket[fileName] = entry = { - sourceFile: sourceFile, - languageServiceRefCount: 0, - owners: [] - }; - } - else { - if (entry.sourceFile.version !== version) { - entry.sourceFile = updateLanguageServiceSourceFile(entry.sourceFile, scriptSnapshot, version, scriptSnapshot.getChangeRange(entry.sourceFile.scriptSnapshot)); - } - } - if (acquiring) { - entry.languageServiceRefCount++; - } - return entry.sourceFile; - } - function releaseDocument(fileName, compilationSettings) { - var bucket = getBucketForCompilationSettings(compilationSettings, false); - ts.Debug.assert(bucket !== undefined); - var entry = ts.lookUp(bucket, fileName); - entry.languageServiceRefCount--; - ts.Debug.assert(entry.languageServiceRefCount >= 0); - if (entry.languageServiceRefCount === 0) { - delete bucket[fileName]; - } - } - return { - acquireDocument: acquireDocument, - updateDocument: updateDocument, - releaseDocument: releaseDocument, - reportStats: reportStats - }; - } - ts.createDocumentRegistry = createDocumentRegistry; - function preProcessFile(sourceText, readImportFiles) { - if (readImportFiles === void 0) { readImportFiles = true; } - var referencedFiles = []; - var importedFiles = []; - var isNoDefaultLib = false; - function processTripleSlashDirectives() { - var commentRanges = ts.getLeadingCommentRanges(sourceText, 0); - ts.forEach(commentRanges, function (commentRange) { - var comment = sourceText.substring(commentRange.pos, commentRange.end); - var referencePathMatchResult = ts.getFileReferenceFromReferencePath(comment, commentRange); - if (referencePathMatchResult) { - isNoDefaultLib = referencePathMatchResult.isNoDefaultLib; - var fileReference = referencePathMatchResult.fileReference; - if (fileReference) { - referencedFiles.push(fileReference); - } - } - }); - } - function recordModuleName() { - var importPath = scanner.getTokenValue(); - var pos = scanner.getTokenPos(); - importedFiles.push({ - fileName: importPath, - pos: pos, - end: pos + importPath.length - }); - } - function processImport() { - scanner.setText(sourceText); - var token = scanner.scan(); - while (token !== 1) { - if (token === 85) { - token = scanner.scan(); - if (token === 8) { - recordModuleName(); - continue; - } - else { - if (token === 65) { - token = scanner.scan(); - if (token === 124) { - token = scanner.scan(); - if (token === 8) { - recordModuleName(); - continue; - } - } - else if (token === 53) { - token = scanner.scan(); - if (token === 118) { - token = scanner.scan(); - if (token === 16) { - token = scanner.scan(); - if (token === 8) { - recordModuleName(); - continue; - } - } - } - } - else if (token === 23) { - token = scanner.scan(); - } - else { - continue; - } - } - if (token === 14) { - token = scanner.scan(); - while (token !== 15) { - token = scanner.scan(); - } - if (token === 15) { - token = scanner.scan(); - if (token === 124) { - token = scanner.scan(); - if (token === 8) { - recordModuleName(); - } - } - } - } - else if (token === 35) { - token = scanner.scan(); - if (token === 102) { - token = scanner.scan(); - if (token === 65) { - token = scanner.scan(); - if (token === 124) { - token = scanner.scan(); - if (token === 8) { - recordModuleName(); - } - } - } - } - } - } - } - else if (token === 78) { - token = scanner.scan(); - if (token === 14) { - token = scanner.scan(); - while (token !== 15) { - token = scanner.scan(); - } - if (token === 15) { - token = scanner.scan(); - if (token === 124) { - token = scanner.scan(); - if (token === 8) { - recordModuleName(); - } - } - } - } - else if (token === 35) { - token = scanner.scan(); - if (token === 124) { - token = scanner.scan(); - if (token === 8) { - recordModuleName(); - } - } - } - } - token = scanner.scan(); - } - scanner.setText(undefined); - } - if (readImportFiles) { - processImport(); - } - processTripleSlashDirectives(); - return { referencedFiles: referencedFiles, importedFiles: importedFiles, isLibFile: isNoDefaultLib }; - } - ts.preProcessFile = preProcessFile; - function getTargetLabel(referenceNode, labelName) { - while (referenceNode) { - if (referenceNode.kind === 191 && referenceNode.label.text === labelName) { - return referenceNode.label; - } - referenceNode = referenceNode.parent; - } - return undefined; - } - function isJumpStatementTarget(node) { - return node.kind === 65 && - (node.parent.kind === 187 || node.parent.kind === 186) && - node.parent.label === node; - } - function isLabelOfLabeledStatement(node) { - return node.kind === 65 && - node.parent.kind === 191 && - node.parent.label === node; - } - function isLabeledBy(node, labelName) { - for (var owner = node.parent; owner.kind === 191; owner = owner.parent) { - if (owner.label.text === labelName) { - return true; - } - } - return false; - } - function isLabelName(node) { - return isLabelOfLabeledStatement(node) || isJumpStatementTarget(node); - } - function isRightSideOfQualifiedName(node) { - return node.parent.kind === 126 && node.parent.right === node; - } - function isRightSideOfPropertyAccess(node) { - return node && node.parent && node.parent.kind === 155 && node.parent.name === node; - } - function isCallExpressionTarget(node) { - if (isRightSideOfPropertyAccess(node)) { - node = node.parent; - } - return node && node.parent && node.parent.kind === 157 && node.parent.expression === node; - } - function isNewExpressionTarget(node) { - if (isRightSideOfPropertyAccess(node)) { - node = node.parent; - } - return node && node.parent && node.parent.kind === 158 && node.parent.expression === node; - } - function isNameOfModuleDeclaration(node) { - return node.parent.kind === 202 && node.parent.name === node; - } - function isNameOfFunctionDeclaration(node) { - return node.kind === 65 && - ts.isFunctionLike(node.parent) && node.parent.name === node; - } - function isNameOfPropertyAssignment(node) { - return (node.kind === 65 || node.kind === 8 || node.kind === 7) && - (node.parent.kind === 221 || node.parent.kind === 222) && node.parent.name === node; - } - function isLiteralNameOfPropertyDeclarationOrIndexAccess(node) { - if (node.kind === 8 || node.kind === 7) { - switch (node.parent.kind) { - case 132: - case 131: - case 221: - case 223: - case 134: - case 133: - case 136: - case 137: - case 202: - return node.parent.name === node; - case 156: - return node.parent.argumentExpression === node; - } - } - return false; - } - function isNameOfExternalModuleImportOrDeclaration(node) { - if (node.kind === 8) { - return isNameOfModuleDeclaration(node) || - (ts.isExternalModuleImportEqualsDeclaration(node.parent.parent) && ts.getExternalModuleImportEqualsDeclarationExpression(node.parent.parent) === node); - } - return false; - } - function isInsideComment(sourceFile, token, position) { - return position <= token.getStart(sourceFile) && - (isInsideCommentRange(ts.getTrailingCommentRanges(sourceFile.text, token.getFullStart())) || - isInsideCommentRange(ts.getLeadingCommentRanges(sourceFile.text, token.getFullStart()))); - function isInsideCommentRange(comments) { - return ts.forEach(comments, function (comment) { - if (comment.pos < position && position < comment.end) { - return true; - } - else if (position === comment.end) { - var text = sourceFile.text; - var width = comment.end - comment.pos; - if (width <= 2 || text.charCodeAt(comment.pos + 1) === 47) { - return true; - } - else { - return !(text.charCodeAt(comment.end - 1) === 47 && - text.charCodeAt(comment.end - 2) === 42); - } - } - return false; - }); - } - } - var SemanticMeaning; - (function (SemanticMeaning) { - SemanticMeaning[SemanticMeaning["None"] = 0] = "None"; - SemanticMeaning[SemanticMeaning["Value"] = 1] = "Value"; - SemanticMeaning[SemanticMeaning["Type"] = 2] = "Type"; - SemanticMeaning[SemanticMeaning["Namespace"] = 4] = "Namespace"; - SemanticMeaning[SemanticMeaning["All"] = 7] = "All"; - })(SemanticMeaning || (SemanticMeaning = {})); - var BreakContinueSearchType; - (function (BreakContinueSearchType) { - BreakContinueSearchType[BreakContinueSearchType["None"] = 0] = "None"; - BreakContinueSearchType[BreakContinueSearchType["Unlabeled"] = 1] = "Unlabeled"; - BreakContinueSearchType[BreakContinueSearchType["Labeled"] = 2] = "Labeled"; - BreakContinueSearchType[BreakContinueSearchType["All"] = 3] = "All"; - })(BreakContinueSearchType || (BreakContinueSearchType = {})); - var keywordCompletions = []; - for (var i = 66; i <= 125; i++) { - keywordCompletions.push({ - name: ts.tokenToString(i), - kind: ScriptElementKind.keyword, - kindModifiers: ScriptElementKindModifier.none - }); - } - function getContainerNode(node) { - while (true) { - node = node.parent; - if (!node) { - return undefined; - } - switch (node.kind) { - case 224: - case 134: - case 133: - case 197: - case 162: - case 136: - case 137: - case 198: - case 199: - case 201: - case 202: - return node; - } - } - } - ts.getContainerNode = getContainerNode; - function getNodeKind(node) { - switch (node.kind) { - case 202: return ScriptElementKind.moduleElement; - case 198: return ScriptElementKind.classElement; - case 199: return ScriptElementKind.interfaceElement; - case 200: return ScriptElementKind.typeElement; - case 201: return ScriptElementKind.enumElement; - case 195: - return ts.isConst(node) - ? ScriptElementKind.constElement - : ts.isLet(node) - ? ScriptElementKind.letElement - : ScriptElementKind.variableElement; - case 197: return ScriptElementKind.functionElement; - case 136: return ScriptElementKind.memberGetAccessorElement; - case 137: return ScriptElementKind.memberSetAccessorElement; - case 134: - case 133: - return ScriptElementKind.memberFunctionElement; - case 132: - case 131: - return ScriptElementKind.memberVariableElement; - case 140: return ScriptElementKind.indexSignatureElement; - case 139: return ScriptElementKind.constructSignatureElement; - case 138: return ScriptElementKind.callSignatureElement; - case 135: return ScriptElementKind.constructorImplementationElement; - case 128: return ScriptElementKind.typeParameterElement; - case 223: return ScriptElementKind.variableElement; - case 129: return (node.flags & 112) ? ScriptElementKind.memberVariableElement : ScriptElementKind.parameterElement; - case 205: - case 210: - case 207: - case 214: - case 208: - return ScriptElementKind.alias; - } - return ScriptElementKind.unknown; - } - ts.getNodeKind = getNodeKind; - function createLanguageService(host, documentRegistry) { - if (documentRegistry === void 0) { documentRegistry = createDocumentRegistry(); } - var syntaxTreeCache = new SyntaxTreeCache(host); - var ruleProvider; - var program; - var typeInfoResolver; - var useCaseSensitivefileNames = false; - var cancellationToken = new CancellationTokenObject(host.getCancellationToken && host.getCancellationToken()); - if (!ts.localizedDiagnosticMessages && host.getLocalizedDiagnosticMessages) { - ts.localizedDiagnosticMessages = host.getLocalizedDiagnosticMessages(); - } - function log(message) { - if (host.log) { - host.log(message); - } - } - function getCanonicalFileName(fileName) { - return useCaseSensitivefileNames ? fileName : fileName.toLowerCase(); - } - function getValidSourceFile(fileName) { - fileName = ts.normalizeSlashes(fileName); - var sourceFile = program.getSourceFile(getCanonicalFileName(fileName)); - if (!sourceFile) { - throw new Error("Could not find file: '" + fileName + "'."); - } - return sourceFile; - } - function getRuleProvider(options) { - if (!ruleProvider) { - ruleProvider = new ts.formatting.RulesProvider(); - } - ruleProvider.ensureUpToDate(options); - return ruleProvider; - } - function synchronizeHostData() { - var hostCache = new HostCache(host); - if (programUpToDate()) { - return; - } - var oldSettings = program && program.getCompilerOptions(); - var newSettings = hostCache.compilationSettings(); - var changesInCompilationSettingsAffectSyntax = oldSettings && oldSettings.target !== newSettings.target; - var newProgram = ts.createProgram(hostCache.getRootFileNames(), newSettings, { - getSourceFile: getOrCreateSourceFile, - getCancellationToken: function () { return cancellationToken; }, - getCanonicalFileName: function (fileName) { return useCaseSensitivefileNames ? fileName : fileName.toLowerCase(); }, - useCaseSensitiveFileNames: function () { return useCaseSensitivefileNames; }, - getNewLine: function () { return host.getNewLine ? host.getNewLine() : "\r\n"; }, - getDefaultLibFileName: function (options) { return host.getDefaultLibFileName(options); }, - writeFile: function (fileName, data, writeByteOrderMark) { }, - getCurrentDirectory: function () { return host.getCurrentDirectory(); } - }); - if (program) { - var oldSourceFiles = program.getSourceFiles(); - for (var _i = 0, _n = oldSourceFiles.length; _i < _n; _i++) { - var oldSourceFile = oldSourceFiles[_i]; - var fileName = oldSourceFile.fileName; - if (!newProgram.getSourceFile(fileName) || changesInCompilationSettingsAffectSyntax) { - documentRegistry.releaseDocument(fileName, oldSettings); - } - } - } - program = newProgram; - typeInfoResolver = program.getTypeChecker(); - return; - function getOrCreateSourceFile(fileName) { - var hostFileInformation = hostCache.getOrCreateEntry(fileName); - if (!hostFileInformation) { - return undefined; - } - if (!changesInCompilationSettingsAffectSyntax) { - var oldSourceFile = program && program.getSourceFile(fileName); - if (oldSourceFile) { - return documentRegistry.updateDocument(fileName, newSettings, hostFileInformation.scriptSnapshot, hostFileInformation.version); - } - } - return documentRegistry.acquireDocument(fileName, newSettings, hostFileInformation.scriptSnapshot, hostFileInformation.version); - } - function sourceFileUpToDate(sourceFile) { - return sourceFile && sourceFile.version === hostCache.getVersion(sourceFile.fileName); - } - function programUpToDate() { - if (!program) { - return false; - } - var rootFileNames = hostCache.getRootFileNames(); - if (program.getSourceFiles().length !== rootFileNames.length) { - return false; - } - for (var _i = 0, _n = rootFileNames.length; _i < _n; _i++) { - var fileName = rootFileNames[_i]; - if (!sourceFileUpToDate(program.getSourceFile(fileName))) { - return false; - } - } - return ts.compareDataObjects(program.getCompilerOptions(), hostCache.compilationSettings()); - } - } - function getProgram() { - synchronizeHostData(); - return program; - } - function cleanupSemanticCache() { - if (program) { - typeInfoResolver = program.getTypeChecker(); - } - } - function dispose() { - if (program) { - ts.forEach(program.getSourceFiles(), function (f) { - return documentRegistry.releaseDocument(f.fileName, program.getCompilerOptions()); - }); - } - } - function getSyntacticDiagnostics(fileName) { - synchronizeHostData(); - return program.getSyntacticDiagnostics(getValidSourceFile(fileName)); - } - function getSemanticDiagnostics(fileName) { - synchronizeHostData(); - var targetSourceFile = getValidSourceFile(fileName); - var semanticDiagnostics = program.getSemanticDiagnostics(targetSourceFile); - if (!program.getCompilerOptions().declaration) { - return semanticDiagnostics; - } - var declarationDiagnostics = program.getDeclarationDiagnostics(targetSourceFile); - return ts.concatenate(semanticDiagnostics, declarationDiagnostics); - } - function getCompilerOptionsDiagnostics() { - synchronizeHostData(); - return program.getGlobalDiagnostics(); - } - function getCompletionEntryDisplayName(symbol, target, performCharacterChecks) { - var displayName = symbol.getName(); - if (!displayName) { - return undefined; - } - var firstCharCode = displayName.charCodeAt(0); - if ((symbol.flags & 1536) && (firstCharCode === 39 || firstCharCode === 34)) { - return undefined; - } - if (displayName && displayName.length >= 2 && firstCharCode === displayName.charCodeAt(displayName.length - 1) && - (firstCharCode === 39 || firstCharCode === 34)) { - displayName = displayName.substring(1, displayName.length - 1); - } - if (!displayName) { - return undefined; - } - if (performCharacterChecks) { - if (!ts.isIdentifierStart(displayName.charCodeAt(0), target)) { - return undefined; - } - for (var i = 1, n = displayName.length; i < n; i++) { - if (!ts.isIdentifierPart(displayName.charCodeAt(i), target)) { - return undefined; - } - } - } - return ts.unescapeIdentifier(displayName); - } - function createCompletionEntry(symbol, typeChecker, location) { - var displayName = getCompletionEntryDisplayName(symbol, program.getCompilerOptions().target, true); - if (!displayName) { - return undefined; - } - return { - name: displayName, - kind: getSymbolKind(symbol, typeChecker, location), - kindModifiers: getSymbolModifiers(symbol) - }; - } - function getCompletionData(fileName, position) { - var syntacticStart = new Date().getTime(); - var sourceFile = getValidSourceFile(fileName); - var start = new Date().getTime(); - var currentToken = ts.getTokenAtPosition(sourceFile, position); - log("getCompletionData: Get current token: " + (new Date().getTime() - start)); - start = new Date().getTime(); - var insideComment = isInsideComment(sourceFile, currentToken, position); - log("getCompletionData: Is inside comment: " + (new Date().getTime() - start)); - if (insideComment) { - log("Returning an empty list because completion was inside a comment."); - return undefined; - } - start = new Date().getTime(); - var previousToken = ts.findPrecedingToken(position, sourceFile); - log("getCompletionData: Get previous token 1: " + (new Date().getTime() - start)); - var contextToken = previousToken; - if (contextToken && position <= contextToken.end && ts.isWord(contextToken.kind)) { - var start_1 = new Date().getTime(); - contextToken = ts.findPrecedingToken(contextToken.getFullStart(), sourceFile); - log("getCompletionData: Get previous token 2: " + (new Date().getTime() - start_1)); - } - if (contextToken && isCompletionListBlocker(contextToken)) { - log("Returning an empty list because completion was requested in an invalid position."); - return undefined; - } - var node = currentToken; - var isRightOfDot = false; - if (contextToken && contextToken.kind === 20 && contextToken.parent.kind === 155) { - node = contextToken.parent.expression; - isRightOfDot = true; - } - else if (contextToken && contextToken.kind === 20 && contextToken.parent.kind === 126) { - node = contextToken.parent.left; - isRightOfDot = true; - } - var location = ts.getTouchingPropertyName(sourceFile, position); - var target = program.getCompilerOptions().target; - var semanticStart = new Date().getTime(); - var isMemberCompletion; - var isNewIdentifierLocation; - var symbols; - if (isRightOfDot) { - symbols = []; - isMemberCompletion = true; - isNewIdentifierLocation = false; - if (node.kind === 65 || node.kind === 126 || node.kind === 155) { - var symbol = typeInfoResolver.getSymbolAtLocation(node); - if (symbol && symbol.flags & 8388608) { - symbol = typeInfoResolver.getAliasedSymbol(symbol); - } - if (symbol && symbol.flags & 1952) { - ts.forEachValue(symbol.exports, function (symbol) { - if (typeInfoResolver.isValidPropertyAccess((node.parent), symbol.name)) { - symbols.push(symbol); - } - }); - } - } - var type = typeInfoResolver.getTypeAtLocation(node); - if (type) { - ts.forEach(type.getApparentProperties(), function (symbol) { - if (typeInfoResolver.isValidPropertyAccess((node.parent), symbol.name)) { - symbols.push(symbol); - } - }); - } - } - else { - var containingObjectLiteral = getContainingObjectLiteralApplicableForCompletion(contextToken); - if (containingObjectLiteral) { - isMemberCompletion = true; - isNewIdentifierLocation = true; - var contextualType = typeInfoResolver.getContextualType(containingObjectLiteral); - if (!contextualType) { - return undefined; - } - var contextualTypeMembers = typeInfoResolver.getPropertiesOfType(contextualType); - if (contextualTypeMembers && contextualTypeMembers.length > 0) { - symbols = filterContextualMembersList(contextualTypeMembers, containingObjectLiteral.properties); - } - } - else if (ts.getAncestor(contextToken, 207)) { - isMemberCompletion = true; - isNewIdentifierLocation = true; - if (showCompletionsInImportsClause(contextToken)) { - var importDeclaration = ts.getAncestor(contextToken, 206); - ts.Debug.assert(importDeclaration !== undefined); - var exports_2 = typeInfoResolver.getExportsOfExternalModule(importDeclaration); - symbols = filterModuleExports(exports_2, importDeclaration); - } - } - else { - isMemberCompletion = false; - isNewIdentifierLocation = isNewIdentifierDefinitionLocation(contextToken); - if (previousToken !== contextToken) { - ts.Debug.assert(!!previousToken, "Expected 'contextToken' to be defined when different from 'previousToken'."); - } - var adjustedPosition = previousToken !== contextToken ? - previousToken.getStart() : - position; - var scopeNode = getScopeNode(contextToken, adjustedPosition, sourceFile); - var symbolMeanings = 793056 | 107455 | 1536 | 8388608; - symbols = typeInfoResolver.getSymbolsInScope(scopeNode, symbolMeanings); - } - } - log("getCompletionData: Semantic work: " + (new Date().getTime() - semanticStart)); - return { symbols: symbols, isMemberCompletion: isMemberCompletion, isNewIdentifierLocation: isNewIdentifierLocation, location: location }; - function getScopeNode(initialToken, position, sourceFile) { - var scope = initialToken; - while (scope && !ts.positionBelongsToNode(scope, position, sourceFile)) { - scope = scope.parent; - } - return scope; - } - function isCompletionListBlocker(previousToken) { - var start = new Date().getTime(); - var result = isInStringOrRegularExpressionOrTemplateLiteral(previousToken) || - isIdentifierDefinitionLocation(previousToken) || - isRightOfIllegalDot(previousToken); - log("getCompletionsAtPosition: isCompletionListBlocker: " + (new Date().getTime() - start)); - return result; - } - function showCompletionsInImportsClause(node) { - if (node) { - if (node.kind === 14 || node.kind === 23) { - return node.parent.kind === 209; - } - } - return false; - } - function isNewIdentifierDefinitionLocation(previousToken) { - if (previousToken) { - var containingNodeKind = previousToken.parent.kind; - switch (previousToken.kind) { - case 23: - return containingNodeKind === 157 - || containingNodeKind === 135 - || containingNodeKind === 158 - || containingNodeKind === 153 - || containingNodeKind === 169; - case 16: - return containingNodeKind === 157 - || containingNodeKind === 135 - || containingNodeKind === 158 - || containingNodeKind === 161; - case 18: - return containingNodeKind === 153; - case 117: - return true; - case 20: - return containingNodeKind === 202; - case 14: - return containingNodeKind === 198; - case 53: - return containingNodeKind === 195 - || containingNodeKind === 169; - case 11: - return containingNodeKind === 171; - case 12: - return containingNodeKind === 175; - case 109: - case 107: - case 108: - return containingNodeKind === 132; - } - switch (previousToken.getText()) { - case "public": - case "protected": - case "private": - return true; - } - } - return false; - } - function isInStringOrRegularExpressionOrTemplateLiteral(previousToken) { - if (previousToken.kind === 8 - || previousToken.kind === 9 - || ts.isTemplateLiteralKind(previousToken.kind)) { - var start_2 = previousToken.getStart(); - var end = previousToken.getEnd(); - if (start_2 < position && position < end) { - return true; - } - else if (position === end) { - return !!previousToken.isUnterminated; - } - } - return false; - } - function getContainingObjectLiteralApplicableForCompletion(previousToken) { - // The locations in an object literal expression that are applicable for completion are property name definition locations. - if (previousToken) { - var parent_8 = previousToken.parent; - switch (previousToken.kind) { - case 14: - case 23: - if (parent_8 && parent_8.kind === 154) { - return parent_8; - } - break; - } - } - return undefined; - } - function isFunction(kind) { - switch (kind) { - case 162: - case 163: - case 197: - case 134: - case 133: - case 136: - case 137: - case 138: - case 139: - case 140: - return true; - } - return false; - } - function isIdentifierDefinitionLocation(previousToken) { - if (previousToken) { - var containingNodeKind = previousToken.parent.kind; - switch (previousToken.kind) { - case 23: - return containingNodeKind === 195 || - containingNodeKind === 196 || - containingNodeKind === 177 || - containingNodeKind === 201 || - isFunction(containingNodeKind) || - containingNodeKind === 198 || - containingNodeKind === 197 || - containingNodeKind === 199 || - containingNodeKind === 151 || - containingNodeKind === 150; - case 20: - return containingNodeKind === 151; - case 18: - return containingNodeKind === 151; - case 16: - return containingNodeKind === 220 || - isFunction(containingNodeKind); - case 14: - return containingNodeKind === 201 || - containingNodeKind === 199 || - containingNodeKind === 145 || - containingNodeKind === 150; - case 22: - return containingNodeKind === 131 && - (previousToken.parent.parent.kind === 199 || - previousToken.parent.parent.kind === 145); - case 24: - return containingNodeKind === 198 || - containingNodeKind === 197 || - containingNodeKind === 199 || - isFunction(containingNodeKind); - case 110: - return containingNodeKind === 132; - case 21: - return containingNodeKind === 129 || - containingNodeKind === 135 || - (previousToken.parent.parent.kind === 151); - case 109: - case 107: - case 108: - return containingNodeKind === 129; - case 69: - case 77: - case 104: - case 83: - case 98: - case 116: - case 120: - case 85: - case 105: - case 70: - case 111: - return true; - } - switch (previousToken.getText()) { - case "class": - case "interface": - case "enum": - case "function": - case "var": - case "static": - case "let": - case "const": - case "yield": - return true; - } - } - return false; - } - function isRightOfIllegalDot(previousToken) { - if (previousToken && previousToken.kind === 7) { - var text = previousToken.getFullText(); - return text.charAt(text.length - 1) === "."; - } - return false; - } - function filterModuleExports(exports, importDeclaration) { - var exisingImports = {}; - if (!importDeclaration.importClause) { - return exports; - } - if (importDeclaration.importClause.namedBindings && - importDeclaration.importClause.namedBindings.kind === 209) { - ts.forEach(importDeclaration.importClause.namedBindings.elements, function (el) { - var name = el.propertyName || el.name; - exisingImports[name.text] = true; - }); - } - if (ts.isEmpty(exisingImports)) { - return exports; - } - return ts.filter(exports, function (e) { return !ts.lookUp(exisingImports, e.name); }); - } - function filterContextualMembersList(contextualMemberSymbols, existingMembers) { - if (!existingMembers || existingMembers.length === 0) { - return contextualMemberSymbols; - } - var existingMemberNames = {}; - ts.forEach(existingMembers, function (m) { - if (m.kind !== 221 && m.kind !== 222) { - return; - } - if (m.getStart() <= position && position <= m.getEnd()) { - return; - } - existingMemberNames[m.name.text] = true; - }); - var filteredMembers = []; - ts.forEach(contextualMemberSymbols, function (s) { - if (!existingMemberNames[s.name]) { - filteredMembers.push(s); - } - }); - return filteredMembers; - } - } - function getCompletionsAtPosition(fileName, position) { - synchronizeHostData(); - var completionData = getCompletionData(fileName, position); - if (!completionData) { - return undefined; - } - var symbols = completionData.symbols, isMemberCompletion = completionData.isMemberCompletion, isNewIdentifierLocation = completionData.isNewIdentifierLocation, location = completionData.location; - if (!symbols || symbols.length === 0) { - return undefined; - } - var entries = getCompletionEntriesFromSymbols(symbols); - if (!isMemberCompletion) { - ts.addRange(entries, keywordCompletions); - } - return { isMemberCompletion: isMemberCompletion, isNewIdentifierLocation: isNewIdentifierLocation, entries: entries }; - function getCompletionEntriesFromSymbols(symbols) { - var start = new Date().getTime(); - var entries = []; - var nameToSymbol = {}; - for (var _i = 0, _n = symbols.length; _i < _n; _i++) { - var symbol = symbols[_i]; - var entry = createCompletionEntry(symbol, typeInfoResolver, location); - if (entry) { - var id = ts.escapeIdentifier(entry.name); - if (!ts.lookUp(nameToSymbol, id)) { - entries.push(entry); - nameToSymbol[id] = symbol; - } - } - } - log("getCompletionsAtPosition: getCompletionEntriesFromSymbols: " + (new Date().getTime() - start)); - return entries; - } - } - function getCompletionEntryDetails(fileName, position, entryName) { - synchronizeHostData(); - var completionData = getCompletionData(fileName, position); - if (completionData) { - var symbols = completionData.symbols, location_2 = completionData.location; - var target = program.getCompilerOptions().target; - var symbol = ts.forEach(symbols, function (s) { return getCompletionEntryDisplayName(s, target, false) === entryName ? s : undefined; }); - if (symbol) { - var displayPartsDocumentationsAndSymbolKind = getSymbolDisplayPartsDocumentationAndSymbolKind(symbol, getValidSourceFile(fileName), location_2, typeInfoResolver, location_2, 7); - return { - name: entryName, - kind: displayPartsDocumentationsAndSymbolKind.symbolKind, - kindModifiers: getSymbolModifiers(symbol), - displayParts: displayPartsDocumentationsAndSymbolKind.displayParts, - documentation: displayPartsDocumentationsAndSymbolKind.documentation - }; - } - } - var keywordCompletion = ts.forEach(keywordCompletions, function (c) { return c.name === entryName; }); - if (keywordCompletion) { - return { - name: entryName, - kind: ScriptElementKind.keyword, - kindModifiers: ScriptElementKindModifier.none, - displayParts: [ts.displayPart(entryName, SymbolDisplayPartKind.keyword)], - documentation: undefined - }; - } - return undefined; - } - function getSymbolKind(symbol, typeResolver, location) { - var flags = symbol.getFlags(); - if (flags & 32) - return ScriptElementKind.classElement; - if (flags & 384) - return ScriptElementKind.enumElement; - if (flags & 524288) - return ScriptElementKind.typeElement; - if (flags & 64) - return ScriptElementKind.interfaceElement; - if (flags & 262144) - return ScriptElementKind.typeParameterElement; - var result = getSymbolKindOfConstructorPropertyMethodAccessorFunctionOrVar(symbol, flags, typeResolver, location); - if (result === ScriptElementKind.unknown) { - if (flags & 262144) - return ScriptElementKind.typeParameterElement; - if (flags & 8) - return ScriptElementKind.variableElement; - if (flags & 8388608) - return ScriptElementKind.alias; - if (flags & 1536) - return ScriptElementKind.moduleElement; - } - return result; - } - function getSymbolKindOfConstructorPropertyMethodAccessorFunctionOrVar(symbol, flags, typeResolver, location) { - if (typeResolver.isUndefinedSymbol(symbol)) { - return ScriptElementKind.variableElement; - } - if (typeResolver.isArgumentsSymbol(symbol)) { - return ScriptElementKind.localVariableElement; - } - if (flags & 3) { - if (ts.isFirstDeclarationOfSymbolParameter(symbol)) { - return ScriptElementKind.parameterElement; - } - else if (symbol.valueDeclaration && ts.isConst(symbol.valueDeclaration)) { - return ScriptElementKind.constElement; - } - else if (ts.forEach(symbol.declarations, ts.isLet)) { - return ScriptElementKind.letElement; - } - return isLocalVariableOrFunction(symbol) ? ScriptElementKind.localVariableElement : ScriptElementKind.variableElement; - } - if (flags & 16) - return isLocalVariableOrFunction(symbol) ? ScriptElementKind.localFunctionElement : ScriptElementKind.functionElement; - if (flags & 32768) - return ScriptElementKind.memberGetAccessorElement; - if (flags & 65536) - return ScriptElementKind.memberSetAccessorElement; - if (flags & 8192) - return ScriptElementKind.memberFunctionElement; - if (flags & 16384) - return ScriptElementKind.constructorImplementationElement; - if (flags & 4) { - if (flags & 268435456) { - var unionPropertyKind = ts.forEach(typeInfoResolver.getRootSymbols(symbol), function (rootSymbol) { - var rootSymbolFlags = rootSymbol.getFlags(); - if (rootSymbolFlags & (98308 | 3)) { - return ScriptElementKind.memberVariableElement; - } - ts.Debug.assert(!!(rootSymbolFlags & 8192)); - }); - if (!unionPropertyKind) { - var typeOfUnionProperty = typeInfoResolver.getTypeOfSymbolAtLocation(symbol, location); - if (typeOfUnionProperty.getCallSignatures().length) { - return ScriptElementKind.memberFunctionElement; - } - return ScriptElementKind.memberVariableElement; - } - return unionPropertyKind; - } - return ScriptElementKind.memberVariableElement; - } - return ScriptElementKind.unknown; - } - function getTypeKind(type) { - var flags = type.getFlags(); - if (flags & 128) - return ScriptElementKind.enumElement; - if (flags & 1024) - return ScriptElementKind.classElement; - if (flags & 2048) - return ScriptElementKind.interfaceElement; - if (flags & 512) - return ScriptElementKind.typeParameterElement; - if (flags & 1048703) - return ScriptElementKind.primitiveType; - if (flags & 256) - return ScriptElementKind.primitiveType; - return ScriptElementKind.unknown; - } - function getSymbolModifiers(symbol) { - return symbol && symbol.declarations && symbol.declarations.length > 0 - ? ts.getNodeModifiers(symbol.declarations[0]) - : ScriptElementKindModifier.none; - } - function getSymbolDisplayPartsDocumentationAndSymbolKind(symbol, sourceFile, enclosingDeclaration, typeResolver, location, semanticMeaning) { - if (semanticMeaning === void 0) { semanticMeaning = getMeaningFromLocation(location); } - var displayParts = []; - var documentation; - var symbolFlags = symbol.flags; - var symbolKind = getSymbolKindOfConstructorPropertyMethodAccessorFunctionOrVar(symbol, symbolFlags, typeResolver, location); - var hasAddedSymbolInfo; - var type; - if (symbolKind !== ScriptElementKind.unknown || symbolFlags & 32 || symbolFlags & 8388608) { - if (symbolKind === ScriptElementKind.memberGetAccessorElement || symbolKind === ScriptElementKind.memberSetAccessorElement) { - symbolKind = ScriptElementKind.memberVariableElement; - } - var signature; - type = typeResolver.getTypeOfSymbolAtLocation(symbol, location); - if (type) { - if (location.parent && location.parent.kind === 155) { - var right = location.parent.name; - if (right === location || (right && right.getFullWidth() === 0)) { - location = location.parent; - } - } - var callExpression; - if (location.kind === 157 || location.kind === 158) { - callExpression = location; - } - else if (isCallExpressionTarget(location) || isNewExpressionTarget(location)) { - callExpression = location.parent; - } - if (callExpression) { - var candidateSignatures = []; - signature = typeResolver.getResolvedSignature(callExpression, candidateSignatures); - if (!signature && candidateSignatures.length) { - signature = candidateSignatures[0]; - } - var useConstructSignatures = callExpression.kind === 158 || callExpression.expression.kind === 91; - var allSignatures = useConstructSignatures ? type.getConstructSignatures() : type.getCallSignatures(); - if (!ts.contains(allSignatures, signature.target || signature)) { - signature = allSignatures.length ? allSignatures[0] : undefined; - } - if (signature) { - if (useConstructSignatures && (symbolFlags & 32)) { - symbolKind = ScriptElementKind.constructorImplementationElement; - addPrefixForAnyFunctionOrVar(type.symbol, symbolKind); - } - else if (symbolFlags & 8388608) { - symbolKind = ScriptElementKind.alias; - pushTypePart(symbolKind); - displayParts.push(ts.spacePart()); - if (useConstructSignatures) { - displayParts.push(ts.keywordPart(88)); - displayParts.push(ts.spacePart()); - } - addFullSymbolName(symbol); - } - else { - addPrefixForAnyFunctionOrVar(symbol, symbolKind); - } - switch (symbolKind) { - case ScriptElementKind.memberVariableElement: - case ScriptElementKind.variableElement: - case ScriptElementKind.constElement: - case ScriptElementKind.letElement: - case ScriptElementKind.parameterElement: - case ScriptElementKind.localVariableElement: - displayParts.push(ts.punctuationPart(51)); - displayParts.push(ts.spacePart()); - if (useConstructSignatures) { - displayParts.push(ts.keywordPart(88)); - displayParts.push(ts.spacePart()); - } - if (!(type.flags & 32768)) { - displayParts.push.apply(displayParts, ts.symbolToDisplayParts(typeResolver, type.symbol, enclosingDeclaration, undefined, 1)); - } - addSignatureDisplayParts(signature, allSignatures, 8); - break; - default: - addSignatureDisplayParts(signature, allSignatures); - } - hasAddedSymbolInfo = true; - } - } - else if ((isNameOfFunctionDeclaration(location) && !(symbol.flags & 98304)) || - (location.kind === 114 && location.parent.kind === 135)) { - var functionDeclaration = location.parent; - var allSignatures = functionDeclaration.kind === 135 ? type.getConstructSignatures() : type.getCallSignatures(); - if (!typeResolver.isImplementationOfOverload(functionDeclaration)) { - signature = typeResolver.getSignatureFromDeclaration(functionDeclaration); - } - else { - signature = allSignatures[0]; - } - if (functionDeclaration.kind === 135) { - symbolKind = ScriptElementKind.constructorImplementationElement; - addPrefixForAnyFunctionOrVar(type.symbol, symbolKind); - } - else { - addPrefixForAnyFunctionOrVar(functionDeclaration.kind === 138 && - !(type.symbol.flags & 2048 || type.symbol.flags & 4096) ? type.symbol : symbol, symbolKind); - } - addSignatureDisplayParts(signature, allSignatures); - hasAddedSymbolInfo = true; - } - } - } - if (symbolFlags & 32 && !hasAddedSymbolInfo) { - displayParts.push(ts.keywordPart(69)); - displayParts.push(ts.spacePart()); - addFullSymbolName(symbol); - writeTypeParametersOfSymbol(symbol, sourceFile); - } - if ((symbolFlags & 64) && (semanticMeaning & 2)) { - addNewLineIfDisplayPartsExist(); - displayParts.push(ts.keywordPart(104)); - displayParts.push(ts.spacePart()); - addFullSymbolName(symbol); - writeTypeParametersOfSymbol(symbol, sourceFile); - } - if (symbolFlags & 524288) { - addNewLineIfDisplayPartsExist(); - displayParts.push(ts.keywordPart(123)); - displayParts.push(ts.spacePart()); - addFullSymbolName(symbol); - displayParts.push(ts.spacePart()); - displayParts.push(ts.operatorPart(53)); - displayParts.push(ts.spacePart()); - displayParts.push.apply(displayParts, ts.typeToDisplayParts(typeResolver, typeResolver.getDeclaredTypeOfSymbol(symbol), enclosingDeclaration)); - } - if (symbolFlags & 384) { - addNewLineIfDisplayPartsExist(); - if (ts.forEach(symbol.declarations, ts.isConstEnumDeclaration)) { - displayParts.push(ts.keywordPart(70)); - displayParts.push(ts.spacePart()); - } - displayParts.push(ts.keywordPart(77)); - displayParts.push(ts.spacePart()); - addFullSymbolName(symbol); - } - if (symbolFlags & 1536) { - addNewLineIfDisplayPartsExist(); - displayParts.push(ts.keywordPart(117)); - displayParts.push(ts.spacePart()); - addFullSymbolName(symbol); - } - if ((symbolFlags & 262144) && (semanticMeaning & 2)) { - addNewLineIfDisplayPartsExist(); - displayParts.push(ts.punctuationPart(16)); - displayParts.push(ts.textPart("type parameter")); - displayParts.push(ts.punctuationPart(17)); - displayParts.push(ts.spacePart()); - addFullSymbolName(symbol); - displayParts.push(ts.spacePart()); - displayParts.push(ts.keywordPart(86)); - displayParts.push(ts.spacePart()); - if (symbol.parent) { - addFullSymbolName(symbol.parent, enclosingDeclaration); - writeTypeParametersOfSymbol(symbol.parent, enclosingDeclaration); - } - else { - var signatureDeclaration = ts.getDeclarationOfKind(symbol, 128).parent; - var signature = typeResolver.getSignatureFromDeclaration(signatureDeclaration); - if (signatureDeclaration.kind === 139) { - displayParts.push(ts.keywordPart(88)); - displayParts.push(ts.spacePart()); - } - else if (signatureDeclaration.kind !== 138 && signatureDeclaration.name) { - addFullSymbolName(signatureDeclaration.symbol); - } - displayParts.push.apply(displayParts, ts.signatureToDisplayParts(typeResolver, signature, sourceFile, 32)); - } - } - if (symbolFlags & 8) { - addPrefixForAnyFunctionOrVar(symbol, "enum member"); - var declaration = symbol.declarations[0]; - if (declaration.kind === 223) { - var constantValue = typeResolver.getConstantValue(declaration); - if (constantValue !== undefined) { - displayParts.push(ts.spacePart()); - displayParts.push(ts.operatorPart(53)); - displayParts.push(ts.spacePart()); - displayParts.push(ts.displayPart(constantValue.toString(), SymbolDisplayPartKind.numericLiteral)); - } - } - } - if (symbolFlags & 8388608) { - addNewLineIfDisplayPartsExist(); - displayParts.push(ts.keywordPart(85)); - displayParts.push(ts.spacePart()); - addFullSymbolName(symbol); - ts.forEach(symbol.declarations, function (declaration) { - if (declaration.kind === 205) { - var importEqualsDeclaration = declaration; - if (ts.isExternalModuleImportEqualsDeclaration(importEqualsDeclaration)) { - displayParts.push(ts.spacePart()); - displayParts.push(ts.operatorPart(53)); - displayParts.push(ts.spacePart()); - displayParts.push(ts.keywordPart(118)); - displayParts.push(ts.punctuationPart(16)); - displayParts.push(ts.displayPart(ts.getTextOfNode(ts.getExternalModuleImportEqualsDeclarationExpression(importEqualsDeclaration)), SymbolDisplayPartKind.stringLiteral)); - displayParts.push(ts.punctuationPart(17)); - } - else { - var internalAliasSymbol = typeResolver.getSymbolAtLocation(importEqualsDeclaration.moduleReference); - if (internalAliasSymbol) { - displayParts.push(ts.spacePart()); - displayParts.push(ts.operatorPart(53)); - displayParts.push(ts.spacePart()); - addFullSymbolName(internalAliasSymbol, enclosingDeclaration); - } - } - return true; - } - }); - } - if (!hasAddedSymbolInfo) { - if (symbolKind !== ScriptElementKind.unknown) { - if (type) { - addPrefixForAnyFunctionOrVar(symbol, symbolKind); - if (symbolKind === ScriptElementKind.memberVariableElement || - symbolFlags & 3 || - symbolKind === ScriptElementKind.localVariableElement) { - displayParts.push(ts.punctuationPart(51)); - displayParts.push(ts.spacePart()); - if (type.symbol && type.symbol.flags & 262144) { - var typeParameterParts = ts.mapToDisplayParts(function (writer) { - typeResolver.getSymbolDisplayBuilder().buildTypeParameterDisplay(type, writer, enclosingDeclaration); - }); - displayParts.push.apply(displayParts, typeParameterParts); - } - else { - displayParts.push.apply(displayParts, ts.typeToDisplayParts(typeResolver, type, enclosingDeclaration)); - } - } - else if (symbolFlags & 16 || - symbolFlags & 8192 || - symbolFlags & 16384 || - symbolFlags & 131072 || - symbolFlags & 98304 || - symbolKind === ScriptElementKind.memberFunctionElement) { - var allSignatures = type.getCallSignatures(); - addSignatureDisplayParts(allSignatures[0], allSignatures); - } - } - } - else { - symbolKind = getSymbolKind(symbol, typeResolver, location); - } - } - if (!documentation) { - documentation = symbol.getDocumentationComment(); - } - return { displayParts: displayParts, documentation: documentation, symbolKind: symbolKind }; - function addNewLineIfDisplayPartsExist() { - if (displayParts.length) { - displayParts.push(ts.lineBreakPart()); - } - } - function addFullSymbolName(symbol, enclosingDeclaration) { - var fullSymbolDisplayParts = ts.symbolToDisplayParts(typeResolver, symbol, enclosingDeclaration || sourceFile, undefined, 1 | 2); - displayParts.push.apply(displayParts, fullSymbolDisplayParts); - } - function addPrefixForAnyFunctionOrVar(symbol, symbolKind) { - addNewLineIfDisplayPartsExist(); - if (symbolKind) { - pushTypePart(symbolKind); - displayParts.push(ts.spacePart()); - addFullSymbolName(symbol); - } - } - function pushTypePart(symbolKind) { - switch (symbolKind) { - case ScriptElementKind.variableElement: - case ScriptElementKind.functionElement: - case ScriptElementKind.letElement: - case ScriptElementKind.constElement: - case ScriptElementKind.constructorImplementationElement: - displayParts.push(ts.textOrKeywordPart(symbolKind)); - return; - default: - displayParts.push(ts.punctuationPart(16)); - displayParts.push(ts.textOrKeywordPart(symbolKind)); - displayParts.push(ts.punctuationPart(17)); - return; - } - } - function addSignatureDisplayParts(signature, allSignatures, flags) { - displayParts.push.apply(displayParts, ts.signatureToDisplayParts(typeResolver, signature, enclosingDeclaration, flags | 32)); - if (allSignatures.length > 1) { - displayParts.push(ts.spacePart()); - displayParts.push(ts.punctuationPart(16)); - displayParts.push(ts.operatorPart(33)); - displayParts.push(ts.displayPart((allSignatures.length - 1).toString(), SymbolDisplayPartKind.numericLiteral)); - displayParts.push(ts.spacePart()); - displayParts.push(ts.textPart(allSignatures.length === 2 ? "overload" : "overloads")); - displayParts.push(ts.punctuationPart(17)); - } - documentation = signature.getDocumentationComment(); - } - function writeTypeParametersOfSymbol(symbol, enclosingDeclaration) { - var typeParameterParts = ts.mapToDisplayParts(function (writer) { - typeResolver.getSymbolDisplayBuilder().buildTypeParameterDisplayFromSymbol(symbol, writer, enclosingDeclaration); - }); - displayParts.push.apply(displayParts, typeParameterParts); - } - } - function getQuickInfoAtPosition(fileName, position) { - synchronizeHostData(); - var sourceFile = getValidSourceFile(fileName); - var node = ts.getTouchingPropertyName(sourceFile, position); - if (!node) { - return undefined; - } - var symbol = typeInfoResolver.getSymbolAtLocation(node); - if (!symbol) { - switch (node.kind) { - case 65: - case 155: - case 126: - case 93: - case 91: - var type = typeInfoResolver.getTypeAtLocation(node); - if (type) { - return { - kind: ScriptElementKind.unknown, - kindModifiers: ScriptElementKindModifier.none, - textSpan: ts.createTextSpan(node.getStart(), node.getWidth()), - displayParts: ts.typeToDisplayParts(typeInfoResolver, type, getContainerNode(node)), - documentation: type.symbol ? type.symbol.getDocumentationComment() : undefined - }; - } - } - return undefined; - } - var displayPartsDocumentationsAndKind = getSymbolDisplayPartsDocumentationAndSymbolKind(symbol, sourceFile, getContainerNode(node), typeInfoResolver, node); - return { - kind: displayPartsDocumentationsAndKind.symbolKind, - kindModifiers: getSymbolModifiers(symbol), - textSpan: ts.createTextSpan(node.getStart(), node.getWidth()), - displayParts: displayPartsDocumentationsAndKind.displayParts, - documentation: displayPartsDocumentationsAndKind.documentation - }; - } - function createDefinitionInfo(node, symbolKind, symbolName, containerName) { - return { - fileName: node.getSourceFile().fileName, - textSpan: ts.createTextSpanFromBounds(node.getStart(), node.getEnd()), - kind: symbolKind, - name: symbolName, - containerKind: undefined, - containerName: containerName - }; - } - function getDefinitionAtPosition(fileName, position) { - synchronizeHostData(); - var sourceFile = getValidSourceFile(fileName); - var node = ts.getTouchingPropertyName(sourceFile, position); - if (!node) { - return undefined; - } - if (isJumpStatementTarget(node)) { - var labelName = node.text; - var label = getTargetLabel(node.parent, node.text); - return label ? [createDefinitionInfo(label, ScriptElementKind.label, labelName, undefined)] : undefined; - } - var comment = ts.forEach(sourceFile.referencedFiles, function (r) { return (r.pos <= position && position < r.end) ? r : undefined; }); - if (comment) { - var referenceFile = ts.tryResolveScriptReference(program, sourceFile, comment); - if (referenceFile) { - return [{ - fileName: referenceFile.fileName, - textSpan: ts.createTextSpanFromBounds(0, 0), - kind: ScriptElementKind.scriptElement, - name: comment.fileName, - containerName: undefined, - containerKind: undefined - }]; - } - return undefined; - } - var symbol = typeInfoResolver.getSymbolAtLocation(node); - if (!symbol) { - return undefined; - } - if (symbol.flags & 8388608) { - var declaration = symbol.declarations[0]; - if (node.kind === 65 && node.parent === declaration) { - symbol = typeInfoResolver.getAliasedSymbol(symbol); - } - } - if (node.parent.kind === 222) { - var shorthandSymbol = typeInfoResolver.getShorthandAssignmentValueSymbol(symbol.valueDeclaration); - if (!shorthandSymbol) { - return []; - } - var shorthandDeclarations = shorthandSymbol.getDeclarations(); - var shorthandSymbolKind = getSymbolKind(shorthandSymbol, typeInfoResolver, node); - var shorthandSymbolName = typeInfoResolver.symbolToString(shorthandSymbol); - var shorthandContainerName = typeInfoResolver.symbolToString(symbol.parent, node); - return ts.map(shorthandDeclarations, function (declaration) { return createDefinitionInfo(declaration, shorthandSymbolKind, shorthandSymbolName, shorthandContainerName); }); - } - var result = []; - var declarations = symbol.getDeclarations(); - var symbolName = typeInfoResolver.symbolToString(symbol); - var symbolKind = getSymbolKind(symbol, typeInfoResolver, node); - var containerSymbol = symbol.parent; - var containerName = containerSymbol ? typeInfoResolver.symbolToString(containerSymbol, node) : ""; - if (!tryAddConstructSignature(symbol, node, symbolKind, symbolName, containerName, result) && - !tryAddCallSignature(symbol, node, symbolKind, symbolName, containerName, result)) { - ts.forEach(declarations, function (declaration) { - result.push(createDefinitionInfo(declaration, symbolKind, symbolName, containerName)); - }); - } - return result; - function tryAddConstructSignature(symbol, location, symbolKind, symbolName, containerName, result) { - if (isNewExpressionTarget(location) || location.kind === 114) { - if (symbol.flags & 32) { - var classDeclaration = symbol.getDeclarations()[0]; - ts.Debug.assert(classDeclaration && classDeclaration.kind === 198); - return tryAddSignature(classDeclaration.members, true, symbolKind, symbolName, containerName, result); - } - } - return false; - } - function tryAddCallSignature(symbol, location, symbolKind, symbolName, containerName, result) { - if (isCallExpressionTarget(location) || isNewExpressionTarget(location) || isNameOfFunctionDeclaration(location)) { - return tryAddSignature(symbol.declarations, false, symbolKind, symbolName, containerName, result); - } - return false; - } - function tryAddSignature(signatureDeclarations, selectConstructors, symbolKind, symbolName, containerName, result) { - var declarations = []; - var definition; - ts.forEach(signatureDeclarations, function (d) { - if ((selectConstructors && d.kind === 135) || - (!selectConstructors && (d.kind === 197 || d.kind === 134 || d.kind === 133))) { - declarations.push(d); - if (d.body) - definition = d; - } - }); - if (definition) { - result.push(createDefinitionInfo(definition, symbolKind, symbolName, containerName)); - return true; - } - else if (declarations.length) { - result.push(createDefinitionInfo(declarations[declarations.length - 1], symbolKind, symbolName, containerName)); - return true; - } - return false; - } - } - function getOccurrencesAtPosition(fileName, position) { - synchronizeHostData(); - var sourceFile = getValidSourceFile(fileName); - var node = ts.getTouchingWord(sourceFile, position); - if (!node) { - return undefined; - } - if (node.kind === 65 || node.kind === 93 || node.kind === 91 || - isLiteralNameOfPropertyDeclarationOrIndexAccess(node) || isNameOfExternalModuleImportOrDeclaration(node)) { - return convertReferences(getReferencesForNode(node, [sourceFile], true, false, false)); - } - switch (node.kind) { - case 84: - case 76: - if (hasKind(node.parent, 180)) { - return getIfElseOccurrences(node.parent); - } - break; - case 90: - if (hasKind(node.parent, 188)) { - return getReturnOccurrences(node.parent); - } - break; - case 94: - if (hasKind(node.parent, 192)) { - return getThrowOccurrences(node.parent); - } - break; - case 68: - if (hasKind(parent(parent(node)), 193)) { - return getTryCatchFinallyOccurrences(node.parent.parent); - } - break; - case 96: - case 81: - if (hasKind(parent(node), 193)) { - return getTryCatchFinallyOccurrences(node.parent); - } - break; - case 92: - if (hasKind(node.parent, 190)) { - return getSwitchCaseDefaultOccurrences(node.parent); - } - break; - case 67: - case 73: - if (hasKind(parent(parent(parent(node))), 190)) { - return getSwitchCaseDefaultOccurrences(node.parent.parent.parent); - } - break; - case 66: - case 71: - if (hasKind(node.parent, 187) || hasKind(node.parent, 186)) { - return getBreakOrContinueStatementOccurences(node.parent); - } - break; - case 82: - if (hasKind(node.parent, 183) || - hasKind(node.parent, 184) || - hasKind(node.parent, 185)) { - return getLoopBreakContinueOccurrences(node.parent); - } - break; - case 100: - case 75: - if (hasKind(node.parent, 182) || hasKind(node.parent, 181)) { - return getLoopBreakContinueOccurrences(node.parent); - } - break; - case 114: - if (hasKind(node.parent, 135)) { - return getConstructorOccurrences(node.parent); - } - break; - case 116: - case 120: - if (hasKind(node.parent, 136) || hasKind(node.parent, 137)) { - return getGetAndSetOccurrences(node.parent); - } - default: - if (ts.isModifier(node.kind) && node.parent && - (ts.isDeclaration(node.parent) || node.parent.kind === 177)) { - return getModifierOccurrences(node.kind, node.parent); - } - } - return undefined; - function getIfElseOccurrences(ifStatement) { - var keywords = []; - while (hasKind(ifStatement.parent, 180) && ifStatement.parent.elseStatement === ifStatement) { - ifStatement = ifStatement.parent; - } - while (ifStatement) { - var children = ifStatement.getChildren(); - pushKeywordIf(keywords, children[0], 84); - for (var i = children.length - 1; i >= 0; i--) { - if (pushKeywordIf(keywords, children[i], 76)) { - break; - } - } - if (!hasKind(ifStatement.elseStatement, 180)) { - break; - } - ifStatement = ifStatement.elseStatement; - } - var result = []; - for (var i = 0; i < keywords.length; i++) { - if (keywords[i].kind === 76 && i < keywords.length - 1) { - var elseKeyword = keywords[i]; - var ifKeyword = keywords[i + 1]; - var shouldHighlightNextKeyword = true; - for (var j = ifKeyword.getStart() - 1; j >= elseKeyword.end; j--) { - if (!ts.isWhiteSpace(sourceFile.text.charCodeAt(j))) { - shouldHighlightNextKeyword = false; - break; - } - } - if (shouldHighlightNextKeyword) { - result.push({ - fileName: fileName, - textSpan: ts.createTextSpanFromBounds(elseKeyword.getStart(), ifKeyword.end), - isWriteAccess: false - }); - i++; - continue; - } - } - result.push(getReferenceEntryFromNode(keywords[i])); - } - return result; - } - function getReturnOccurrences(returnStatement) { - var func = ts.getContainingFunction(returnStatement); - if (!(func && hasKind(func.body, 176))) { - return undefined; - } - var keywords = []; - ts.forEachReturnStatement(func.body, function (returnStatement) { - pushKeywordIf(keywords, returnStatement.getFirstToken(), 90); - }); - ts.forEach(aggregateOwnedThrowStatements(func.body), function (throwStatement) { - pushKeywordIf(keywords, throwStatement.getFirstToken(), 94); - }); - return ts.map(keywords, getReferenceEntryFromNode); - } - function getThrowOccurrences(throwStatement) { - var owner = getThrowStatementOwner(throwStatement); - if (!owner) { - return undefined; - } - var keywords = []; - ts.forEach(aggregateOwnedThrowStatements(owner), function (throwStatement) { - pushKeywordIf(keywords, throwStatement.getFirstToken(), 94); - }); - if (ts.isFunctionBlock(owner)) { - ts.forEachReturnStatement(owner, function (returnStatement) { - pushKeywordIf(keywords, returnStatement.getFirstToken(), 90); - }); - } - return ts.map(keywords, getReferenceEntryFromNode); - } - function aggregateOwnedThrowStatements(node) { - var statementAccumulator = []; - aggregate(node); - return statementAccumulator; - function aggregate(node) { - if (node.kind === 192) { - statementAccumulator.push(node); - } - else if (node.kind === 193) { - var tryStatement = node; - if (tryStatement.catchClause) { - aggregate(tryStatement.catchClause); - } - else { - aggregate(tryStatement.tryBlock); - } - if (tryStatement.finallyBlock) { - aggregate(tryStatement.finallyBlock); - } - } - else if (!ts.isFunctionLike(node)) { - ts.forEachChild(node, aggregate); - } - } - ; - } - function getThrowStatementOwner(throwStatement) { - var child = throwStatement; - while (child.parent) { - var parent_9 = child.parent; - if (ts.isFunctionBlock(parent_9) || parent_9.kind === 224) { - return parent_9; - } - if (parent_9.kind === 193) { - var tryStatement = parent_9; - if (tryStatement.tryBlock === child && tryStatement.catchClause) { - return child; - } - } - child = parent_9; - } - return undefined; - } - function getTryCatchFinallyOccurrences(tryStatement) { - var keywords = []; - pushKeywordIf(keywords, tryStatement.getFirstToken(), 96); - if (tryStatement.catchClause) { - pushKeywordIf(keywords, tryStatement.catchClause.getFirstToken(), 68); - } - if (tryStatement.finallyBlock) { - var finallyKeyword = ts.findChildOfKind(tryStatement, 81, sourceFile); - pushKeywordIf(keywords, finallyKeyword, 81); - } - return ts.map(keywords, getReferenceEntryFromNode); - } - function getLoopBreakContinueOccurrences(loopNode) { - var keywords = []; - if (pushKeywordIf(keywords, loopNode.getFirstToken(), 82, 100, 75)) { - if (loopNode.kind === 181) { - var loopTokens = loopNode.getChildren(); - for (var i = loopTokens.length - 1; i >= 0; i--) { - if (pushKeywordIf(keywords, loopTokens[i], 100)) { - break; - } - } - } - } - var breaksAndContinues = aggregateAllBreakAndContinueStatements(loopNode.statement); - ts.forEach(breaksAndContinues, function (statement) { - if (ownsBreakOrContinueStatement(loopNode, statement)) { - pushKeywordIf(keywords, statement.getFirstToken(), 66, 71); - } - }); - return ts.map(keywords, getReferenceEntryFromNode); - } - function getSwitchCaseDefaultOccurrences(switchStatement) { - var keywords = []; - pushKeywordIf(keywords, switchStatement.getFirstToken(), 92); - ts.forEach(switchStatement.caseBlock.clauses, function (clause) { - pushKeywordIf(keywords, clause.getFirstToken(), 67, 73); - var breaksAndContinues = aggregateAllBreakAndContinueStatements(clause); - ts.forEach(breaksAndContinues, function (statement) { - if (ownsBreakOrContinueStatement(switchStatement, statement)) { - pushKeywordIf(keywords, statement.getFirstToken(), 66); - } - }); - }); - return ts.map(keywords, getReferenceEntryFromNode); - } - function getBreakOrContinueStatementOccurences(breakOrContinueStatement) { - var owner = getBreakOrContinueOwner(breakOrContinueStatement); - if (owner) { - switch (owner.kind) { - case 183: - case 184: - case 185: - case 181: - case 182: - return getLoopBreakContinueOccurrences(owner); - case 190: - return getSwitchCaseDefaultOccurrences(owner); - } - } - return undefined; - } - function aggregateAllBreakAndContinueStatements(node) { - var statementAccumulator = []; - aggregate(node); - return statementAccumulator; - function aggregate(node) { - if (node.kind === 187 || node.kind === 186) { - statementAccumulator.push(node); - } - else if (!ts.isFunctionLike(node)) { - ts.forEachChild(node, aggregate); - } - } - ; - } - function ownsBreakOrContinueStatement(owner, statement) { - var actualOwner = getBreakOrContinueOwner(statement); - return actualOwner && actualOwner === owner; - } - function getBreakOrContinueOwner(statement) { - for (var node_1 = statement.parent; node_1; node_1 = node_1.parent) { - switch (node_1.kind) { - case 190: - if (statement.kind === 186) { - continue; - } - case 183: - case 184: - case 185: - case 182: - case 181: - if (!statement.label || isLabeledBy(node_1, statement.label.text)) { - return node_1; - } - break; - default: - if (ts.isFunctionLike(node_1)) { - return undefined; - } - break; - } - } - return undefined; - } - function getConstructorOccurrences(constructorDeclaration) { - var declarations = constructorDeclaration.symbol.getDeclarations(); - var keywords = []; - ts.forEach(declarations, function (declaration) { - ts.forEach(declaration.getChildren(), function (token) { - return pushKeywordIf(keywords, token, 114); - }); - }); - return ts.map(keywords, getReferenceEntryFromNode); - } - function getGetAndSetOccurrences(accessorDeclaration) { - var keywords = []; - tryPushAccessorKeyword(accessorDeclaration.symbol, 136); - tryPushAccessorKeyword(accessorDeclaration.symbol, 137); - return ts.map(keywords, getReferenceEntryFromNode); - function tryPushAccessorKeyword(accessorSymbol, accessorKind) { - var accessor = ts.getDeclarationOfKind(accessorSymbol, accessorKind); - if (accessor) { - ts.forEach(accessor.getChildren(), function (child) { return pushKeywordIf(keywords, child, 116, 120); }); - } - } - } - function getModifierOccurrences(modifier, declaration) { - var container = declaration.parent; - if (ts.isAccessibilityModifier(modifier)) { - if (!(container.kind === 198 || - (declaration.kind === 129 && hasKind(container, 135)))) { - return undefined; - } - } - else if (modifier === 110) { - if (container.kind !== 198) { - return undefined; - } - } - else if (modifier === 78 || modifier === 115) { - if (!(container.kind === 203 || container.kind === 224)) { - return undefined; - } - } - else { - return undefined; - } - var keywords = []; - var modifierFlag = getFlagFromModifier(modifier); - var nodes; - switch (container.kind) { - case 203: - case 224: - nodes = container.statements; - break; - case 135: - nodes = container.parameters.concat(container.parent.members); - break; - case 198: - nodes = container.members; - if (modifierFlag & 112) { - var constructor = ts.forEach(container.members, function (member) { - return member.kind === 135 && member; - }); - if (constructor) { - nodes = nodes.concat(constructor.parameters); - } - } - break; - default: - ts.Debug.fail("Invalid container kind."); - } - ts.forEach(nodes, function (node) { - if (node.modifiers && node.flags & modifierFlag) { - ts.forEach(node.modifiers, function (child) { return pushKeywordIf(keywords, child, modifier); }); - } - }); - return ts.map(keywords, getReferenceEntryFromNode); - function getFlagFromModifier(modifier) { - switch (modifier) { - case 109: - return 16; - case 107: - return 32; - case 108: - return 64; - case 110: - return 128; - case 78: - return 1; - case 115: - return 2; - default: - ts.Debug.fail(); - } - } - } - function hasKind(node, kind) { - return node !== undefined && node.kind === kind; - } - function parent(node) { - return node && node.parent; - } - function pushKeywordIf(keywordList, token) { - var expected = []; - for (var _i = 2; _i < arguments.length; _i++) { - expected[_i - 2] = arguments[_i]; - } - if (token && ts.contains(expected, token.kind)) { - keywordList.push(token); - return true; - } - return false; - } - } - function convertReferences(referenceSymbols) { - if (!referenceSymbols) { - return undefined; - } - var referenceEntries = []; - for (var _i = 0, _n = referenceSymbols.length; _i < _n; _i++) { - var referenceSymbol = referenceSymbols[_i]; - ts.addRange(referenceEntries, referenceSymbol.references); - } - return referenceEntries; - } - function findRenameLocations(fileName, position, findInStrings, findInComments) { - var referencedSymbols = findReferencedSymbols(fileName, position, findInStrings, findInComments); - return convertReferences(referencedSymbols); - } - function getReferencesAtPosition(fileName, position) { - var referencedSymbols = findReferencedSymbols(fileName, position, false, false); - return convertReferences(referencedSymbols); - } - function findReferences(fileName, position) { - var referencedSymbols = findReferencedSymbols(fileName, position, false, false); - return ts.filter(referencedSymbols, function (rs) { return !!rs.definition; }); - } - function findReferencedSymbols(fileName, position, findInStrings, findInComments) { - synchronizeHostData(); - var sourceFile = getValidSourceFile(fileName); - var node = ts.getTouchingPropertyName(sourceFile, position); - if (!node) { - return undefined; - } - if (node.kind !== 65 && - !isLiteralNameOfPropertyDeclarationOrIndexAccess(node) && - !isNameOfExternalModuleImportOrDeclaration(node)) { - return undefined; - } - ts.Debug.assert(node.kind === 65 || node.kind === 7 || node.kind === 8); - return getReferencesForNode(node, program.getSourceFiles(), false, findInStrings, findInComments); - } - function getReferencesForNode(node, sourceFiles, searchOnlyInCurrentFile, findInStrings, findInComments) { - if (isLabelName(node)) { - if (isJumpStatementTarget(node)) { - var labelDefinition = getTargetLabel(node.parent, node.text); - return labelDefinition ? getLabelReferencesInNode(labelDefinition.parent, labelDefinition) : undefined; - } - else { - return getLabelReferencesInNode(node.parent, node); - } - } - if (node.kind === 93) { - return getReferencesForThisKeyword(node, sourceFiles); - } - if (node.kind === 91) { - return getReferencesForSuperKeyword(node); - } - var symbol = typeInfoResolver.getSymbolAtLocation(node); - if (!symbol) { - return undefined; - } - var declarations = symbol.declarations; - if (!declarations || !declarations.length) { - return undefined; - } - var result; - var searchMeaning = getIntersectingMeaningFromDeclarations(getMeaningFromLocation(node), declarations); - var declaredName = getDeclaredName(symbol, node); - var scope = getSymbolScope(symbol); - var symbolToIndex = []; - if (scope) { - result = []; - getReferencesInNode(scope, symbol, declaredName, node, searchMeaning, findInStrings, findInComments, result, symbolToIndex); - } - else { - if (searchOnlyInCurrentFile) { - ts.Debug.assert(sourceFiles.length === 1); - result = []; - getReferencesInNode(sourceFiles[0], symbol, declaredName, node, searchMeaning, findInStrings, findInComments, result, symbolToIndex); - } - else { - var internedName = getInternedName(symbol, node, declarations); - ts.forEach(sourceFiles, function (sourceFile) { - cancellationToken.throwIfCancellationRequested(); - var nameTable = getNameTable(sourceFile); - if (ts.lookUp(nameTable, internedName)) { - result = result || []; - getReferencesInNode(sourceFile, symbol, declaredName, node, searchMeaning, findInStrings, findInComments, result, symbolToIndex); - } - }); - } - } - return result; - function getDefinition(symbol) { - var info = getSymbolDisplayPartsDocumentationAndSymbolKind(symbol, node.getSourceFile(), getContainerNode(node), typeInfoResolver, node); - var name = ts.map(info.displayParts, function (p) { return p.text; }).join(""); - var declarations = symbol.declarations; - if (!declarations || declarations.length === 0) { - return undefined; - } - return { - containerKind: "", - containerName: "", - name: name, - kind: info.symbolKind, - fileName: declarations[0].getSourceFile().fileName, - textSpan: ts.createTextSpan(declarations[0].getStart(), 0) - }; - } - function isImportOrExportSpecifierName(location) { - return location.parent && - (location.parent.kind === 210 || location.parent.kind === 214) && - location.parent.propertyName === location; - } - function isImportOrExportSpecifierImportSymbol(symbol) { - return (symbol.flags & 8388608) && ts.forEach(symbol.declarations, function (declaration) { - return declaration.kind === 210 || declaration.kind === 214; - }); - } - function getDeclaredName(symbol, location) { - var functionExpression = ts.forEach(symbol.declarations, function (d) { return d.kind === 162 ? d : undefined; }); - var name; - if (functionExpression && functionExpression.name) { - name = functionExpression.name.text; - } - if (isImportOrExportSpecifierName(location)) { - return location.getText(); - } - name = typeInfoResolver.symbolToString(symbol); - return stripQuotes(name); - } - function getInternedName(symbol, location, declarations) { - if (isImportOrExportSpecifierName(location)) { - return location.getText(); - } - var functionExpression = ts.forEach(declarations, function (d) { return d.kind === 162 ? d : undefined; }); - var name = functionExpression && functionExpression.name - ? functionExpression.name.text - : symbol.name; - return stripQuotes(name); - } - function stripQuotes(name) { - var length = name.length; - if (length >= 2 && name.charCodeAt(0) === 34 && name.charCodeAt(length - 1) === 34) { - return name.substring(1, length - 1); - } - ; - return name; - } - function getSymbolScope(symbol) { - if (symbol.flags & (4 | 8192)) { - var privateDeclaration = ts.forEach(symbol.getDeclarations(), function (d) { return (d.flags & 32) ? d : undefined; }); - if (privateDeclaration) { - return ts.getAncestor(privateDeclaration, 198); - } - } - if (symbol.flags & 8388608) { - return undefined; - } - if (symbol.parent || (symbol.flags & 268435456)) { - return undefined; - } - var scope = undefined; - var declarations = symbol.getDeclarations(); - if (declarations) { - for (var _i = 0, _n = declarations.length; _i < _n; _i++) { - var declaration = declarations[_i]; - var container = getContainerNode(declaration); - if (!container) { - return undefined; - } - if (scope && scope !== container) { - return undefined; - } - if (container.kind === 224 && !ts.isExternalModule(container)) { - return undefined; - } - scope = container; - } - } - return scope; - } - function getPossibleSymbolReferencePositions(sourceFile, symbolName, start, end) { - var positions = []; - if (!symbolName || !symbolName.length) { - return positions; - } - var text = sourceFile.text; - var sourceLength = text.length; - var symbolNameLength = symbolName.length; - var position = text.indexOf(symbolName, start); - while (position >= 0) { - cancellationToken.throwIfCancellationRequested(); - if (position > end) - break; - var endPosition = position + symbolNameLength; - if ((position === 0 || !ts.isIdentifierPart(text.charCodeAt(position - 1), 2)) && - (endPosition === sourceLength || !ts.isIdentifierPart(text.charCodeAt(endPosition), 2))) { - positions.push(position); - } - position = text.indexOf(symbolName, position + symbolNameLength + 1); - } - return positions; - } - function getLabelReferencesInNode(container, targetLabel) { - var references = []; - var sourceFile = container.getSourceFile(); - var labelName = targetLabel.text; - var possiblePositions = getPossibleSymbolReferencePositions(sourceFile, labelName, container.getStart(), container.getEnd()); - ts.forEach(possiblePositions, function (position) { - cancellationToken.throwIfCancellationRequested(); - var node = ts.getTouchingWord(sourceFile, position); - if (!node || node.getWidth() !== labelName.length) { - return; - } - if (node === targetLabel || - (isJumpStatementTarget(node) && getTargetLabel(node, labelName) === targetLabel)) { - references.push(getReferenceEntryFromNode(node)); - } - }); - var definition = { - containerKind: "", - containerName: "", - fileName: targetLabel.getSourceFile().fileName, - kind: ScriptElementKind.label, - name: labelName, - textSpan: ts.createTextSpanFromBounds(targetLabel.getStart(), targetLabel.getEnd()) - }; - return [{ definition: definition, references: references }]; - } - function isValidReferencePosition(node, searchSymbolName) { - if (node) { - switch (node.kind) { - case 65: - return node.getWidth() === searchSymbolName.length; - case 8: - if (isLiteralNameOfPropertyDeclarationOrIndexAccess(node) || - isNameOfExternalModuleImportOrDeclaration(node)) { - return node.getWidth() === searchSymbolName.length + 2; - } - break; - case 7: - if (isLiteralNameOfPropertyDeclarationOrIndexAccess(node)) { - return node.getWidth() === searchSymbolName.length; - } - break; - } - } - return false; - } - function getReferencesInNode(container, searchSymbol, searchText, searchLocation, searchMeaning, findInStrings, findInComments, result, symbolToIndex) { - var sourceFile = container.getSourceFile(); - var tripleSlashDirectivePrefixRegex = /^\/\/\/\s*= 0) { - var referencedSymbol = getReferencedSymbol(shorthandValueSymbol); - referencedSymbol.references.push(getReferenceEntryFromNode(referenceSymbolDeclaration.name)); - } - } - }); - } - return; - function getReferencedSymbol(symbol) { - var symbolId = ts.getSymbolId(symbol); - var index = symbolToIndex[symbolId]; - if (index === undefined) { - index = result.length; - symbolToIndex[symbolId] = index; - result.push({ - definition: getDefinition(symbol), - references: [] - }); - } - return result[index]; - } - function isInString(position) { - var token = ts.getTokenAtPosition(sourceFile, position); - return token && token.kind === 8 && position > token.getStart(); - } - function isInComment(position) { - var token = ts.getTokenAtPosition(sourceFile, position); - if (token && position < token.getStart()) { - var commentRanges = ts.getLeadingCommentRanges(sourceFile.text, token.pos); - return ts.forEach(commentRanges, function (c) { - if (c.pos < position && position < c.end) { - var commentText = sourceFile.text.substring(c.pos, c.end); - if (!tripleSlashDirectivePrefixRegex.test(commentText)) { - return true; - } - } - }); - } - return false; - } - } - function getReferencesForSuperKeyword(superKeyword) { - var searchSpaceNode = ts.getSuperContainer(superKeyword, false); - if (!searchSpaceNode) { - return undefined; - } - var staticFlag = 128; - switch (searchSpaceNode.kind) { - case 132: - case 131: - case 134: - case 133: - case 135: - case 136: - case 137: - staticFlag &= searchSpaceNode.flags; - searchSpaceNode = searchSpaceNode.parent; - break; - default: - return undefined; - } - var references = []; - var sourceFile = searchSpaceNode.getSourceFile(); - var possiblePositions = getPossibleSymbolReferencePositions(sourceFile, "super", searchSpaceNode.getStart(), searchSpaceNode.getEnd()); - ts.forEach(possiblePositions, function (position) { - cancellationToken.throwIfCancellationRequested(); - var node = ts.getTouchingWord(sourceFile, position); - if (!node || node.kind !== 91) { - return; - } - var container = ts.getSuperContainer(node, false); - if (container && (128 & container.flags) === staticFlag && container.parent.symbol === searchSpaceNode.symbol) { - references.push(getReferenceEntryFromNode(node)); - } - }); - var definition = getDefinition(searchSpaceNode.symbol); - return [{ definition: definition, references: references }]; - } - function getReferencesForThisKeyword(thisOrSuperKeyword, sourceFiles) { - var searchSpaceNode = ts.getThisContainer(thisOrSuperKeyword, false); - var staticFlag = 128; - switch (searchSpaceNode.kind) { - case 134: - case 133: - if (ts.isObjectLiteralMethod(searchSpaceNode)) { - break; - } - case 132: - case 131: - case 135: - case 136: - case 137: - staticFlag &= searchSpaceNode.flags; - searchSpaceNode = searchSpaceNode.parent; - break; - case 224: - if (ts.isExternalModule(searchSpaceNode)) { - return undefined; - } - case 197: - case 162: - break; - default: - return undefined; - } - var references = []; - var possiblePositions; - if (searchSpaceNode.kind === 224) { - ts.forEach(sourceFiles, function (sourceFile) { - possiblePositions = getPossibleSymbolReferencePositions(sourceFile, "this", sourceFile.getStart(), sourceFile.getEnd()); - getThisReferencesInFile(sourceFile, sourceFile, possiblePositions, references); - }); - } - else { - var sourceFile = searchSpaceNode.getSourceFile(); - possiblePositions = getPossibleSymbolReferencePositions(sourceFile, "this", searchSpaceNode.getStart(), searchSpaceNode.getEnd()); - getThisReferencesInFile(sourceFile, searchSpaceNode, possiblePositions, references); - } - return [{ - definition: { - containerKind: "", - containerName: "", - fileName: node.getSourceFile().fileName, - kind: ScriptElementKind.variableElement, - name: "this", - textSpan: ts.createTextSpanFromBounds(node.getStart(), node.getEnd()) - }, - references: references - }]; - function getThisReferencesInFile(sourceFile, searchSpaceNode, possiblePositions, result) { - ts.forEach(possiblePositions, function (position) { - cancellationToken.throwIfCancellationRequested(); - var node = ts.getTouchingWord(sourceFile, position); - if (!node || node.kind !== 93) { - return; - } - var container = ts.getThisContainer(node, false); - switch (searchSpaceNode.kind) { - case 162: - case 197: - if (searchSpaceNode.symbol === container.symbol) { - result.push(getReferenceEntryFromNode(node)); - } - break; - case 134: - case 133: - if (ts.isObjectLiteralMethod(searchSpaceNode) && searchSpaceNode.symbol === container.symbol) { - result.push(getReferenceEntryFromNode(node)); - } - break; - case 198: - if (container.parent && searchSpaceNode.symbol === container.parent.symbol && (container.flags & 128) === staticFlag) { - result.push(getReferenceEntryFromNode(node)); - } - break; - case 224: - if (container.kind === 224 && !ts.isExternalModule(container)) { - result.push(getReferenceEntryFromNode(node)); - } - break; - } - }); - } - } - function populateSearchSymbolSet(symbol, location) { - var result = [symbol]; - if (isImportOrExportSpecifierImportSymbol(symbol)) { - result.push(typeInfoResolver.getAliasedSymbol(symbol)); - } - if (isNameOfPropertyAssignment(location)) { - ts.forEach(getPropertySymbolsFromContextualType(location), function (contextualSymbol) { - result.push.apply(result, typeInfoResolver.getRootSymbols(contextualSymbol)); - }); - var shorthandValueSymbol = typeInfoResolver.getShorthandAssignmentValueSymbol(location.parent); - if (shorthandValueSymbol) { - result.push(shorthandValueSymbol); - } - } - ts.forEach(typeInfoResolver.getRootSymbols(symbol), function (rootSymbol) { - if (rootSymbol !== symbol) { - result.push(rootSymbol); - } - if (rootSymbol.parent && rootSymbol.parent.flags & (32 | 64)) { - getPropertySymbolsFromBaseTypes(rootSymbol.parent, rootSymbol.getName(), result); - } - }); - return result; - } - function getPropertySymbolsFromBaseTypes(symbol, propertyName, result) { - if (symbol && symbol.flags & (32 | 64)) { - ts.forEach(symbol.getDeclarations(), function (declaration) { - if (declaration.kind === 198) { - getPropertySymbolFromTypeReference(ts.getClassBaseTypeNode(declaration)); - ts.forEach(ts.getClassImplementedTypeNodes(declaration), getPropertySymbolFromTypeReference); - } - else if (declaration.kind === 199) { - ts.forEach(ts.getInterfaceBaseTypeNodes(declaration), getPropertySymbolFromTypeReference); - } - }); - } - return; - function getPropertySymbolFromTypeReference(typeReference) { - if (typeReference) { - var type = typeInfoResolver.getTypeAtLocation(typeReference); - if (type) { - var propertySymbol = typeInfoResolver.getPropertyOfType(type, propertyName); - if (propertySymbol) { - result.push(propertySymbol); - } - getPropertySymbolsFromBaseTypes(type.symbol, propertyName, result); - } - } - } - } - function getRelatedSymbol(searchSymbols, referenceSymbol, referenceLocation) { - if (searchSymbols.indexOf(referenceSymbol) >= 0) { - return referenceSymbol; - } - if (isImportOrExportSpecifierImportSymbol(referenceSymbol)) { - var aliasedSymbol = typeInfoResolver.getAliasedSymbol(referenceSymbol); - if (searchSymbols.indexOf(aliasedSymbol) >= 0) { - return aliasedSymbol; - } - } - if (isNameOfPropertyAssignment(referenceLocation)) { - return ts.forEach(getPropertySymbolsFromContextualType(referenceLocation), function (contextualSymbol) { - return ts.forEach(typeInfoResolver.getRootSymbols(contextualSymbol), function (s) { return searchSymbols.indexOf(s) >= 0 ? s : undefined; }); - }); - } - return ts.forEach(typeInfoResolver.getRootSymbols(referenceSymbol), function (rootSymbol) { - if (searchSymbols.indexOf(rootSymbol) >= 0) { - return rootSymbol; - } - if (rootSymbol.parent && rootSymbol.parent.flags & (32 | 64)) { - var result_2 = []; - getPropertySymbolsFromBaseTypes(rootSymbol.parent, rootSymbol.getName(), result_2); - return ts.forEach(result_2, function (s) { return searchSymbols.indexOf(s) >= 0 ? s : undefined; }); - } - return undefined; - }); - } - function getPropertySymbolsFromContextualType(node) { - if (isNameOfPropertyAssignment(node)) { - var objectLiteral = node.parent.parent; - var contextualType = typeInfoResolver.getContextualType(objectLiteral); - var name_19 = node.text; - if (contextualType) { - if (contextualType.flags & 16384) { - var unionProperty = contextualType.getProperty(name_19); - if (unionProperty) { - return [unionProperty]; - } - else { - var result_3 = []; - ts.forEach(contextualType.types, function (t) { - var symbol = t.getProperty(name_19); - if (symbol) { - result_3.push(symbol); - } - }); - return result_3; - } - } - else { - var symbol_1 = contextualType.getProperty(name_19); - if (symbol_1) { - return [symbol_1]; - } - } - } - } - return undefined; - } - function getIntersectingMeaningFromDeclarations(meaning, declarations) { - if (declarations) { - var lastIterationMeaning; - do { - lastIterationMeaning = meaning; - for (var _i = 0, _n = declarations.length; _i < _n; _i++) { - var declaration = declarations[_i]; - var declarationMeaning = getMeaningFromDeclaration(declaration); - if (declarationMeaning & meaning) { - meaning |= declarationMeaning; - } - } - } while (meaning !== lastIterationMeaning); - } - return meaning; - } - } - function getReferenceEntryFromNode(node) { - var start = node.getStart(); - var end = node.getEnd(); - if (node.kind === 8) { - start += 1; - end -= 1; - } - return { - fileName: node.getSourceFile().fileName, - textSpan: ts.createTextSpanFromBounds(start, end), - isWriteAccess: isWriteAccess(node) - }; - } - function isWriteAccess(node) { - if (node.kind === 65 && ts.isDeclarationName(node)) { - return true; - } - var parent = node.parent; - if (parent) { - if (parent.kind === 168 || parent.kind === 167) { - return true; - } - else if (parent.kind === 169 && parent.left === node) { - var operator = parent.operatorToken.kind; - return 53 <= operator && operator <= 64; - } - } - return false; - } - function getNavigateToItems(searchValue, maxResultCount) { - synchronizeHostData(); - return ts.NavigateTo.getNavigateToItems(program, cancellationToken, searchValue, maxResultCount); - } - function containErrors(diagnostics) { - return ts.forEach(diagnostics, function (diagnostic) { return diagnostic.category === ts.DiagnosticCategory.Error; }); - } - function getEmitOutput(fileName) { - synchronizeHostData(); - var sourceFile = getValidSourceFile(fileName); - var outputFiles = []; - function writeFile(fileName, data, writeByteOrderMark) { - outputFiles.push({ - name: fileName, - writeByteOrderMark: writeByteOrderMark, - text: data - }); - } - var emitOutput = program.emit(sourceFile, writeFile); - return { - outputFiles: outputFiles, - emitSkipped: emitOutput.emitSkipped - }; - } - function getMeaningFromDeclaration(node) { - switch (node.kind) { - case 129: - case 195: - case 152: - case 132: - case 131: - case 221: - case 222: - case 223: - case 134: - case 133: - case 135: - case 136: - case 137: - case 197: - case 162: - case 163: - case 220: - return 1; - case 128: - case 199: - case 200: - case 145: - return 2; - case 198: - case 201: - return 1 | 2; - case 202: - if (node.name.kind === 8) { - return 4 | 1; - } - else if (ts.getModuleInstanceState(node) === 1) { - return 4 | 1; - } - else { - return 4; - } - case 209: - case 210: - case 205: - case 206: - case 211: - case 212: - return 1 | 2 | 4; - case 224: - return 4 | 1; - } - return 1 | 2 | 4; - ts.Debug.fail("Unknown declaration type"); - } - function isTypeReference(node) { - if (isRightSideOfQualifiedName(node)) { - node = node.parent; - } - return node.parent.kind === 141; - } - function isNamespaceReference(node) { - var root = node; - var isLastClause = true; - if (root.parent.kind === 126) { - while (root.parent && root.parent.kind === 126) - root = root.parent; - isLastClause = root.right === node; - } - return root.parent.kind === 141 && !isLastClause; - } - function isInRightSideOfImport(node) { - while (node.parent.kind === 126) { - node = node.parent; - } - return ts.isInternalModuleImportEqualsDeclaration(node.parent) && node.parent.moduleReference === node; - } - function getMeaningFromRightHandSideOfImportEquals(node) { - ts.Debug.assert(node.kind === 65); - if (node.parent.kind === 126 && - node.parent.right === node && - node.parent.parent.kind === 205) { - return 1 | 2 | 4; - } - return 4; - } - function getMeaningFromLocation(node) { - if (node.parent.kind === 211) { - return 1 | 2 | 4; - } - else if (isInRightSideOfImport(node)) { - return getMeaningFromRightHandSideOfImportEquals(node); - } - else if (ts.isDeclarationName(node)) { - return getMeaningFromDeclaration(node.parent); - } - else if (isTypeReference(node)) { - return 2; - } - else if (isNamespaceReference(node)) { - return 4; - } - else { - return 1; - } - } - function getSignatureHelpItems(fileName, position) { - synchronizeHostData(); - var sourceFile = getValidSourceFile(fileName); - return ts.SignatureHelp.getSignatureHelpItems(sourceFile, position, typeInfoResolver, cancellationToken); - } - function getSourceFile(fileName) { - return syntaxTreeCache.getCurrentSourceFile(fileName); - } - function getNameOrDottedNameSpan(fileName, startPos, endPos) { - var sourceFile = syntaxTreeCache.getCurrentSourceFile(fileName); - var node = ts.getTouchingPropertyName(sourceFile, startPos); - if (!node) { - return; - } - switch (node.kind) { - case 155: - case 126: - case 8: - case 80: - case 95: - case 89: - case 91: - case 93: - case 65: - break; - default: - return; - } - var nodeForStartPos = node; - while (true) { - if (isRightSideOfPropertyAccess(nodeForStartPos) || isRightSideOfQualifiedName(nodeForStartPos)) { - nodeForStartPos = nodeForStartPos.parent; - } - else if (isNameOfModuleDeclaration(nodeForStartPos)) { - if (nodeForStartPos.parent.parent.kind === 202 && - nodeForStartPos.parent.parent.body === nodeForStartPos.parent) { - nodeForStartPos = nodeForStartPos.parent.parent.name; - } - else { - break; - } - } - else { - break; - } - } - return ts.createTextSpanFromBounds(nodeForStartPos.getStart(), node.getEnd()); - } - function getBreakpointStatementAtPosition(fileName, position) { - var sourceFile = syntaxTreeCache.getCurrentSourceFile(fileName); - return ts.BreakpointResolver.spanInSourceFileAtLocation(sourceFile, position); - } - function getNavigationBarItems(fileName) { - var sourceFile = syntaxTreeCache.getCurrentSourceFile(fileName); - return ts.NavigationBar.getNavigationBarItems(sourceFile); - } - function getSemanticClassifications(fileName, span) { - synchronizeHostData(); - var sourceFile = getValidSourceFile(fileName); - var result = []; - processNode(sourceFile); - return result; - function classifySymbol(symbol, meaningAtPosition) { - var flags = symbol.getFlags(); - if (flags & 32) { - return ClassificationTypeNames.className; - } - else if (flags & 384) { - return ClassificationTypeNames.enumName; - } - else if (flags & 524288) { - return ClassificationTypeNames.typeAlias; - } - else if (meaningAtPosition & 2) { - if (flags & 64) { - return ClassificationTypeNames.interfaceName; - } - else if (flags & 262144) { - return ClassificationTypeNames.typeParameterName; - } - } - else if (flags & 1536) { - if (meaningAtPosition & 4 || - (meaningAtPosition & 1 && hasValueSideModule(symbol))) { - return ClassificationTypeNames.moduleName; - } - } - return undefined; - function hasValueSideModule(symbol) { - return ts.forEach(symbol.declarations, function (declaration) { - return declaration.kind === 202 && ts.getModuleInstanceState(declaration) == 1; - }); - } - } - function processNode(node) { - if (node && ts.textSpanIntersectsWith(span, node.getStart(), node.getWidth())) { - if (node.kind === 65 && node.getWidth() > 0) { - var symbol = typeInfoResolver.getSymbolAtLocation(node); - if (symbol) { - var type = classifySymbol(symbol, getMeaningFromLocation(node)); - if (type) { - result.push({ - textSpan: ts.createTextSpan(node.getStart(), node.getWidth()), - classificationType: type - }); - } - } - } - ts.forEachChild(node, processNode); - } - } - } - function getSyntacticClassifications(fileName, span) { - var sourceFile = syntaxTreeCache.getCurrentSourceFile(fileName); - var triviaScanner = ts.createScanner(2, false, sourceFile.text); - var mergeConflictScanner = ts.createScanner(2, false, sourceFile.text); - var result = []; - processElement(sourceFile); - return result; - function classifyLeadingTrivia(token) { - var tokenStart = ts.skipTrivia(sourceFile.text, token.pos, false); - if (tokenStart === token.pos) { - return; - } - triviaScanner.setTextPos(token.pos); - while (true) { - var start = triviaScanner.getTextPos(); - var kind = triviaScanner.scan(); - var end = triviaScanner.getTextPos(); - var width = end - start; - if (ts.textSpanIntersectsWith(span, start, width)) { - if (!ts.isTrivia(kind)) { - return; - } - if (ts.isComment(kind)) { - result.push({ - textSpan: ts.createTextSpan(start, width), - classificationType: ClassificationTypeNames.comment - }); - continue; - } - if (kind === 6) { - var text = sourceFile.text; - var ch = text.charCodeAt(start); - if (ch === 60 || ch === 62) { - result.push({ - textSpan: ts.createTextSpan(start, width), - classificationType: ClassificationTypeNames.comment - }); - continue; - } - ts.Debug.assert(ch === 61); - classifyDisabledMergeCode(text, start, end); - } - } - } - } - function classifyDisabledMergeCode(text, start, end) { - for (var i = start; i < end; i++) { - if (ts.isLineBreak(text.charCodeAt(i))) { - break; - } - } - result.push({ - textSpan: ts.createTextSpanFromBounds(start, i), - classificationType: ClassificationTypeNames.comment - }); - mergeConflictScanner.setTextPos(i); - while (mergeConflictScanner.getTextPos() < end) { - classifyDisabledCodeToken(); - } - } - function classifyDisabledCodeToken() { - var start = mergeConflictScanner.getTextPos(); - var tokenKind = mergeConflictScanner.scan(); - var end = mergeConflictScanner.getTextPos(); - var type = classifyTokenType(tokenKind); - if (type) { - result.push({ - textSpan: ts.createTextSpanFromBounds(start, end), - classificationType: type - }); - } - } - function classifyToken(token) { - classifyLeadingTrivia(token); - if (token.getWidth() > 0) { - var type = classifyTokenType(token.kind, token); - if (type) { - result.push({ - textSpan: ts.createTextSpan(token.getStart(), token.getWidth()), - classificationType: type - }); - } - } - } - function classifyTokenType(tokenKind, token) { - if (ts.isKeyword(tokenKind)) { - return ClassificationTypeNames.keyword; - } - if (tokenKind === 24 || tokenKind === 25) { - if (token && ts.getTypeArgumentOrTypeParameterList(token.parent)) { - return ClassificationTypeNames.punctuation; - } - } - if (ts.isPunctuation(tokenKind)) { - if (token) { - if (tokenKind === 53) { - if (token.parent.kind === 195 || - token.parent.kind === 132 || - token.parent.kind === 129) { - return ClassificationTypeNames.operator; - } - } - if (token.parent.kind === 169 || - token.parent.kind === 167 || - token.parent.kind === 168 || - token.parent.kind === 170) { - return ClassificationTypeNames.operator; - } - } - return ClassificationTypeNames.punctuation; - } - else if (tokenKind === 7) { - return ClassificationTypeNames.numericLiteral; - } - else if (tokenKind === 8) { - return ClassificationTypeNames.stringLiteral; - } - else if (tokenKind === 9) { - return ClassificationTypeNames.stringLiteral; - } - else if (ts.isTemplateLiteralKind(tokenKind)) { - return ClassificationTypeNames.stringLiteral; - } - else if (tokenKind === 65) { - if (token) { - switch (token.parent.kind) { - case 198: - if (token.parent.name === token) { - return ClassificationTypeNames.className; - } - return; - case 128: - if (token.parent.name === token) { - return ClassificationTypeNames.typeParameterName; - } - return; - case 199: - if (token.parent.name === token) { - return ClassificationTypeNames.interfaceName; - } - return; - case 201: - if (token.parent.name === token) { - return ClassificationTypeNames.enumName; - } - return; - case 202: - if (token.parent.name === token) { - return ClassificationTypeNames.moduleName; - } - return; - } - } - return ClassificationTypeNames.text; - } - } - function processElement(element) { - if (ts.textSpanIntersectsWith(span, element.getFullStart(), element.getFullWidth())) { - var children = element.getChildren(); - for (var _i = 0, _n = children.length; _i < _n; _i++) { - var child = children[_i]; - if (ts.isToken(child)) { - classifyToken(child); - } - else { - processElement(child); - } - } - } - } - } - function getOutliningSpans(fileName) { - var sourceFile = syntaxTreeCache.getCurrentSourceFile(fileName); - return ts.OutliningElementsCollector.collectElements(sourceFile); - } - function getBraceMatchingAtPosition(fileName, position) { - var sourceFile = syntaxTreeCache.getCurrentSourceFile(fileName); - var result = []; - var token = ts.getTouchingToken(sourceFile, position); - if (token.getStart(sourceFile) === position) { - var matchKind = getMatchingTokenKind(token); - if (matchKind) { - var parentElement = token.parent; - var childNodes = parentElement.getChildren(sourceFile); - for (var _i = 0, _n = childNodes.length; _i < _n; _i++) { - var current = childNodes[_i]; - if (current.kind === matchKind) { - var range1 = ts.createTextSpan(token.getStart(sourceFile), token.getWidth(sourceFile)); - var range2 = ts.createTextSpan(current.getStart(sourceFile), current.getWidth(sourceFile)); - if (range1.start < range2.start) { - result.push(range1, range2); - } - else { - result.push(range2, range1); - } - break; - } - } - } - } - return result; - function getMatchingTokenKind(token) { - switch (token.kind) { - case 14: return 15; - case 16: return 17; - case 18: return 19; - case 24: return 25; - case 15: return 14; - case 17: return 16; - case 19: return 18; - case 25: return 24; - } - return undefined; - } - } - function getIndentationAtPosition(fileName, position, editorOptions) { - var start = new Date().getTime(); - var sourceFile = syntaxTreeCache.getCurrentSourceFile(fileName); - log("getIndentationAtPosition: getCurrentSourceFile: " + (new Date().getTime() - start)); - start = new Date().getTime(); - var result = ts.formatting.SmartIndenter.getIndentation(position, sourceFile, editorOptions); - log("getIndentationAtPosition: computeIndentation : " + (new Date().getTime() - start)); - return result; - } - function getFormattingEditsForRange(fileName, start, end, options) { - var sourceFile = syntaxTreeCache.getCurrentSourceFile(fileName); - return ts.formatting.formatSelection(start, end, sourceFile, getRuleProvider(options), options); - } - function getFormattingEditsForDocument(fileName, options) { - var sourceFile = syntaxTreeCache.getCurrentSourceFile(fileName); - return ts.formatting.formatDocument(sourceFile, getRuleProvider(options), options); - } - function getFormattingEditsAfterKeystroke(fileName, position, key, options) { - var sourceFile = syntaxTreeCache.getCurrentSourceFile(fileName); - if (key === "}") { - return ts.formatting.formatOnClosingCurly(position, sourceFile, getRuleProvider(options), options); - } - else if (key === ";") { - return ts.formatting.formatOnSemicolon(position, sourceFile, getRuleProvider(options), options); - } - else if (key === "\n") { - return ts.formatting.formatOnEnter(position, sourceFile, getRuleProvider(options), options); - } - return []; - } - function getTodoComments(fileName, descriptors) { - synchronizeHostData(); - var sourceFile = getValidSourceFile(fileName); - cancellationToken.throwIfCancellationRequested(); - var fileContents = sourceFile.text; - var result = []; - if (descriptors.length > 0) { - var regExp = getTodoCommentsRegExp(); - var matchArray; - while (matchArray = regExp.exec(fileContents)) { - cancellationToken.throwIfCancellationRequested(); - var firstDescriptorCaptureIndex = 3; - ts.Debug.assert(matchArray.length === descriptors.length + firstDescriptorCaptureIndex); - var preamble = matchArray[1]; - var matchPosition = matchArray.index + preamble.length; - var token = ts.getTokenAtPosition(sourceFile, matchPosition); - if (!isInsideComment(sourceFile, token, matchPosition)) { - continue; - } - var descriptor = undefined; - for (var i = 0, n = descriptors.length; i < n; i++) { - if (matchArray[i + firstDescriptorCaptureIndex]) { - descriptor = descriptors[i]; - } - } - ts.Debug.assert(descriptor !== undefined); - if (isLetterOrDigit(fileContents.charCodeAt(matchPosition + descriptor.text.length))) { - continue; - } - var message = matchArray[2]; - result.push({ - descriptor: descriptor, - message: message, - position: matchPosition - }); - } - } - return result; - function escapeRegExp(str) { - return str.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&"); - } - function getTodoCommentsRegExp() { - // NOTE: ?: means 'non-capture group'. It allows us to have groups without having to - // filter them out later in the final result array. - var singleLineCommentStart = /(?:\/\/+\s*)/.source; - var multiLineCommentStart = /(?:\/\*+\s*)/.source; - var anyNumberOfSpacesAndAsterixesAtStartOfLine = /(?:^(?:\s|\*)*)/.source; - var preamble = "(" + anyNumberOfSpacesAndAsterixesAtStartOfLine + "|" + singleLineCommentStart + "|" + multiLineCommentStart + ")"; - var literals = "(?:" + ts.map(descriptors, function (d) { return "(" + escapeRegExp(d.text) + ")"; }).join("|") + ")"; - var endOfLineOrEndOfComment = /(?:$|\*\/)/.source; - var messageRemainder = /(?:.*?)/.source; - var messagePortion = "(" + literals + messageRemainder + ")"; - var regExpString = preamble + messagePortion + endOfLineOrEndOfComment; - return new RegExp(regExpString, "gim"); - } - function isLetterOrDigit(char) { - return (char >= 97 && char <= 122) || - (char >= 65 && char <= 90) || - (char >= 48 && char <= 57); - } - } - function getRenameInfo(fileName, position) { - synchronizeHostData(); - var sourceFile = getValidSourceFile(fileName); - var node = ts.getTouchingWord(sourceFile, position); - if (node && node.kind === 65) { - var symbol = typeInfoResolver.getSymbolAtLocation(node); - if (symbol) { - var declarations = symbol.getDeclarations(); - if (declarations && declarations.length > 0) { - var defaultLibFileName = host.getDefaultLibFileName(host.getCompilationSettings()); - if (defaultLibFileName) { - for (var _i = 0, _n = declarations.length; _i < _n; _i++) { - var current = declarations[_i]; - var sourceFile_1 = current.getSourceFile(); - if (sourceFile_1 && getCanonicalFileName(ts.normalizePath(sourceFile_1.fileName)) === getCanonicalFileName(ts.normalizePath(defaultLibFileName))) { - return getRenameInfoError(ts.getLocaleSpecificMessage(ts.Diagnostics.You_cannot_rename_elements_that_are_defined_in_the_standard_TypeScript_library.key)); - } - } - } - var kind = getSymbolKind(symbol, typeInfoResolver, node); - if (kind) { - return { - canRename: true, - localizedErrorMessage: undefined, - displayName: symbol.name, - fullDisplayName: typeInfoResolver.getFullyQualifiedName(symbol), - kind: kind, - kindModifiers: getSymbolModifiers(symbol), - triggerSpan: ts.createTextSpan(node.getStart(), node.getWidth()) - }; - } - } - } - } - return getRenameInfoError(ts.getLocaleSpecificMessage(ts.Diagnostics.You_cannot_rename_this_element.key)); - function getRenameInfoError(localizedErrorMessage) { - return { - canRename: false, - localizedErrorMessage: localizedErrorMessage, - displayName: undefined, - fullDisplayName: undefined, - kind: undefined, - kindModifiers: undefined, - triggerSpan: undefined - }; - } - } - return { - dispose: dispose, - cleanupSemanticCache: cleanupSemanticCache, - getSyntacticDiagnostics: getSyntacticDiagnostics, - getSemanticDiagnostics: getSemanticDiagnostics, - getCompilerOptionsDiagnostics: getCompilerOptionsDiagnostics, - getSyntacticClassifications: getSyntacticClassifications, - getSemanticClassifications: getSemanticClassifications, - getCompletionsAtPosition: getCompletionsAtPosition, - getCompletionEntryDetails: getCompletionEntryDetails, - getSignatureHelpItems: getSignatureHelpItems, - getQuickInfoAtPosition: getQuickInfoAtPosition, - getDefinitionAtPosition: getDefinitionAtPosition, - getReferencesAtPosition: getReferencesAtPosition, - findReferences: findReferences, - getOccurrencesAtPosition: getOccurrencesAtPosition, - getNameOrDottedNameSpan: getNameOrDottedNameSpan, - getBreakpointStatementAtPosition: getBreakpointStatementAtPosition, - getNavigateToItems: getNavigateToItems, - getRenameInfo: getRenameInfo, - findRenameLocations: findRenameLocations, - getNavigationBarItems: getNavigationBarItems, - getOutliningSpans: getOutliningSpans, - getTodoComments: getTodoComments, - getBraceMatchingAtPosition: getBraceMatchingAtPosition, - getIndentationAtPosition: getIndentationAtPosition, - getFormattingEditsForRange: getFormattingEditsForRange, - getFormattingEditsForDocument: getFormattingEditsForDocument, - getFormattingEditsAfterKeystroke: getFormattingEditsAfterKeystroke, - getEmitOutput: getEmitOutput, - getSourceFile: getSourceFile, - getProgram: getProgram - }; - } - ts.createLanguageService = createLanguageService; - function getNameTable(sourceFile) { - if (!sourceFile.nameTable) { - initializeNameTable(sourceFile); - } - return sourceFile.nameTable; - } - ts.getNameTable = getNameTable; - function initializeNameTable(sourceFile) { - var nameTable = {}; - walk(sourceFile); - sourceFile.nameTable = nameTable; - function walk(node) { - switch (node.kind) { - case 65: - nameTable[node.text] = node.text; - break; - case 8: - case 7: - if (ts.isDeclarationName(node) || - node.parent.kind === 216 || - isArgumentOfElementAccessExpression(node)) { - nameTable[node.text] = node.text; - } - break; - default: - ts.forEachChild(node, walk); - } - } - } - function isArgumentOfElementAccessExpression(node) { - return node && - node.parent && - node.parent.kind === 156 && - node.parent.argumentExpression === node; - } - function createClassifier() { - var scanner = ts.createScanner(2, false); - var noRegexTable = []; - noRegexTable[65] = true; - noRegexTable[8] = true; - noRegexTable[7] = true; - noRegexTable[9] = true; - noRegexTable[93] = true; - noRegexTable[38] = true; - noRegexTable[39] = true; - noRegexTable[17] = true; - noRegexTable[19] = true; - noRegexTable[15] = true; - noRegexTable[95] = true; - noRegexTable[80] = true; - var templateStack = []; - function canFollow(keyword1, keyword2) { - if (ts.isAccessibilityModifier(keyword1)) { - if (keyword2 === 116 || - keyword2 === 120 || - keyword2 === 114 || - keyword2 === 110) { - return true; - } - return false; - } - return true; - } - function getClassificationsForLine(text, lexState, syntacticClassifierAbsent) { - var offset = 0; - var token = 0; - var lastNonTriviaToken = 0; - while (templateStack.length > 0) { - templateStack.pop(); - } - switch (lexState) { - case 3: - text = '"\\\n' + text; - offset = 3; - break; - case 2: - text = "'\\\n" + text; - offset = 3; - break; - case 1: - text = "/*\n" + text; - offset = 3; - break; - case 4: - text = "`\n" + text; - offset = 2; - break; - case 5: - text = "}\n" + text; - offset = 2; - case 6: - templateStack.push(11); - break; - } - scanner.setText(text); - var result = { - finalLexState: 0, - entries: [] - }; - var angleBracketStack = 0; - do { - token = scanner.scan(); - if (!ts.isTrivia(token)) { - if ((token === 36 || token === 57) && !noRegexTable[lastNonTriviaToken]) { - if (scanner.reScanSlashToken() === 9) { - token = 9; - } - } - else if (lastNonTriviaToken === 20 && isKeyword(token)) { - token = 65; - } - else if (isKeyword(lastNonTriviaToken) && isKeyword(token) && !canFollow(lastNonTriviaToken, token)) { - token = 65; - } - else if (lastNonTriviaToken === 65 && - token === 24) { - angleBracketStack++; - } - else if (token === 25 && angleBracketStack > 0) { - angleBracketStack--; - } - else if (token === 112 || - token === 121 || - token === 119 || - token === 113 || - token === 122) { - if (angleBracketStack > 0 && !syntacticClassifierAbsent) { - token = 65; - } - } - else if (token === 11) { - templateStack.push(token); - } - else if (token === 14) { - if (templateStack.length > 0) { - templateStack.push(token); - } - } - else if (token === 15) { - if (templateStack.length > 0) { - var lastTemplateStackToken = ts.lastOrUndefined(templateStack); - if (lastTemplateStackToken === 11) { - token = scanner.reScanTemplateToken(); - if (token === 13) { - templateStack.pop(); - } - else { - ts.Debug.assert(token === 12, "Should have been a template middle. Was " + token); - } - } - else { - ts.Debug.assert(lastTemplateStackToken === 14, "Should have been an open brace. Was: " + token); - templateStack.pop(); - } - } - } - lastNonTriviaToken = token; - } - processToken(); - } while (token !== 1); - return result; - function processToken() { - var start = scanner.getTokenPos(); - var end = scanner.getTextPos(); - addResult(end - start, classFromKind(token)); - if (end >= text.length) { - if (token === 8) { - var tokenText = scanner.getTokenText(); - if (scanner.isUnterminated()) { - var lastCharIndex = tokenText.length - 1; - var numBackslashes = 0; - while (tokenText.charCodeAt(lastCharIndex - numBackslashes) === 92) { - numBackslashes++; - } - if (numBackslashes & 1) { - var quoteChar = tokenText.charCodeAt(0); - result.finalLexState = quoteChar === 34 - ? 3 - : 2; - } - } - } - else if (token === 3) { - if (scanner.isUnterminated()) { - result.finalLexState = 1; - } - } - else if (ts.isTemplateLiteralKind(token)) { - if (scanner.isUnterminated()) { - if (token === 13) { - result.finalLexState = 5; - } - else if (token === 10) { - result.finalLexState = 4; - } - else { - ts.Debug.fail("Only 'NoSubstitutionTemplateLiteral's and 'TemplateTail's can be unterminated; got SyntaxKind #" + token); - } - } - } - else if (templateStack.length > 0 && ts.lastOrUndefined(templateStack) === 11) { - result.finalLexState = 6; - } - } - } - function addResult(length, classification) { - if (length > 0) { - if (result.entries.length === 0) { - length -= offset; - } - result.entries.push({ length: length, classification: classification }); - } - } - } - function isBinaryExpressionOperatorToken(token) { - switch (token) { - case 35: - case 36: - case 37: - case 33: - case 34: - case 40: - case 41: - case 42: - case 24: - case 25: - case 26: - case 27: - case 87: - case 86: - case 28: - case 29: - case 30: - case 31: - case 43: - case 45: - case 44: - case 48: - case 49: - case 63: - case 62: - case 64: - case 59: - case 60: - case 61: - case 54: - case 55: - case 56: - case 57: - case 58: - case 53: - case 23: - return true; - default: - return false; - } - } - function isPrefixUnaryExpressionOperatorToken(token) { - switch (token) { - case 33: - case 34: - case 47: - case 46: - case 38: - case 39: - return true; - default: - return false; - } - } - function isKeyword(token) { - return token >= 66 && token <= 125; - } - function classFromKind(token) { - if (isKeyword(token)) { - return TokenClass.Keyword; - } - else if (isBinaryExpressionOperatorToken(token) || isPrefixUnaryExpressionOperatorToken(token)) { - return TokenClass.Operator; - } - else if (token >= 14 && token <= 64) { - return TokenClass.Punctuation; - } - switch (token) { - case 7: - return TokenClass.NumberLiteral; - case 8: - return TokenClass.StringLiteral; - case 9: - return TokenClass.RegExpLiteral; - case 6: - case 3: - case 2: - return TokenClass.Comment; - case 5: - case 4: - return TokenClass.Whitespace; - case 65: - default: - if (ts.isTemplateLiteralKind(token)) { - return TokenClass.StringLiteral; - } - return TokenClass.Identifier; - } - } - return { getClassificationsForLine: getClassificationsForLine }; - } - ts.createClassifier = createClassifier; - function getDefaultLibFilePath(options) { - if (typeof __dirname !== "undefined") { - return __dirname + ts.directorySeparator + ts.getDefaultLibFileName(options); - } - throw new Error("getDefaultLibFilePath is only supported when consumed as a node module. "); - } - ts.getDefaultLibFilePath = getDefaultLibFilePath; - function initializeServices() { - ts.objectAllocator = { - getNodeConstructor: function (kind) { - function Node() { - } - var proto = kind === 224 ? new SourceFileObject() : new NodeObject(); - proto.kind = kind; - proto.pos = 0; - proto.end = 0; - proto.flags = 0; - proto.parent = undefined; - Node.prototype = proto; - return Node; - }, - getSymbolConstructor: function () { return SymbolObject; }, - getTypeConstructor: function () { return TypeObject; }, - getSignatureConstructor: function () { return SignatureObject; } - }; - } - initializeServices(); -})(ts || (ts = {})); -/// -/// -/// -/// -/// -var ts; -(function (ts) { - var server; - (function (server) { - var spaceCache = []; - function generateSpaces(n) { - if (!spaceCache[n]) { - var strBuilder = ""; - for (var i = 0; i < n; i++) { - strBuilder += " "; - } - spaceCache[n] = strBuilder; - } - return spaceCache[n]; - } - server.generateSpaces = generateSpaces; - function compareNumber(a, b) { - if (a < b) { - return -1; - } - else if (a == b) { - return 0; - } - else - return 1; - } - function compareFileStart(a, b) { - if (a.file < b.file) { - return -1; - } - else if (a.file == b.file) { - var n = compareNumber(a.start.line, b.start.line); - if (n == 0) { - return compareNumber(a.start.offset, b.start.offset); - } - else - return n; - } - else { - return 1; - } - } - function formatDiag(fileName, project, diag) { - return { - start: project.compilerService.host.positionToLineOffset(fileName, diag.start), - end: project.compilerService.host.positionToLineOffset(fileName, diag.start + diag.length), - text: ts.flattenDiagnosticMessageText(diag.messageText, "\n") - }; - } - function allEditsBeforePos(edits, pos) { - for (var i = 0, len = edits.length; i < len; i++) { - if (ts.textSpanEnd(edits[i].span) >= pos) { - return false; - } - } - return true; - } - var CommandNames; - (function (CommandNames) { - CommandNames.Change = "change"; - CommandNames.Close = "close"; - CommandNames.Completions = "completions"; - CommandNames.CompletionDetails = "completionEntryDetails"; - CommandNames.SignatureHelp = "signatureHelp"; - CommandNames.Configure = "configure"; - CommandNames.Definition = "definition"; - CommandNames.Format = "format"; - CommandNames.Formatonkey = "formatonkey"; - CommandNames.Geterr = "geterr"; - CommandNames.NavBar = "navbar"; - CommandNames.Navto = "navto"; - CommandNames.Open = "open"; - CommandNames.Quickinfo = "quickinfo"; - CommandNames.References = "references"; - CommandNames.Reload = "reload"; - CommandNames.Rename = "rename"; - CommandNames.Saveto = "saveto"; - CommandNames.Brace = "brace"; - CommandNames.Unknown = "unknown"; - })(CommandNames = server.CommandNames || (server.CommandNames = {})); - var Errors; - (function (Errors) { - Errors.NoProject = new Error("No Project."); - })(Errors || (Errors = {})); - var Session = (function () { - function Session(host, logger) { - var _this = this; - this.host = host; - this.logger = logger; - this.pendingOperation = false; - this.fileHash = {}; - this.nextFileId = 1; - this.changeSeq = 0; - this.projectService = - new server.ProjectService(host, logger, function (eventName, project, fileName) { - _this.handleEvent(eventName, project, fileName); - }); - } - Session.prototype.handleEvent = function (eventName, project, fileName) { - var _this = this; - if (eventName == "context") { - this.projectService.log("got context event, updating diagnostics for" + fileName, "Info"); - this.updateErrorCheck([{ fileName: fileName, project: project }], this.changeSeq, function (n) { return n == _this.changeSeq; }, 100); - } - }; - Session.prototype.logError = function (err, cmd) { - var typedErr = err; - var msg = "Exception on executing command " + cmd; - if (typedErr.message) { - msg += ":\n" + typedErr.message; - if (typedErr.stack) { - msg += "\n" + typedErr.stack; - } - } - this.projectService.log(msg); - }; - Session.prototype.sendLineToClient = function (line) { - this.host.write(line + this.host.newLine); - }; - Session.prototype.send = function (msg) { - var json = JSON.stringify(msg); - if (this.logger.isVerbose()) { - this.logger.info(msg.type + ": " + json); - } - this.sendLineToClient('Content-Length: ' + (1 + Buffer.byteLength(json, 'utf8')) + - '\r\n\r\n' + json); - }; - Session.prototype.event = function (info, eventName) { - var ev = { - seq: 0, - type: "event", - event: eventName, - body: info - }; - this.send(ev); - }; - Session.prototype.response = function (info, cmdName, reqSeq, errorMsg) { - if (reqSeq === void 0) { reqSeq = 0; } - var res = { - seq: 0, - type: "response", - command: cmdName, - request_seq: reqSeq, - success: !errorMsg - }; - if (!errorMsg) { - res.body = info; - } - else { - res.message = errorMsg; - } - this.send(res); - }; - Session.prototype.output = function (body, commandName, requestSequence, errorMessage) { - if (requestSequence === void 0) { requestSequence = 0; } - this.response(body, commandName, requestSequence, errorMessage); - }; - Session.prototype.semanticCheck = function (file, project) { - try { - var diags = project.compilerService.languageService.getSemanticDiagnostics(file); - if (diags) { - var bakedDiags = diags.map(function (diag) { return formatDiag(file, project, diag); }); - this.event({ file: file, diagnostics: bakedDiags }, "semanticDiag"); - } - } - catch (err) { - this.logError(err, "semantic check"); - } - }; - Session.prototype.syntacticCheck = function (file, project) { - try { - var diags = project.compilerService.languageService.getSyntacticDiagnostics(file); - if (diags) { - var bakedDiags = diags.map(function (diag) { return formatDiag(file, project, diag); }); - this.event({ file: file, diagnostics: bakedDiags }, "syntaxDiag"); - } - } - catch (err) { - this.logError(err, "syntactic check"); - } - }; - Session.prototype.errorCheck = function (file, project) { - this.syntacticCheck(file, project); - this.semanticCheck(file, project); - }; - Session.prototype.updateProjectStructure = function (seq, matchSeq, ms) { - var _this = this; - if (ms === void 0) { ms = 1500; } - setTimeout(function () { - if (matchSeq(seq)) { - _this.projectService.updateProjectStructure(); - } - }, ms); - }; - Session.prototype.updateErrorCheck = function (checkList, seq, matchSeq, ms, followMs) { - var _this = this; - if (ms === void 0) { ms = 1500; } - if (followMs === void 0) { followMs = 200; } - if (followMs > ms) { - followMs = ms; - } - if (this.errorTimer) { - clearTimeout(this.errorTimer); - } - if (this.immediateId) { - clearImmediate(this.immediateId); - this.immediateId = undefined; - } - var index = 0; - var checkOne = function () { - if (matchSeq(seq)) { - var checkSpec = checkList[index++]; - if (checkSpec.project.getSourceFileFromName(checkSpec.fileName, true)) { - _this.syntacticCheck(checkSpec.fileName, checkSpec.project); - _this.immediateId = setImmediate(function () { - _this.semanticCheck(checkSpec.fileName, checkSpec.project); - _this.immediateId = undefined; - if (checkList.length > index) { - _this.errorTimer = setTimeout(checkOne, followMs); - } - else { - _this.errorTimer = undefined; - } - }); - } - } - }; - if ((checkList.length > index) && (matchSeq(seq))) { - this.errorTimer = setTimeout(checkOne, ms); - } - }; - Session.prototype.getDefinition = function (line, offset, fileName) { - var file = ts.normalizePath(fileName); - var project = this.projectService.getProjectForFile(file); - if (!project) { - throw Errors.NoProject; - } - var compilerService = project.compilerService; - var position = compilerService.host.lineOffsetToPosition(file, line, offset); - var definitions = compilerService.languageService.getDefinitionAtPosition(file, position); - if (!definitions) { - return undefined; - } - return definitions.map(function (def) { return ({ - file: def.fileName, - start: compilerService.host.positionToLineOffset(def.fileName, def.textSpan.start), - end: compilerService.host.positionToLineOffset(def.fileName, ts.textSpanEnd(def.textSpan)) - }); }); - }; - Session.prototype.getRenameLocations = function (line, offset, fileName, findInComments, findInStrings) { - var file = ts.normalizePath(fileName); - var project = this.projectService.getProjectForFile(file); - if (!project) { - throw Errors.NoProject; - } - var compilerService = project.compilerService; - var position = compilerService.host.lineOffsetToPosition(file, line, offset); - var renameInfo = compilerService.languageService.getRenameInfo(file, position); - if (!renameInfo) { - return undefined; - } - if (!renameInfo.canRename) { - return { - info: renameInfo, - locs: [] - }; - } - var renameLocations = compilerService.languageService.findRenameLocations(file, position, findInStrings, findInComments); - if (!renameLocations) { - return undefined; - } - var bakedRenameLocs = renameLocations.map(function (location) { return ({ - file: location.fileName, - start: compilerService.host.positionToLineOffset(location.fileName, location.textSpan.start), - end: compilerService.host.positionToLineOffset(location.fileName, ts.textSpanEnd(location.textSpan)) - }); }).sort(function (a, b) { - if (a.file < b.file) { - return -1; - } - else if (a.file > b.file) { - return 1; - } - else { - if (a.start.line < b.start.line) { - return 1; - } - else if (a.start.line > b.start.line) { - return -1; - } - else { - return b.start.offset - a.start.offset; - } - } - }).reduce(function (accum, cur) { - var curFileAccum; - if (accum.length > 0) { - curFileAccum = accum[accum.length - 1]; - if (curFileAccum.file != cur.file) { - curFileAccum = undefined; - } - } - if (!curFileAccum) { - curFileAccum = { file: cur.file, locs: [] }; - accum.push(curFileAccum); - } - curFileAccum.locs.push({ start: cur.start, end: cur.end }); - return accum; - }, []); - return { info: renameInfo, locs: bakedRenameLocs }; - }; - Session.prototype.getReferences = function (line, offset, fileName) { - var file = ts.normalizePath(fileName); - var project = this.projectService.getProjectForFile(file); - if (!project) { - throw Errors.NoProject; - } - var compilerService = project.compilerService; - var position = compilerService.host.lineOffsetToPosition(file, line, offset); - var references = compilerService.languageService.getReferencesAtPosition(file, position); - if (!references) { - return undefined; - } - var nameInfo = compilerService.languageService.getQuickInfoAtPosition(file, position); - if (!nameInfo) { - return undefined; - } - var displayString = ts.displayPartsToString(nameInfo.displayParts); - var nameSpan = nameInfo.textSpan; - var nameColStart = compilerService.host.positionToLineOffset(file, nameSpan.start).offset; - var nameText = compilerService.host.getScriptSnapshot(file).getText(nameSpan.start, ts.textSpanEnd(nameSpan)); - var bakedRefs = references.map(function (ref) { - var start = compilerService.host.positionToLineOffset(ref.fileName, ref.textSpan.start); - var refLineSpan = compilerService.host.lineToTextSpan(ref.fileName, start.line - 1); - var snap = compilerService.host.getScriptSnapshot(ref.fileName); - var lineText = snap.getText(refLineSpan.start, ts.textSpanEnd(refLineSpan)).replace(/\r|\n/g, ""); - return { - file: ref.fileName, - start: start, - lineText: lineText, - end: compilerService.host.positionToLineOffset(ref.fileName, ts.textSpanEnd(ref.textSpan)), - isWriteAccess: ref.isWriteAccess - }; - }).sort(compareFileStart); - return { - refs: bakedRefs, - symbolName: nameText, - symbolStartOffset: nameColStart, - symbolDisplayString: displayString - }; - }; - Session.prototype.openClientFile = function (fileName) { - var file = ts.normalizePath(fileName); - this.projectService.openClientFile(file); - }; - Session.prototype.getQuickInfo = function (line, offset, fileName) { - var file = ts.normalizePath(fileName); - var project = this.projectService.getProjectForFile(file); - if (!project) { - throw Errors.NoProject; - } - var compilerService = project.compilerService; - var position = compilerService.host.lineOffsetToPosition(file, line, offset); - var quickInfo = compilerService.languageService.getQuickInfoAtPosition(file, position); - if (!quickInfo) { - return undefined; - } - var displayString = ts.displayPartsToString(quickInfo.displayParts); - var docString = ts.displayPartsToString(quickInfo.documentation); - return { - kind: quickInfo.kind, - kindModifiers: quickInfo.kindModifiers, - start: compilerService.host.positionToLineOffset(file, quickInfo.textSpan.start), - end: compilerService.host.positionToLineOffset(file, ts.textSpanEnd(quickInfo.textSpan)), - displayString: displayString, - documentation: docString - }; - }; - Session.prototype.getFormattingEditsForRange = function (line, offset, endLine, endOffset, fileName) { - var file = ts.normalizePath(fileName); - var project = this.projectService.getProjectForFile(file); - if (!project) { - throw Errors.NoProject; - } - var compilerService = project.compilerService; - var startPosition = compilerService.host.lineOffsetToPosition(file, line, offset); - var endPosition = compilerService.host.lineOffsetToPosition(file, endLine, endOffset); - var edits = compilerService.languageService.getFormattingEditsForRange(file, startPosition, endPosition, this.projectService.getFormatCodeOptions(file)); - if (!edits) { - return undefined; - } - return edits.map(function (edit) { - return { - start: compilerService.host.positionToLineOffset(file, edit.span.start), - end: compilerService.host.positionToLineOffset(file, ts.textSpanEnd(edit.span)), - newText: edit.newText ? edit.newText : "" - }; - }); - }; - Session.prototype.getFormattingEditsAfterKeystroke = function (line, offset, key, fileName) { - var file = ts.normalizePath(fileName); - var project = this.projectService.getProjectForFile(file); - if (!project) { - throw Errors.NoProject; - } - var compilerService = project.compilerService; - var position = compilerService.host.lineOffsetToPosition(file, line, offset); - var formatOptions = this.projectService.getFormatCodeOptions(file); - var edits = compilerService.languageService.getFormattingEditsAfterKeystroke(file, position, key, formatOptions); - if ((key == "\n") && ((!edits) || (edits.length == 0) || allEditsBeforePos(edits, position))) { - var scriptInfo = compilerService.host.getScriptInfo(file); - if (scriptInfo) { - var lineInfo = scriptInfo.getLineInfo(line); - if (lineInfo && (lineInfo.leaf) && (lineInfo.leaf.text)) { - var lineText = lineInfo.leaf.text; - if (lineText.search("\\S") < 0) { - var editorOptions = { - IndentSize: formatOptions.IndentSize, - TabSize: formatOptions.TabSize, - NewLineCharacter: "\n", - ConvertTabsToSpaces: true - }; - var indentPosition = compilerService.languageService.getIndentationAtPosition(file, position, editorOptions); - for (var i = 0, len = lineText.length; i < len; i++) { - if (lineText.charAt(i) == " ") { - indentPosition--; - } - else { - break; - } - } - if (indentPosition > 0) { - var spaces = generateSpaces(indentPosition); - edits.push({ span: ts.createTextSpanFromBounds(position, position), newText: spaces }); - } - else if (indentPosition < 0) { - edits.push({ - span: ts.createTextSpanFromBounds(position, position - indentPosition), - newText: "" - }); - } - } - } - } - } - if (!edits) { - return undefined; - } - return edits.map(function (edit) { - return { - start: compilerService.host.positionToLineOffset(file, edit.span.start), - end: compilerService.host.positionToLineOffset(file, ts.textSpanEnd(edit.span)), - newText: edit.newText ? edit.newText : "" - }; - }); - }; - Session.prototype.getCompletions = function (line, offset, prefix, fileName) { - if (!prefix) { - prefix = ""; - } - var file = ts.normalizePath(fileName); - var project = this.projectService.getProjectForFile(file); - if (!project) { - throw Errors.NoProject; - } - var compilerService = project.compilerService; - var position = compilerService.host.lineOffsetToPosition(file, line, offset); - var completions = compilerService.languageService.getCompletionsAtPosition(file, position); - if (!completions) { - return undefined; - } - return completions.entries.reduce(function (result, entry) { - if (completions.isMemberCompletion || (entry.name.toLowerCase().indexOf(prefix.toLowerCase()) == 0)) { - result.push(entry); - } - return result; - }, []).sort(function (a, b) { return a.name.localeCompare(b.name); }); - }; - Session.prototype.getCompletionEntryDetails = function (line, offset, entryNames, fileName) { - var file = ts.normalizePath(fileName); - var project = this.projectService.getProjectForFile(file); - if (!project) { - throw Errors.NoProject; - } - var compilerService = project.compilerService; - var position = compilerService.host.lineOffsetToPosition(file, line, offset); - return entryNames.reduce(function (accum, entryName) { - var details = compilerService.languageService.getCompletionEntryDetails(file, position, entryName); - if (details) { - accum.push(details); - } - return accum; - }, []); - }; - Session.prototype.getSignatureHelpItems = function (line, offset, fileName) { - var file = ts.normalizePath(fileName); - var project = this.projectService.getProjectForFile(file); - if (!project) { - throw Errors.NoProject; - } - var compilerService = project.compilerService; - var position = compilerService.host.lineOffsetToPosition(file, line, offset); - var helpItems = compilerService.languageService.getSignatureHelpItems(file, position); - if (!helpItems) { - return undefined; - } - var span = helpItems.applicableSpan; - var result = { - items: helpItems.items, - applicableSpan: { - start: compilerService.host.positionToLineOffset(file, span.start), - end: compilerService.host.positionToLineOffset(file, span.start + span.length) - }, - selectedItemIndex: helpItems.selectedItemIndex, - argumentIndex: helpItems.argumentIndex, - argumentCount: helpItems.argumentCount - }; - return result; - }; - Session.prototype.getDiagnostics = function (delay, fileNames) { - var _this = this; - var checkList = fileNames.reduce(function (accum, fileName) { - fileName = ts.normalizePath(fileName); - var project = _this.projectService.getProjectForFile(fileName); - if (project) { - accum.push({ fileName: fileName, project: project }); - } - return accum; - }, []); - if (checkList.length > 0) { - this.updateErrorCheck(checkList, this.changeSeq, function (n) { return n == _this.changeSeq; }, delay); - } - }; - Session.prototype.change = function (line, offset, endLine, endOffset, insertString, fileName) { - var _this = this; - var file = ts.normalizePath(fileName); - var project = this.projectService.getProjectForFile(file); - if (project) { - var compilerService = project.compilerService; - var start = compilerService.host.lineOffsetToPosition(file, line, offset); - var end = compilerService.host.lineOffsetToPosition(file, endLine, endOffset); - if (start >= 0) { - compilerService.host.editScript(file, start, end, insertString); - this.changeSeq++; - } - this.updateProjectStructure(this.changeSeq, function (n) { return n == _this.changeSeq; }); - } - }; - Session.prototype.reload = function (fileName, tempFileName, reqSeq) { - var _this = this; - if (reqSeq === void 0) { reqSeq = 0; } - var file = ts.normalizePath(fileName); - var tmpfile = ts.normalizePath(tempFileName); - var project = this.projectService.getProjectForFile(file); - if (project) { - this.changeSeq++; - project.compilerService.host.reloadScript(file, tmpfile, function () { - _this.output(undefined, CommandNames.Reload, reqSeq); - }); - } - }; - Session.prototype.saveToTmp = function (fileName, tempFileName) { - var file = ts.normalizePath(fileName); - var tmpfile = ts.normalizePath(tempFileName); - var project = this.projectService.getProjectForFile(file); - if (project) { - project.compilerService.host.saveTo(file, tmpfile); - } - }; - Session.prototype.closeClientFile = function (fileName) { - var file = ts.normalizePath(fileName); - this.projectService.closeClientFile(file); - }; - Session.prototype.decorateNavigationBarItem = function (project, fileName, items) { - var _this = this; - if (!items) { - return undefined; - } - var compilerService = project.compilerService; - return items.map(function (item) { return ({ - text: item.text, - kind: item.kind, - kindModifiers: item.kindModifiers, - spans: item.spans.map(function (span) { return ({ - start: compilerService.host.positionToLineOffset(fileName, span.start), - end: compilerService.host.positionToLineOffset(fileName, ts.textSpanEnd(span)) - }); }), - childItems: _this.decorateNavigationBarItem(project, fileName, item.childItems) - }); }); - }; - Session.prototype.getNavigationBarItems = function (fileName) { - var file = ts.normalizePath(fileName); - var project = this.projectService.getProjectForFile(file); - if (!project) { - throw Errors.NoProject; - } - var compilerService = project.compilerService; - var items = compilerService.languageService.getNavigationBarItems(file); - if (!items) { - return undefined; - } - return this.decorateNavigationBarItem(project, fileName, items); - }; - Session.prototype.getNavigateToItems = function (searchValue, fileName, maxResultCount) { - var file = ts.normalizePath(fileName); - var project = this.projectService.getProjectForFile(file); - if (!project) { - throw Errors.NoProject; - } - var compilerService = project.compilerService; - var navItems = compilerService.languageService.getNavigateToItems(searchValue, maxResultCount); - if (!navItems) { - return undefined; - } - return navItems.map(function (navItem) { - var start = compilerService.host.positionToLineOffset(navItem.fileName, navItem.textSpan.start); - var end = compilerService.host.positionToLineOffset(navItem.fileName, ts.textSpanEnd(navItem.textSpan)); - var bakedItem = { - name: navItem.name, - kind: navItem.kind, - file: navItem.fileName, - start: start, - end: end - }; - if (navItem.kindModifiers && (navItem.kindModifiers != "")) { - bakedItem.kindModifiers = navItem.kindModifiers; - } - if (navItem.matchKind != 'none') { - bakedItem.matchKind = navItem.matchKind; - } - if (navItem.containerName && (navItem.containerName.length > 0)) { - bakedItem.containerName = navItem.containerName; - } - if (navItem.containerKind && (navItem.containerKind.length > 0)) { - bakedItem.containerKind = navItem.containerKind; - } - return bakedItem; - }); - }; - Session.prototype.getBraceMatching = function (line, offset, fileName) { - var file = ts.normalizePath(fileName); - var project = this.projectService.getProjectForFile(file); - if (!project) { - throw Errors.NoProject; - } - var compilerService = project.compilerService; - var position = compilerService.host.lineOffsetToPosition(file, line, offset); - var spans = compilerService.languageService.getBraceMatchingAtPosition(file, position); - if (!spans) { - return undefined; - } - return spans.map(function (span) { return ({ - start: compilerService.host.positionToLineOffset(file, span.start), - end: compilerService.host.positionToLineOffset(file, span.start + span.length) - }); }); - }; - Session.prototype.onMessage = function (message) { - if (this.logger.isVerbose()) { - this.logger.info("request: " + message); - var start = process.hrtime(); - } - try { - var request = JSON.parse(message); - var response; - var errorMessage; - var responseRequired = true; - switch (request.command) { - case CommandNames.Definition: { - var defArgs = request.arguments; - response = this.getDefinition(defArgs.line, defArgs.offset, defArgs.file); - break; - } - case CommandNames.References: { - var refArgs = request.arguments; - response = this.getReferences(refArgs.line, refArgs.offset, refArgs.file); - break; - } - case CommandNames.Rename: { - var renameArgs = request.arguments; - response = this.getRenameLocations(renameArgs.line, renameArgs.offset, renameArgs.file, renameArgs.findInComments, renameArgs.findInStrings); - break; - } - case CommandNames.Open: { - var openArgs = request.arguments; - this.openClientFile(openArgs.file); - responseRequired = false; - break; - } - case CommandNames.Quickinfo: { - var quickinfoArgs = request.arguments; - response = this.getQuickInfo(quickinfoArgs.line, quickinfoArgs.offset, quickinfoArgs.file); - break; - } - case CommandNames.Format: { - var formatArgs = request.arguments; - response = this.getFormattingEditsForRange(formatArgs.line, formatArgs.offset, formatArgs.endLine, formatArgs.endOffset, formatArgs.file); - break; - } - case CommandNames.Formatonkey: { - var formatOnKeyArgs = request.arguments; - response = this.getFormattingEditsAfterKeystroke(formatOnKeyArgs.line, formatOnKeyArgs.offset, formatOnKeyArgs.key, formatOnKeyArgs.file); - break; - } - case CommandNames.Completions: { - var completionsArgs = request.arguments; - response = this.getCompletions(completionsArgs.line, completionsArgs.offset, completionsArgs.prefix, completionsArgs.file); - break; - } - case CommandNames.CompletionDetails: { - var completionDetailsArgs = request.arguments; - response = - this.getCompletionEntryDetails(completionDetailsArgs.line, completionDetailsArgs.offset, completionDetailsArgs.entryNames, completionDetailsArgs.file); - break; - } - case CommandNames.SignatureHelp: { - var signatureHelpArgs = request.arguments; - response = this.getSignatureHelpItems(signatureHelpArgs.line, signatureHelpArgs.offset, signatureHelpArgs.file); - break; - } - case CommandNames.Geterr: { - var geterrArgs = request.arguments; - response = this.getDiagnostics(geterrArgs.delay, geterrArgs.files); - responseRequired = false; - break; - } - case CommandNames.Change: { - var changeArgs = request.arguments; - this.change(changeArgs.line, changeArgs.offset, changeArgs.endLine, changeArgs.endOffset, changeArgs.insertString, changeArgs.file); - responseRequired = false; - break; - } - case CommandNames.Configure: { - var configureArgs = request.arguments; - this.projectService.setHostConfiguration(configureArgs); - this.output(undefined, CommandNames.Configure, request.seq); - responseRequired = false; - break; - } - case CommandNames.Reload: { - var reloadArgs = request.arguments; - this.reload(reloadArgs.file, reloadArgs.tmpfile, request.seq); - responseRequired = false; - break; - } - case CommandNames.Saveto: { - var savetoArgs = request.arguments; - this.saveToTmp(savetoArgs.file, savetoArgs.tmpfile); - responseRequired = false; - break; - } - case CommandNames.Close: { - var closeArgs = request.arguments; - this.closeClientFile(closeArgs.file); - responseRequired = false; - break; - } - case CommandNames.Navto: { - var navtoArgs = request.arguments; - response = this.getNavigateToItems(navtoArgs.searchValue, navtoArgs.file, navtoArgs.maxResultCount); - break; - } - case CommandNames.Brace: { - var braceArguments = request.arguments; - response = this.getBraceMatching(braceArguments.line, braceArguments.offset, braceArguments.file); - break; - } - case CommandNames.NavBar: { - var navBarArgs = request.arguments; - response = this.getNavigationBarItems(navBarArgs.file); - break; - } - default: { - this.projectService.log("Unrecognized JSON command: " + message); - this.output(undefined, CommandNames.Unknown, request.seq, "Unrecognized JSON command: " + request.command); - break; - } - } - if (this.logger.isVerbose()) { - var elapsed = process.hrtime(start); - var seconds = elapsed[0]; - var nanoseconds = elapsed[1]; - var elapsedMs = ((1e9 * seconds) + nanoseconds) / 1000000.0; - var leader = "Elapsed time (in milliseconds)"; - if (!responseRequired) { - leader = "Async elapsed time (in milliseconds)"; - } - this.logger.msg(leader + ": " + elapsedMs.toFixed(4).toString(), "Perf"); - } - if (response) { - this.output(response, request.command, request.seq); - } - else if (responseRequired) { - this.output(undefined, request.command, request.seq, "No content available."); - } - } - catch (err) { - if (err instanceof ts.OperationCanceledException) { - } - this.logError(err, message); - this.output(undefined, request ? request.command : CommandNames.Unknown, request ? request.seq : 0, "Error processing request. " + err.message); - } - }; - return Session; - })(); - server.Session = Session; - })(server = ts.server || (ts.server = {})); -})(ts || (ts = {})); -/// -/// -/// -/// -/// -var ts; -(function (ts) { - var server; - (function (server) { - var lineCollectionCapacity = 4; - function mergeFormatOptions(formatCodeOptions, formatOptions) { - var hasOwnProperty = Object.prototype.hasOwnProperty; - Object.keys(formatOptions).forEach(function (key) { - var codeKey = key.charAt(0).toUpperCase() + key.substring(1); - if (hasOwnProperty.call(formatCodeOptions, codeKey)) { - formatCodeOptions[codeKey] = formatOptions[key]; - } - }); - } - var ScriptInfo = (function () { - function ScriptInfo(host, fileName, content, isOpen) { - if (isOpen === void 0) { isOpen = false; } - this.host = host; - this.fileName = fileName; - this.content = content; - this.isOpen = isOpen; - this.children = []; - this.formatCodeOptions = ts.clone(CompilerService.defaultFormatCodeOptions); - this.svc = ScriptVersionCache.fromString(content); - } - ScriptInfo.prototype.setFormatOptions = function (formatOptions) { - if (formatOptions) { - mergeFormatOptions(this.formatCodeOptions, formatOptions); - } - }; - ScriptInfo.prototype.close = function () { - this.isOpen = false; - }; - ScriptInfo.prototype.addChild = function (childInfo) { - this.children.push(childInfo); - }; - ScriptInfo.prototype.snap = function () { - return this.svc.getSnapshot(); - }; - ScriptInfo.prototype.getText = function () { - var snap = this.snap(); - return snap.getText(0, snap.getLength()); - }; - ScriptInfo.prototype.getLineInfo = function (line) { - var snap = this.snap(); - return snap.index.lineNumberToInfo(line); - }; - ScriptInfo.prototype.editContent = function (start, end, newText) { - this.svc.edit(start, end - start, newText); - }; - ScriptInfo.prototype.getTextChangeRangeBetweenVersions = function (startVersion, endVersion) { - return this.svc.getTextChangesBetweenVersions(startVersion, endVersion); - }; - ScriptInfo.prototype.getChangeRange = function (oldSnapshot) { - return this.snap().getChangeRange(oldSnapshot); - }; - return ScriptInfo; - })(); - var LSHost = (function () { - function LSHost(host, project) { - this.host = host; - this.project = project; - this.ls = null; - this.filenameToScript = {}; - this.roots = []; - } - LSHost.prototype.getDefaultLibFileName = function () { - var nodeModuleBinDir = ts.getDirectoryPath(ts.normalizePath(this.host.getExecutingFilePath())); - return ts.combinePaths(nodeModuleBinDir, ts.getDefaultLibFileName(this.compilationSettings)); - }; - LSHost.prototype.getScriptSnapshot = function (filename) { - var scriptInfo = this.getScriptInfo(filename); - if (scriptInfo) { - return scriptInfo.snap(); - } - }; - LSHost.prototype.setCompilationSettings = function (opt) { - this.compilationSettings = opt; - }; - LSHost.prototype.lineAffectsRefs = function (filename, line) { - var info = this.getScriptInfo(filename); - var lineInfo = info.getLineInfo(line); - if (lineInfo && lineInfo.text) { - var regex = /reference|import|\/\*|\*\//; - return regex.test(lineInfo.text); - } - }; - LSHost.prototype.getCompilationSettings = function () { - return this.compilationSettings; - }; - LSHost.prototype.getScriptFileNames = function () { - return this.roots.map(function (root) { return root.fileName; }); - }; - LSHost.prototype.getScriptVersion = function (filename) { - return this.getScriptInfo(filename).svc.latestVersion().toString(); - }; - LSHost.prototype.getCurrentDirectory = function () { - return ""; - }; - LSHost.prototype.getScriptIsOpen = function (filename) { - return this.getScriptInfo(filename).isOpen; - }; - LSHost.prototype.removeReferencedFile = function (info) { - if (!info.isOpen) { - this.filenameToScript[info.fileName] = undefined; - } - }; - LSHost.prototype.getScriptInfo = function (filename) { - var scriptInfo = ts.lookUp(this.filenameToScript, filename); - if (!scriptInfo) { - scriptInfo = this.project.openReferencedFile(filename); - if (scriptInfo) { - this.filenameToScript[scriptInfo.fileName] = scriptInfo; - } - } - else { - } - return scriptInfo; - }; - LSHost.prototype.addRoot = function (info) { - var scriptInfo = ts.lookUp(this.filenameToScript, info.fileName); - if (!scriptInfo) { - this.filenameToScript[info.fileName] = info; - this.roots.push(info); - } - }; - LSHost.prototype.saveTo = function (filename, tmpfilename) { - var script = this.getScriptInfo(filename); - if (script) { - var snap = script.snap(); - this.host.writeFile(tmpfilename, snap.getText(0, snap.getLength())); - } - }; - LSHost.prototype.reloadScript = function (filename, tmpfilename, cb) { - var script = this.getScriptInfo(filename); - if (script) { - script.svc.reloadFromFile(tmpfilename, cb); - } - }; - LSHost.prototype.editScript = function (filename, start, end, newText) { - var script = this.getScriptInfo(filename); - if (script) { - script.editContent(start, end, newText); - return; - } - throw new Error("No script with name '" + filename + "'"); - }; - LSHost.prototype.resolvePath = function (path) { - var start = new Date().getTime(); - var result = this.host.resolvePath(path); - return result; - }; - LSHost.prototype.fileExists = function (path) { - var start = new Date().getTime(); - var result = this.host.fileExists(path); - return result; - }; - LSHost.prototype.directoryExists = function (path) { - return this.host.directoryExists(path); - }; - LSHost.prototype.lineToTextSpan = function (filename, line) { - var script = this.filenameToScript[filename]; - var index = script.snap().index; - var lineInfo = index.lineNumberToInfo(line + 1); - var len; - if (lineInfo.leaf) { - len = lineInfo.leaf.text.length; - } - else { - var nextLineInfo = index.lineNumberToInfo(line + 2); - len = nextLineInfo.offset - lineInfo.offset; - } - return ts.createTextSpan(lineInfo.offset, len); - }; - LSHost.prototype.lineOffsetToPosition = function (filename, line, offset) { - var script = this.filenameToScript[filename]; - var index = script.snap().index; - var lineInfo = index.lineNumberToInfo(line); - return (lineInfo.offset + offset - 1); - }; - LSHost.prototype.positionToLineOffset = function (filename, position) { - var script = this.filenameToScript[filename]; - var index = script.snap().index; - var lineOffset = index.charOffsetToLineNumberAndPos(position); - return { line: lineOffset.line, offset: lineOffset.offset + 1 }; - }; - return LSHost; - })(); - function getAbsolutePath(filename, directory) { - var rootLength = ts.getRootLength(filename); - if (rootLength > 0) { - return filename; - } - else { - var splitFilename = filename.split('/'); - var splitDir = directory.split('/'); - var i = 0; - var dirTail = 0; - var sflen = splitFilename.length; - while ((i < sflen) && (splitFilename[i].charAt(0) == '.')) { - var dots = splitFilename[i]; - if (dots == '..') { - dirTail++; - } - else if (dots != '.') { - return undefined; - } - i++; - } - return splitDir.slice(0, splitDir.length - dirTail).concat(splitFilename.slice(i)).join('/'); - } - } - var Project = (function () { - function Project(projectService, projectOptions) { - this.projectService = projectService; - this.projectOptions = projectOptions; - this.filenameToSourceFile = {}; - this.updateGraphSeq = 0; - this.openRefCount = 0; - this.compilerService = new CompilerService(this, projectOptions && projectOptions.compilerOptions); - } - Project.prototype.addOpenRef = function () { - this.openRefCount++; - }; - Project.prototype.deleteOpenRef = function () { - this.openRefCount--; - return this.openRefCount; - }; - Project.prototype.openReferencedFile = function (filename) { - return this.projectService.openFile(filename, false); - }; - Project.prototype.getSourceFile = function (info) { - return this.filenameToSourceFile[info.fileName]; - }; - Project.prototype.getSourceFileFromName = function (filename, requireOpen) { - var info = this.projectService.getScriptInfo(filename); - if (info) { - if ((!requireOpen) || info.isOpen) { - return this.getSourceFile(info); - } - } - }; - Project.prototype.isRoot = function (info) { - return this.compilerService.host.roots.some(function (root) { return root === info; }); - }; - Project.prototype.removeReferencedFile = function (info) { - this.compilerService.host.removeReferencedFile(info); - this.updateGraph(); - }; - Project.prototype.updateFileMap = function () { - this.filenameToSourceFile = {}; - var sourceFiles = this.program.getSourceFiles(); - for (var i = 0, len = sourceFiles.length; i < len; i++) { - var normFilename = ts.normalizePath(sourceFiles[i].fileName); - this.filenameToSourceFile[normFilename] = sourceFiles[i]; - } - }; - Project.prototype.finishGraph = function () { - this.updateGraph(); - this.compilerService.languageService.getNavigateToItems(".*"); - }; - Project.prototype.updateGraph = function () { - this.program = this.compilerService.languageService.getProgram(); - this.updateFileMap(); - }; - Project.prototype.isConfiguredProject = function () { - return this.projectFilename; - }; - Project.prototype.addRoot = function (info) { - info.defaultProject = this; - this.compilerService.host.addRoot(info); - }; - Project.prototype.filesToString = function () { - var strBuilder = ""; - ts.forEachValue(this.filenameToSourceFile, function (sourceFile) { strBuilder += sourceFile.fileName + "\n"; }); - return strBuilder; - }; - Project.prototype.setProjectOptions = function (projectOptions) { - this.projectOptions = projectOptions; - if (projectOptions.compilerOptions) { - this.compilerService.setCompilerOptions(projectOptions.compilerOptions); - } - }; - return Project; - })(); - server.Project = Project; - function copyListRemovingItem(item, list) { - var copiedList = []; - for (var i = 0, len = list.length; i < len; i++) { - if (list[i] != item) { - copiedList.push(list[i]); - } - } - return copiedList; - } - var ProjectService = (function () { - function ProjectService(host, psLogger, eventHandler) { - this.host = host; - this.psLogger = psLogger; - this.eventHandler = eventHandler; - this.filenameToScriptInfo = {}; - this.openFileRoots = []; - this.inferredProjects = []; - this.configuredProjects = []; - this.openFilesReferenced = []; - this.openFileRootsConfigured = []; - this.addDefaultHostConfiguration(); - } - ProjectService.prototype.addDefaultHostConfiguration = function () { - this.hostConfiguration = { - formatCodeOptions: ts.clone(CompilerService.defaultFormatCodeOptions), - hostInfo: "Unknown host" - }; - }; - ProjectService.prototype.getFormatCodeOptions = function (file) { - if (file) { - var info = this.filenameToScriptInfo[file]; - if (info) { - return info.formatCodeOptions; - } - } - return this.hostConfiguration.formatCodeOptions; - }; - ProjectService.prototype.watchedFileChanged = function (fileName) { - var info = this.filenameToScriptInfo[fileName]; - if (!info) { - this.psLogger.info("Error: got watch notification for unknown file: " + fileName); - } - if (!this.host.fileExists(fileName)) { - this.fileDeletedInFilesystem(info); - } - else { - if (info && (!info.isOpen)) { - info.svc.reloadFromFile(info.fileName); - } - } - }; - ProjectService.prototype.log = function (msg, type) { - if (type === void 0) { type = "Err"; } - this.psLogger.msg(msg, type); - }; - ProjectService.prototype.setHostConfiguration = function (args) { - if (args.file) { - var info = this.filenameToScriptInfo[args.file]; - if (info) { - info.setFormatOptions(args.formatOptions); - this.log("Host configuration update for file " + args.file); - } - } - else { - if (args.hostInfo !== undefined) { - this.hostConfiguration.hostInfo = args.hostInfo; - this.log("Host information " + args.hostInfo, "Info"); - } - if (args.formatOptions) { - mergeFormatOptions(this.hostConfiguration.formatCodeOptions, args.formatOptions); - this.log("Format host information updated", "Info"); - } - } - }; - ProjectService.prototype.closeLog = function () { - this.psLogger.close(); - }; - ProjectService.prototype.createInferredProject = function (root) { - var iproj = new Project(this); - iproj.addRoot(root); - iproj.finishGraph(); - this.inferredProjects.push(iproj); - return iproj; - }; - ProjectService.prototype.fileDeletedInFilesystem = function (info) { - this.psLogger.info(info.fileName + " deleted"); - if (info.fileWatcher) { - info.fileWatcher.close(); - info.fileWatcher = undefined; - } - if (!info.isOpen) { - this.filenameToScriptInfo[info.fileName] = undefined; - var referencingProjects = this.findReferencingProjects(info); - for (var i = 0, len = referencingProjects.length; i < len; i++) { - referencingProjects[i].removeReferencedFile(info); - } - for (var j = 0, flen = this.openFileRoots.length; j < flen; j++) { - var openFile = this.openFileRoots[j]; - if (this.eventHandler) { - this.eventHandler("context", openFile.defaultProject, openFile.fileName); - } - } - for (var j = 0, flen = this.openFilesReferenced.length; j < flen; j++) { - var openFile = this.openFilesReferenced[j]; - if (this.eventHandler) { - this.eventHandler("context", openFile.defaultProject, openFile.fileName); - } - } - } - this.printProjects(); - }; - ProjectService.prototype.updateConfiguredProjectList = function () { - var configuredProjects = []; - for (var i = 0, len = this.configuredProjects.length; i < len; i++) { - if (this.configuredProjects[i].openRefCount > 0) { - configuredProjects.push(this.configuredProjects[i]); - } - } - this.configuredProjects = configuredProjects; - }; - ProjectService.prototype.setConfiguredProjectRoot = function (info) { - for (var i = 0, len = this.configuredProjects.length; i < len; i++) { - var configuredProject = this.configuredProjects[i]; - if (configuredProject.isRoot(info)) { - info.defaultProject = configuredProject; - configuredProject.addOpenRef(); - return true; - } - } - return false; - }; - ProjectService.prototype.addOpenFile = function (info) { - if (this.setConfiguredProjectRoot(info)) { - this.openFileRootsConfigured.push(info); - } - else { - this.findReferencingProjects(info); - if (info.defaultProject) { - this.openFilesReferenced.push(info); - } - else { - info.defaultProject = this.createInferredProject(info); - var openFileRoots = []; - for (var i = 0, len = this.openFileRoots.length; i < len; i++) { - var r = this.openFileRoots[i]; - if (info.defaultProject.getSourceFile(r)) { - this.inferredProjects = - copyListRemovingItem(r.defaultProject, this.inferredProjects); - this.openFilesReferenced.push(r); - r.defaultProject = info.defaultProject; - } - else { - openFileRoots.push(r); - } - } - this.openFileRoots = openFileRoots; - this.openFileRoots.push(info); - } - } - this.updateConfiguredProjectList(); - }; - ProjectService.prototype.closeOpenFile = function (info) { - var openFileRoots = []; - var removedProject; - for (var i = 0, len = this.openFileRoots.length; i < len; i++) { - if (info === this.openFileRoots[i]) { - removedProject = info.defaultProject; - } - else { - openFileRoots.push(this.openFileRoots[i]); - } - } - this.openFileRoots = openFileRoots; - if (!removedProject) { - var openFileRootsConfigured = []; - for (var i = 0, len = this.openFileRootsConfigured.length; i < len; i++) { - if (info === this.openFileRootsConfigured[i]) { - if (info.defaultProject.deleteOpenRef() === 0) { - removedProject = info.defaultProject; - } - } - else { - openFileRootsConfigured.push(this.openFileRootsConfigured[i]); - } - } - this.openFileRootsConfigured = openFileRootsConfigured; - } - if (removedProject) { - if (removedProject.isConfiguredProject()) { - this.configuredProjects = copyListRemovingItem(removedProject, this.configuredProjects); - } - else { - this.inferredProjects = copyListRemovingItem(removedProject, this.inferredProjects); - } - var openFilesReferenced = []; - var orphanFiles = []; - for (var i = 0, len = this.openFilesReferenced.length; i < len; i++) { - var f = this.openFilesReferenced[i]; - if (f.defaultProject == removedProject) { - f.defaultProject = undefined; - orphanFiles.push(f); - } - else { - openFilesReferenced.push(f); - } - } - this.openFilesReferenced = openFilesReferenced; - for (var i = 0, len = orphanFiles.length; i < len; i++) { - this.addOpenFile(orphanFiles[i]); - } - } - else { - this.openFilesReferenced = copyListRemovingItem(info, this.openFilesReferenced); - } - info.close(); - }; - ProjectService.prototype.findReferencingProjects = function (info, excludedProject) { - var referencingProjects = []; - info.defaultProject = undefined; - for (var i = 0, len = this.inferredProjects.length; i < len; i++) { - var inferredProject = this.inferredProjects[i]; - inferredProject.updateGraph(); - if (inferredProject != excludedProject) { - if (inferredProject.getSourceFile(info)) { - info.defaultProject = inferredProject; - referencingProjects.push(inferredProject); - } - } - } - for (var i = 0, len = this.configuredProjects.length; i < len; i++) { - var configuredProject = this.configuredProjects[i]; - configuredProject.updateGraph(); - if (configuredProject.getSourceFile(info)) { - info.defaultProject = configuredProject; - } - } - return referencingProjects; - }; - ProjectService.prototype.updateProjectStructure = function () { - this.log("updating project structure from ...", "Info"); - this.printProjects(); - var openFilesReferenced = []; - var unattachedOpenFiles = []; - for (var i = 0, len = this.openFilesReferenced.length; i < len; i++) { - var referencedFile = this.openFilesReferenced[i]; - referencedFile.defaultProject.updateGraph(); - var sourceFile = referencedFile.defaultProject.getSourceFile(referencedFile); - if (sourceFile) { - openFilesReferenced.push(referencedFile); - } - else { - unattachedOpenFiles.push(referencedFile); - } - } - this.openFilesReferenced = openFilesReferenced; - var openFileRoots = []; - for (var i = 0, len = this.openFileRoots.length; i < len; i++) { - var rootFile = this.openFileRoots[i]; - var rootedProject = rootFile.defaultProject; - var referencingProjects = this.findReferencingProjects(rootFile, rootedProject); - if (referencingProjects.length == 0) { - rootFile.defaultProject = rootedProject; - openFileRoots.push(rootFile); - } - else { - this.inferredProjects = copyListRemovingItem(rootedProject, this.inferredProjects); - this.openFilesReferenced.push(rootFile); - } - } - this.openFileRoots = openFileRoots; - for (var i = 0, len = unattachedOpenFiles.length; i < len; i++) { - this.addOpenFile(unattachedOpenFiles[i]); - } - this.printProjects(); - }; - ProjectService.prototype.getScriptInfo = function (filename) { - filename = ts.normalizePath(filename); - return ts.lookUp(this.filenameToScriptInfo, filename); - }; - ProjectService.prototype.openFile = function (fileName, openedByClient) { - var _this = this; - fileName = ts.normalizePath(fileName); - var info = ts.lookUp(this.filenameToScriptInfo, fileName); - if (!info) { - var content; - if (this.host.fileExists(fileName)) { - content = this.host.readFile(fileName); - } - if (!content) { - if (openedByClient) { - content = ""; - } - } - if (content !== undefined) { - var indentSize; - info = new ScriptInfo(this.host, fileName, content, openedByClient); - this.filenameToScriptInfo[fileName] = info; - if (!info.isOpen) { - info.fileWatcher = this.host.watchFile(fileName, function (_) { _this.watchedFileChanged(fileName); }); - } - } - } - if (info) { - if (openedByClient) { - info.isOpen = true; - } - } - return info; - }; - ProjectService.prototype.findConfigFile = function (searchPath) { - while (true) { - var fileName = ts.combinePaths(searchPath, "tsconfig.json"); - if (ts.sys.fileExists(fileName)) { - return fileName; - } - var parentPath = ts.getDirectoryPath(searchPath); - if (parentPath === searchPath) { - break; - } - searchPath = parentPath; - } - return undefined; - }; - ProjectService.prototype.openClientFile = function (fileName) { - var searchPath = ts.normalizePath(ts.getDirectoryPath(fileName)); - this.log("Search path: " + searchPath, "Info"); - var configFileName = this.findConfigFile(searchPath); - if (configFileName) { - this.log("Config file name: " + configFileName, "Info"); - } - else { - this.log("no config file"); - } - if (configFileName) { - configFileName = getAbsolutePath(configFileName, searchPath); - } - if (configFileName && (!this.configProjectIsActive(configFileName))) { - var configResult = this.openConfigFile(configFileName, fileName); - if (!configResult.success) { - this.log("Error opening config file " + configFileName + " " + configResult.errorMsg); - } - else { - this.log("Opened configuration file " + configFileName, "Info"); - this.configuredProjects.push(configResult.project); - } - } - var info = this.openFile(fileName, true); - this.addOpenFile(info); - this.printProjects(); - return info; - }; - ProjectService.prototype.closeClientFile = function (filename) { - var info = ts.lookUp(this.filenameToScriptInfo, filename); - if (info) { - this.closeOpenFile(info); - info.isOpen = false; - } - this.printProjects(); - }; - ProjectService.prototype.getProjectForFile = function (filename) { - var scriptInfo = ts.lookUp(this.filenameToScriptInfo, filename); - if (scriptInfo) { - return scriptInfo.defaultProject; - } - }; - ProjectService.prototype.printProjectsForFile = function (filename) { - var scriptInfo = ts.lookUp(this.filenameToScriptInfo, filename); - if (scriptInfo) { - this.psLogger.startGroup(); - this.psLogger.info("Projects for " + filename); - var projects = this.findReferencingProjects(scriptInfo); - for (var i = 0, len = projects.length; i < len; i++) { - this.psLogger.info("Project " + i.toString()); - } - this.psLogger.endGroup(); - } - else { - this.psLogger.info(filename + " not in any project"); - } - }; - ProjectService.prototype.printProjects = function () { - this.psLogger.startGroup(); - for (var i = 0, len = this.inferredProjects.length; i < len; i++) { - var project = this.inferredProjects[i]; - project.updateGraph(); - this.psLogger.info("Project " + i.toString()); - this.psLogger.info(project.filesToString()); - this.psLogger.info("-----------------------------------------------"); - } - for (var i = 0, len = this.configuredProjects.length; i < len; i++) { - var project = this.configuredProjects[i]; - project.updateGraph(); - this.psLogger.info("Project (configured) " + (i + this.inferredProjects.length).toString()); - this.psLogger.info(project.filesToString()); - this.psLogger.info("-----------------------------------------------"); - } - this.psLogger.info("Open file roots of inferred projects: "); - for (var i = 0, len = this.openFileRoots.length; i < len; i++) { - this.psLogger.info(this.openFileRoots[i].fileName); - } - this.psLogger.info("Open files referenced by inferred or configured projects: "); - for (var i = 0, len = this.openFilesReferenced.length; i < len; i++) { - var fileInfo = this.openFilesReferenced[i].fileName; - if (this.openFilesReferenced[i].defaultProject.isConfiguredProject()) { - fileInfo += " (configured)"; - } - this.psLogger.info(fileInfo); - } - this.psLogger.info("Open file roots of configured projects: "); - for (var i = 0, len = this.openFileRootsConfigured.length; i < len; i++) { - this.psLogger.info(this.openFileRootsConfigured[i].fileName); - } - this.psLogger.endGroup(); - }; - ProjectService.prototype.configProjectIsActive = function (fileName) { - for (var i = 0, len = this.configuredProjects.length; i < len; i++) { - if (this.configuredProjects[i].projectFilename == fileName) { - return true; - } - } - return false; - }; - ProjectService.prototype.openConfigFile = function (configFilename, clientFileName) { - configFilename = ts.normalizePath(configFilename); - var dirPath = ts.getDirectoryPath(configFilename); - var rawConfig = ts.readConfigFile(configFilename); - if (!rawConfig) { - return { errorMsg: "tsconfig syntax error" }; - } - else { - var parsedCommandLine = ts.parseConfigFile(rawConfig, dirPath); - if (parsedCommandLine.errors && (parsedCommandLine.errors.length > 0)) { - return { errorMsg: "tsconfig option errors" }; - } - else if (parsedCommandLine.fileNames) { - var projectOptions = { - files: parsedCommandLine.fileNames, - compilerOptions: parsedCommandLine.options - }; - var proj = this.createProject(configFilename, projectOptions); - for (var i = 0, len = parsedCommandLine.fileNames.length; i < len; i++) { - var rootFilename = parsedCommandLine.fileNames[i]; - if (ts.sys.fileExists(rootFilename)) { - var info = this.openFile(rootFilename, clientFileName == rootFilename); - proj.addRoot(info); - } - else { - return { errorMsg: "specified file " + rootFilename + " not found" }; - } - } - proj.finishGraph(); - return { success: true, project: proj }; - } - else { - return { errorMsg: "no files found" }; - } - } - }; - ProjectService.prototype.createProject = function (projectFilename, projectOptions) { - var project = new Project(this, projectOptions); - project.projectFilename = projectFilename; - return project; - }; - return ProjectService; - })(); - server.ProjectService = ProjectService; - var CompilerService = (function () { - function CompilerService(project, opt) { - this.project = project; - this.documentRegistry = ts.createDocumentRegistry(); - this.host = new LSHost(project.projectService.host, project); - if (opt) { - this.setCompilerOptions(opt); - } - else { - this.setCompilerOptions(ts.getDefaultCompilerOptions()); - } - this.languageService = ts.createLanguageService(this.host, this.documentRegistry); - this.classifier = ts.createClassifier(); - } - CompilerService.prototype.setCompilerOptions = function (opt) { - this.settings = opt; - this.host.setCompilationSettings(opt); - }; - CompilerService.prototype.isExternalModule = function (filename) { - var sourceFile = this.languageService.getSourceFile(filename); - return ts.isExternalModule(sourceFile); - }; - CompilerService.defaultFormatCodeOptions = { - IndentSize: 4, - TabSize: 4, - NewLineCharacter: ts.sys.newLine, - ConvertTabsToSpaces: true, - InsertSpaceAfterCommaDelimiter: true, - InsertSpaceAfterSemicolonInForStatements: true, - InsertSpaceBeforeAndAfterBinaryOperators: true, - InsertSpaceAfterKeywordsInControlFlowStatements: true, - InsertSpaceAfterFunctionKeywordForAnonymousFunctions: false, - InsertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis: false, - PlaceOpenBraceOnNewLineForFunctions: false, - PlaceOpenBraceOnNewLineForControlBlocks: false - }; - return CompilerService; - })(); - var CharRangeSection; - (function (CharRangeSection) { - CharRangeSection[CharRangeSection["PreStart"] = 0] = "PreStart"; - CharRangeSection[CharRangeSection["Start"] = 1] = "Start"; - CharRangeSection[CharRangeSection["Entire"] = 2] = "Entire"; - CharRangeSection[CharRangeSection["Mid"] = 3] = "Mid"; - CharRangeSection[CharRangeSection["End"] = 4] = "End"; - CharRangeSection[CharRangeSection["PostEnd"] = 5] = "PostEnd"; - })(CharRangeSection || (CharRangeSection = {})); - var BaseLineIndexWalker = (function () { - function BaseLineIndexWalker() { - this.goSubtree = true; - this.done = false; - } - BaseLineIndexWalker.prototype.leaf = function (rangeStart, rangeLength, ll) { - }; - return BaseLineIndexWalker; - })(); - var EditWalker = (function (_super) { - __extends(EditWalker, _super); - function EditWalker() { - _super.call(this); - this.lineIndex = new LineIndex(); - this.endBranch = []; - this.state = CharRangeSection.Entire; - this.initialText = ""; - this.trailingText = ""; - this.suppressTrailingText = false; - this.lineIndex.root = new LineNode(); - this.startPath = [this.lineIndex.root]; - this.stack = [this.lineIndex.root]; - } - EditWalker.prototype.insertLines = function (insertedText) { - if (this.suppressTrailingText) { - this.trailingText = ""; - } - if (insertedText) { - insertedText = this.initialText + insertedText + this.trailingText; - } - else { - insertedText = this.initialText + this.trailingText; - } - var lm = LineIndex.linesFromText(insertedText); - var lines = lm.lines; - if (lines.length > 1) { - if (lines[lines.length - 1] == "") { - lines.length--; - } - } - var branchParent; - var lastZeroCount; - for (var k = this.endBranch.length - 1; k >= 0; k--) { - this.endBranch[k].updateCounts(); - if (this.endBranch[k].charCount() == 0) { - lastZeroCount = this.endBranch[k]; - if (k > 0) { - branchParent = this.endBranch[k - 1]; - } - else { - branchParent = this.branchNode; - } - } - } - if (lastZeroCount) { - branchParent.remove(lastZeroCount); - } - var insertionNode = this.startPath[this.startPath.length - 2]; - var leafNode = this.startPath[this.startPath.length - 1]; - var len = lines.length; - if (len > 0) { - leafNode.text = lines[0]; - if (len > 1) { - var insertedNodes = new Array(len - 1); - var startNode = leafNode; - for (var i = 1, len = lines.length; i < len; i++) { - insertedNodes[i - 1] = new LineLeaf(lines[i]); - } - var pathIndex = this.startPath.length - 2; - while (pathIndex >= 0) { - insertionNode = this.startPath[pathIndex]; - insertedNodes = insertionNode.insertAt(startNode, insertedNodes); - pathIndex--; - startNode = insertionNode; - } - var insertedNodesLen = insertedNodes.length; - while (insertedNodesLen > 0) { - var newRoot = new LineNode(); - newRoot.add(this.lineIndex.root); - insertedNodes = newRoot.insertAt(this.lineIndex.root, insertedNodes); - insertedNodesLen = insertedNodes.length; - this.lineIndex.root = newRoot; - } - this.lineIndex.root.updateCounts(); - } - else { - for (var j = this.startPath.length - 2; j >= 0; j--) { - this.startPath[j].updateCounts(); - } - } - } - else { - insertionNode.remove(leafNode); - for (var j = this.startPath.length - 2; j >= 0; j--) { - this.startPath[j].updateCounts(); - } - } - return this.lineIndex; - }; - EditWalker.prototype.post = function (relativeStart, relativeLength, lineCollection, parent, nodeType) { - if (lineCollection == this.lineCollectionAtBranch) { - this.state = CharRangeSection.End; - } - this.stack.length--; - return undefined; - }; - EditWalker.prototype.pre = function (relativeStart, relativeLength, lineCollection, parent, nodeType) { - var currentNode = this.stack[this.stack.length - 1]; - if ((this.state == CharRangeSection.Entire) && (nodeType == CharRangeSection.Start)) { - this.state = CharRangeSection.Start; - this.branchNode = currentNode; - this.lineCollectionAtBranch = lineCollection; - } - var child; - function fresh(node) { - if (node.isLeaf()) { - return new LineLeaf(""); - } - else - return new LineNode(); - } - switch (nodeType) { - case CharRangeSection.PreStart: - this.goSubtree = false; - if (this.state != CharRangeSection.End) { - currentNode.add(lineCollection); - } - break; - case CharRangeSection.Start: - if (this.state == CharRangeSection.End) { - this.goSubtree = false; - } - else { - child = fresh(lineCollection); - currentNode.add(child); - this.startPath[this.startPath.length] = child; - } - break; - case CharRangeSection.Entire: - if (this.state != CharRangeSection.End) { - child = fresh(lineCollection); - currentNode.add(child); - this.startPath[this.startPath.length] = child; - } - else { - if (!lineCollection.isLeaf()) { - child = fresh(lineCollection); - currentNode.add(child); - this.endBranch[this.endBranch.length] = child; - } - } - break; - case CharRangeSection.Mid: - this.goSubtree = false; - break; - case CharRangeSection.End: - if (this.state != CharRangeSection.End) { - this.goSubtree = false; - } - else { - if (!lineCollection.isLeaf()) { - child = fresh(lineCollection); - currentNode.add(child); - this.endBranch[this.endBranch.length] = child; - } - } - break; - case CharRangeSection.PostEnd: - this.goSubtree = false; - if (this.state != CharRangeSection.Start) { - currentNode.add(lineCollection); - } - break; - } - if (this.goSubtree) { - this.stack[this.stack.length] = child; - } - return lineCollection; - }; - EditWalker.prototype.leaf = function (relativeStart, relativeLength, ll) { - if (this.state == CharRangeSection.Start) { - this.initialText = ll.text.substring(0, relativeStart); - } - else if (this.state == CharRangeSection.Entire) { - this.initialText = ll.text.substring(0, relativeStart); - this.trailingText = ll.text.substring(relativeStart + relativeLength); - } - else { - this.trailingText = ll.text.substring(relativeStart + relativeLength); - } - }; - return EditWalker; - })(BaseLineIndexWalker); - var TextChange = (function () { - function TextChange(pos, deleteLen, insertedText) { - this.pos = pos; - this.deleteLen = deleteLen; - this.insertedText = insertedText; - } - TextChange.prototype.getTextChangeRange = function () { - return ts.createTextChangeRange(ts.createTextSpan(this.pos, this.deleteLen), this.insertedText ? this.insertedText.length : 0); - }; - return TextChange; - })(); - var ScriptVersionCache = (function () { - function ScriptVersionCache() { - this.changes = []; - this.versions = []; - this.minVersion = 0; - this.currentVersion = 0; - } - ScriptVersionCache.prototype.edit = function (pos, deleteLen, insertedText) { - this.changes[this.changes.length] = new TextChange(pos, deleteLen, insertedText); - if ((this.changes.length > ScriptVersionCache.changeNumberThreshold) || - (deleteLen > ScriptVersionCache.changeLengthThreshold) || - (insertedText && (insertedText.length > ScriptVersionCache.changeLengthThreshold))) { - this.getSnapshot(); - } - }; - ScriptVersionCache.prototype.latest = function () { - return this.versions[this.currentVersion]; - }; - ScriptVersionCache.prototype.latestVersion = function () { - if (this.changes.length > 0) { - this.getSnapshot(); - } - return this.currentVersion; - }; - ScriptVersionCache.prototype.reloadFromFile = function (filename, cb) { - var content = ts.sys.readFile(filename); - this.reload(content); - if (cb) - cb(); - }; - ScriptVersionCache.prototype.reload = function (script) { - this.currentVersion++; - this.changes = []; - var snap = new LineIndexSnapshot(this.currentVersion, this); - this.versions[this.currentVersion] = snap; - snap.index = new LineIndex(); - var lm = LineIndex.linesFromText(script); - snap.index.load(lm.lines); - for (var i = this.minVersion; i < this.currentVersion; i++) { - this.versions[i] = undefined; - } - this.minVersion = this.currentVersion; - }; - ScriptVersionCache.prototype.getSnapshot = function () { - var snap = this.versions[this.currentVersion]; - if (this.changes.length > 0) { - var snapIndex = this.latest().index; - for (var i = 0, len = this.changes.length; i < len; i++) { - var change = this.changes[i]; - snapIndex = snapIndex.edit(change.pos, change.deleteLen, change.insertedText); - } - snap = new LineIndexSnapshot(this.currentVersion + 1, this); - snap.index = snapIndex; - snap.changesSincePreviousVersion = this.changes; - this.currentVersion = snap.version; - this.versions[snap.version] = snap; - this.changes = []; - if ((this.currentVersion - this.minVersion) >= ScriptVersionCache.maxVersions) { - var oldMin = this.minVersion; - this.minVersion = (this.currentVersion - ScriptVersionCache.maxVersions) + 1; - for (var j = oldMin; j < this.minVersion; j++) { - this.versions[j] = undefined; - } - } - } - return snap; - }; - ScriptVersionCache.prototype.getTextChangesBetweenVersions = function (oldVersion, newVersion) { - if (oldVersion < newVersion) { - if (oldVersion >= this.minVersion) { - var textChangeRanges = []; - for (var i = oldVersion + 1; i <= newVersion; i++) { - var snap = this.versions[i]; - for (var j = 0, len = snap.changesSincePreviousVersion.length; j < len; j++) { - var textChange = snap.changesSincePreviousVersion[j]; - textChangeRanges[textChangeRanges.length] = textChange.getTextChangeRange(); - } - } - return ts.collapseTextChangeRangesAcrossMultipleVersions(textChangeRanges); - } - else { - return undefined; - } - } - else { - return ts.unchangedTextChangeRange; - } - }; - ScriptVersionCache.fromString = function (script) { - var svc = new ScriptVersionCache(); - var snap = new LineIndexSnapshot(0, svc); - svc.versions[svc.currentVersion] = snap; - snap.index = new LineIndex(); - var lm = LineIndex.linesFromText(script); - snap.index.load(lm.lines); - return svc; - }; - ScriptVersionCache.changeNumberThreshold = 8; - ScriptVersionCache.changeLengthThreshold = 256; - ScriptVersionCache.maxVersions = 8; - return ScriptVersionCache; - })(); - server.ScriptVersionCache = ScriptVersionCache; - var LineIndexSnapshot = (function () { - function LineIndexSnapshot(version, cache) { - this.version = version; - this.cache = cache; - this.changesSincePreviousVersion = []; - } - LineIndexSnapshot.prototype.getText = function (rangeStart, rangeEnd) { - return this.index.getText(rangeStart, rangeEnd - rangeStart); - }; - LineIndexSnapshot.prototype.getLength = function () { - return this.index.root.charCount(); - }; - LineIndexSnapshot.prototype.getLineStartPositions = function () { - var starts = [-1]; - var count = 1; - var pos = 0; - this.index.every(function (ll, s, len) { - starts[count++] = pos; - pos += ll.text.length; - return true; - }, 0); - return starts; - }; - LineIndexSnapshot.prototype.getLineMapper = function () { - var _this = this; - return (function (line) { - return _this.index.lineNumberToInfo(line).offset; - }); - }; - LineIndexSnapshot.prototype.getTextChangeRangeSinceVersion = function (scriptVersion) { - if (this.version <= scriptVersion) { - return ts.unchangedTextChangeRange; - } - else { - return this.cache.getTextChangesBetweenVersions(scriptVersion, this.version); - } - }; - LineIndexSnapshot.prototype.getChangeRange = function (oldSnapshot) { - var oldSnap = oldSnapshot; - return this.getTextChangeRangeSinceVersion(oldSnap.version); - }; - return LineIndexSnapshot; - })(); - var LineIndex = (function () { - function LineIndex() { - this.checkEdits = false; - } - LineIndex.prototype.charOffsetToLineNumberAndPos = function (charOffset) { - return this.root.charOffsetToLineNumberAndPos(1, charOffset); - }; - LineIndex.prototype.lineNumberToInfo = function (lineNumber) { - var lineCount = this.root.lineCount(); - if (lineNumber <= lineCount) { - var lineInfo = this.root.lineNumberToInfo(lineNumber, 0); - lineInfo.line = lineNumber; - return lineInfo; - } - else { - return { - line: lineNumber, - offset: this.root.charCount() - }; - } - }; - LineIndex.prototype.load = function (lines) { - if (lines.length > 0) { - var leaves = []; - for (var i = 0, len = lines.length; i < len; i++) { - leaves[i] = new LineLeaf(lines[i]); - } - this.root = LineIndex.buildTreeFromBottom(leaves); - } - else { - this.root = new LineNode(); - } - }; - LineIndex.prototype.walk = function (rangeStart, rangeLength, walkFns) { - this.root.walk(rangeStart, rangeLength, walkFns); - }; - LineIndex.prototype.getText = function (rangeStart, rangeLength) { - var accum = ""; - if ((rangeLength > 0) && (rangeStart < this.root.charCount())) { - this.walk(rangeStart, rangeLength, { - goSubtree: true, - done: false, - leaf: function (relativeStart, relativeLength, ll) { - accum = accum.concat(ll.text.substring(relativeStart, relativeStart + relativeLength)); - } - }); - } - return accum; - }; - LineIndex.prototype.every = function (f, rangeStart, rangeEnd) { - if (!rangeEnd) { - rangeEnd = this.root.charCount(); - } - var walkFns = { - goSubtree: true, - done: false, - leaf: function (relativeStart, relativeLength, ll) { - if (!f(ll, relativeStart, relativeLength)) { - this.done = true; - } - } - }; - this.walk(rangeStart, rangeEnd - rangeStart, walkFns); - return !walkFns.done; - }; - LineIndex.prototype.edit = function (pos, deleteLength, newText) { - function editFlat(source, s, dl, nt) { - if (nt === void 0) { nt = ""; } - return source.substring(0, s) + nt + source.substring(s + dl, source.length); - } - if (this.root.charCount() == 0) { - if (newText) { - this.load(LineIndex.linesFromText(newText).lines); - return this; - } - } - else { - if (this.checkEdits) { - var checkText = editFlat(this.getText(0, this.root.charCount()), pos, deleteLength, newText); - } - var walker = new EditWalker(); - if (pos >= this.root.charCount()) { - pos = this.root.charCount() - 1; - var endString = this.getText(pos, 1); - if (newText) { - newText = endString + newText; - } - else { - newText = endString; - } - deleteLength = 0; - walker.suppressTrailingText = true; - } - else if (deleteLength > 0) { - var e = pos + deleteLength; - var lineInfo = this.charOffsetToLineNumberAndPos(e); - if ((lineInfo && (lineInfo.offset == 0))) { - deleteLength += lineInfo.text.length; - if (newText) { - newText = newText + lineInfo.text; - } - else { - newText = lineInfo.text; - } - } - } - if (pos < this.root.charCount()) { - this.root.walk(pos, deleteLength, walker); - walker.insertLines(newText); - } - if (this.checkEdits) { - var updatedText = this.getText(0, this.root.charCount()); - ts.Debug.assert(checkText == updatedText, "buffer edit mismatch"); - } - return walker.lineIndex; - } - }; - LineIndex.buildTreeFromBottom = function (nodes) { - var nodeCount = Math.ceil(nodes.length / lineCollectionCapacity); - var interiorNodes = []; - var nodeIndex = 0; - for (var i = 0; i < nodeCount; i++) { - interiorNodes[i] = new LineNode(); - var charCount = 0; - var lineCount = 0; - for (var j = 0; j < lineCollectionCapacity; j++) { - if (nodeIndex < nodes.length) { - interiorNodes[i].add(nodes[nodeIndex]); - charCount += nodes[nodeIndex].charCount(); - lineCount += nodes[nodeIndex].lineCount(); - } - else { - break; - } - nodeIndex++; - } - interiorNodes[i].totalChars = charCount; - interiorNodes[i].totalLines = lineCount; - } - if (interiorNodes.length == 1) { - return interiorNodes[0]; - } - else { - return this.buildTreeFromBottom(interiorNodes); - } - }; - LineIndex.linesFromText = function (text) { - var lineStarts = ts.computeLineStarts(text); - if (lineStarts.length == 0) { - return { lines: [], lineMap: lineStarts }; - } - var lines = new Array(lineStarts.length); - var lc = lineStarts.length - 1; - for (var lmi = 0; lmi < lc; lmi++) { - lines[lmi] = text.substring(lineStarts[lmi], lineStarts[lmi + 1]); - } - var endText = text.substring(lineStarts[lc]); - if (endText.length > 0) { - lines[lc] = endText; - } - else { - lines.length--; - } - return { lines: lines, lineMap: lineStarts }; - }; - return LineIndex; - })(); - server.LineIndex = LineIndex; - var LineNode = (function () { - function LineNode() { - this.totalChars = 0; - this.totalLines = 0; - this.children = []; - } - LineNode.prototype.isLeaf = function () { - return false; - }; - LineNode.prototype.updateCounts = function () { - this.totalChars = 0; - this.totalLines = 0; - for (var i = 0, len = this.children.length; i < len; i++) { - var child = this.children[i]; - this.totalChars += child.charCount(); - this.totalLines += child.lineCount(); - } - }; - LineNode.prototype.execWalk = function (rangeStart, rangeLength, walkFns, childIndex, nodeType) { - if (walkFns.pre) { - walkFns.pre(rangeStart, rangeLength, this.children[childIndex], this, nodeType); - } - if (walkFns.goSubtree) { - this.children[childIndex].walk(rangeStart, rangeLength, walkFns); - if (walkFns.post) { - walkFns.post(rangeStart, rangeLength, this.children[childIndex], this, nodeType); - } - } - else { - walkFns.goSubtree = true; - } - return walkFns.done; - }; - LineNode.prototype.skipChild = function (relativeStart, relativeLength, childIndex, walkFns, nodeType) { - if (walkFns.pre && (!walkFns.done)) { - walkFns.pre(relativeStart, relativeLength, this.children[childIndex], this, nodeType); - walkFns.goSubtree = true; - } - }; - LineNode.prototype.walk = function (rangeStart, rangeLength, walkFns) { - var childIndex = 0; - var child = this.children[0]; - var childCharCount = child.charCount(); - var adjustedStart = rangeStart; - while (adjustedStart >= childCharCount) { - this.skipChild(adjustedStart, rangeLength, childIndex, walkFns, CharRangeSection.PreStart); - adjustedStart -= childCharCount; - child = this.children[++childIndex]; - childCharCount = child.charCount(); - } - if ((adjustedStart + rangeLength) <= childCharCount) { - if (this.execWalk(adjustedStart, rangeLength, walkFns, childIndex, CharRangeSection.Entire)) { - return; - } - } - else { - if (this.execWalk(adjustedStart, childCharCount - adjustedStart, walkFns, childIndex, CharRangeSection.Start)) { - return; - } - var adjustedLength = rangeLength - (childCharCount - adjustedStart); - child = this.children[++childIndex]; - childCharCount = child.charCount(); - while (adjustedLength > childCharCount) { - if (this.execWalk(0, childCharCount, walkFns, childIndex, CharRangeSection.Mid)) { - return; - } - adjustedLength -= childCharCount; - child = this.children[++childIndex]; - childCharCount = child.charCount(); - } - if (adjustedLength > 0) { - if (this.execWalk(0, adjustedLength, walkFns, childIndex, CharRangeSection.End)) { - return; - } - } - } - if (walkFns.pre) { - var clen = this.children.length; - if (childIndex < (clen - 1)) { - for (var ej = childIndex + 1; ej < clen; ej++) { - this.skipChild(0, 0, ej, walkFns, CharRangeSection.PostEnd); - } - } - } - }; - LineNode.prototype.charOffsetToLineNumberAndPos = function (lineNumber, charOffset) { - var childInfo = this.childFromCharOffset(lineNumber, charOffset); - if (!childInfo.child) { - return { - line: lineNumber, - offset: charOffset - }; - } - else if (childInfo.childIndex < this.children.length) { - if (childInfo.child.isLeaf()) { - return { - line: childInfo.lineNumber, - offset: childInfo.charOffset, - text: (childInfo.child).text, - leaf: (childInfo.child) - }; - } - else { - var lineNode = (childInfo.child); - return lineNode.charOffsetToLineNumberAndPos(childInfo.lineNumber, childInfo.charOffset); - } - } - else { - var lineInfo = this.lineNumberToInfo(this.lineCount(), 0); - return { line: this.lineCount(), offset: lineInfo.leaf.charCount() }; - } - }; - LineNode.prototype.lineNumberToInfo = function (lineNumber, charOffset) { - var childInfo = this.childFromLineNumber(lineNumber, charOffset); - if (!childInfo.child) { - return { - line: lineNumber, - offset: charOffset - }; - } - else if (childInfo.child.isLeaf()) { - return { - line: lineNumber, - offset: childInfo.charOffset, - text: (childInfo.child).text, - leaf: (childInfo.child) - }; - } - else { - var lineNode = (childInfo.child); - return lineNode.lineNumberToInfo(childInfo.relativeLineNumber, childInfo.charOffset); - } - }; - LineNode.prototype.childFromLineNumber = function (lineNumber, charOffset) { - var child; - var relativeLineNumber = lineNumber; - for (var i = 0, len = this.children.length; i < len; i++) { - child = this.children[i]; - var childLineCount = child.lineCount(); - if (childLineCount >= relativeLineNumber) { - break; - } - else { - relativeLineNumber -= childLineCount; - charOffset += child.charCount(); - } - } - return { - child: child, - childIndex: i, - relativeLineNumber: relativeLineNumber, - charOffset: charOffset - }; - }; - LineNode.prototype.childFromCharOffset = function (lineNumber, charOffset) { - var child; - for (var i = 0, len = this.children.length; i < len; i++) { - child = this.children[i]; - if (child.charCount() > charOffset) { - break; - } - else { - charOffset -= child.charCount(); - lineNumber += child.lineCount(); - } - } - return { - child: child, - childIndex: i, - charOffset: charOffset, - lineNumber: lineNumber - }; - }; - LineNode.prototype.splitAfter = function (childIndex) { - var splitNode; - var clen = this.children.length; - childIndex++; - var endLength = childIndex; - if (childIndex < clen) { - splitNode = new LineNode(); - while (childIndex < clen) { - splitNode.add(this.children[childIndex++]); - } - splitNode.updateCounts(); - } - this.children.length = endLength; - return splitNode; - }; - LineNode.prototype.remove = function (child) { - var childIndex = this.findChildIndex(child); - var clen = this.children.length; - if (childIndex < (clen - 1)) { - for (var i = childIndex; i < (clen - 1); i++) { - this.children[i] = this.children[i + 1]; - } - } - this.children.length--; - }; - LineNode.prototype.findChildIndex = function (child) { - var childIndex = 0; - var clen = this.children.length; - while ((this.children[childIndex] != child) && (childIndex < clen)) - childIndex++; - return childIndex; - }; - LineNode.prototype.insertAt = function (child, nodes) { - var childIndex = this.findChildIndex(child); - var clen = this.children.length; - var nodeCount = nodes.length; - if ((clen < lineCollectionCapacity) && (childIndex == (clen - 1)) && (nodeCount == 1)) { - this.add(nodes[0]); - this.updateCounts(); - return []; - } - else { - var shiftNode = this.splitAfter(childIndex); - var nodeIndex = 0; - childIndex++; - while ((childIndex < lineCollectionCapacity) && (nodeIndex < nodeCount)) { - this.children[childIndex++] = nodes[nodeIndex++]; - } - var splitNodes = []; - var splitNodeCount = 0; - if (nodeIndex < nodeCount) { - splitNodeCount = Math.ceil((nodeCount - nodeIndex) / lineCollectionCapacity); - splitNodes = new Array(splitNodeCount); - var splitNodeIndex = 0; - for (var i = 0; i < splitNodeCount; i++) { - splitNodes[i] = new LineNode(); - } - var splitNode = splitNodes[0]; - while (nodeIndex < nodeCount) { - splitNode.add(nodes[nodeIndex++]); - if (splitNode.children.length == lineCollectionCapacity) { - splitNodeIndex++; - splitNode = splitNodes[splitNodeIndex]; - } - } - for (i = splitNodes.length - 1; i >= 0; i--) { - if (splitNodes[i].children.length == 0) { - splitNodes.length--; - } - } - } - if (shiftNode) { - splitNodes[splitNodes.length] = shiftNode; - } - this.updateCounts(); - for (i = 0; i < splitNodeCount; i++) { - splitNodes[i].updateCounts(); - } - return splitNodes; - } - }; - LineNode.prototype.add = function (collection) { - this.children[this.children.length] = collection; - return (this.children.length < lineCollectionCapacity); - }; - LineNode.prototype.charCount = function () { - return this.totalChars; - }; - LineNode.prototype.lineCount = function () { - return this.totalLines; - }; - return LineNode; - })(); - var LineLeaf = (function () { - function LineLeaf(text) { - this.text = text; - } - LineLeaf.prototype.setUdata = function (data) { - this.udata = data; - }; - LineLeaf.prototype.getUdata = function () { - return this.udata; - }; - LineLeaf.prototype.isLeaf = function () { - return true; - }; - LineLeaf.prototype.walk = function (rangeStart, rangeLength, walkFns) { - walkFns.leaf(rangeStart, rangeLength, this); - }; - LineLeaf.prototype.charCount = function () { - return this.text.length; - }; - LineLeaf.prototype.lineCount = function () { - return 1; - }; - return LineLeaf; - })(); - })(server = ts.server || (ts.server = {})); -})(ts || (ts = {})); -/// -/// -var ts; -(function (ts) { - var server; - (function (server) { - var nodeproto = require('_debugger'); - var readline = require('readline'); - var path = require('path'); - var fs = require('fs'); - var rl = readline.createInterface({ - input: process.stdin, - output: process.stdout, - terminal: false - }); - var Logger = (function () { - function Logger(logFilename, level) { - this.logFilename = logFilename; - this.level = level; - this.fd = -1; - this.seq = 0; - this.inGroup = false; - this.firstInGroup = true; - } - Logger.padStringRight = function (str, padding) { - return (str + padding).slice(0, padding.length); - }; - Logger.prototype.close = function () { - if (this.fd >= 0) { - fs.close(this.fd); - } - }; - Logger.prototype.perftrc = function (s) { - this.msg(s, "Perf"); - }; - Logger.prototype.info = function (s) { - this.msg(s, "Info"); - }; - Logger.prototype.startGroup = function () { - this.inGroup = true; - this.firstInGroup = true; - }; - Logger.prototype.endGroup = function () { - this.inGroup = false; - this.seq++; - this.firstInGroup = true; - }; - Logger.prototype.loggingEnabled = function () { - return !!this.logFilename; - }; - Logger.prototype.isVerbose = function () { - return this.loggingEnabled() && (this.level == "verbose"); - }; - Logger.prototype.msg = function (s, type) { - if (type === void 0) { type = "Err"; } - if (this.fd < 0) { - if (this.logFilename) { - this.fd = fs.openSync(this.logFilename, "w"); - } - } - if (this.fd >= 0) { - s = s + "\n"; - var prefix = Logger.padStringRight(type + " " + this.seq.toString(), " "); - if (this.firstInGroup) { - s = prefix + s; - this.firstInGroup = false; - } - if (!this.inGroup) { - this.seq++; - this.firstInGroup = true; - } - var buf = new Buffer(s); - fs.writeSync(this.fd, buf, 0, buf.length, null); - } - }; - return Logger; - })(); - var WatchedFileSet = (function () { - function WatchedFileSet(interval, chunkSize) { - if (interval === void 0) { interval = 2500; } - if (chunkSize === void 0) { chunkSize = 30; } - this.interval = interval; - this.chunkSize = chunkSize; - this.watchedFiles = []; - this.nextFileToCheck = 0; - } - WatchedFileSet.copyListRemovingItem = function (item, list) { - var copiedList = []; - for (var i = 0, len = list.length; i < len; i++) { - if (list[i] != item) { - copiedList.push(list[i]); - } - } - return copiedList; - }; - WatchedFileSet.getModifiedTime = function (fileName) { - return fs.statSync(fileName).mtime; - }; - WatchedFileSet.prototype.poll = function (checkedIndex) { - var watchedFile = this.watchedFiles[checkedIndex]; - if (!watchedFile) { - return; - } - fs.stat(watchedFile.fileName, function (err, stats) { - if (err) { - watchedFile.callback(watchedFile.fileName); - } - else if (watchedFile.mtime.getTime() != stats.mtime.getTime()) { - watchedFile.mtime = WatchedFileSet.getModifiedTime(watchedFile.fileName); - watchedFile.callback(watchedFile.fileName); - } - }); - }; - WatchedFileSet.prototype.startWatchTimer = function () { - var _this = this; - this.watchTimer = setInterval(function () { - var count = 0; - var nextToCheck = _this.nextFileToCheck; - var firstCheck = -1; - while ((count < _this.chunkSize) && (nextToCheck != firstCheck)) { - _this.poll(nextToCheck); - if (firstCheck < 0) { - firstCheck = nextToCheck; - } - nextToCheck++; - if (nextToCheck === _this.watchedFiles.length) { - nextToCheck = 0; - } - count++; - } - _this.nextFileToCheck = nextToCheck; - }, this.interval); - }; - WatchedFileSet.prototype.addFile = function (fileName, callback) { - var file = { - fileName: fileName, - callback: callback, - mtime: WatchedFileSet.getModifiedTime(fileName) - }; - this.watchedFiles.push(file); - if (this.watchedFiles.length === 1) { - this.startWatchTimer(); - } - return file; - }; - WatchedFileSet.prototype.removeFile = function (file) { - this.watchedFiles = WatchedFileSet.copyListRemovingItem(file, this.watchedFiles); - }; - return WatchedFileSet; - })(); - var IOSession = (function (_super) { - __extends(IOSession, _super); - function IOSession(host, logger) { - _super.call(this, host, logger); - } - IOSession.prototype.listen = function () { - var _this = this; - rl.on('line', function (input) { - var message = input.trim(); - _this.onMessage(message); - }); - rl.on('close', function () { - _this.projectService.log("Exiting..."); - _this.projectService.closeLog(); - process.exit(0); - }); - }; - return IOSession; - })(server.Session); - function parseLoggingEnvironmentString(logEnvStr) { - var logEnv = {}; - var args = logEnvStr.split(' '); - for (var i = 0, len = args.length; i < (len - 1); i += 2) { - var option = args[i]; - var value = args[i + 1]; - if (option && value) { - switch (option) { - case "-file": - logEnv.file = value; - break; - case "-level": - logEnv.detailLevel = value; - break; - } - } - } - return logEnv; - } - function createLoggerFromEnv() { - var fileName = undefined; - var detailLevel = "normal"; - var logEnvStr = process.env["TSS_LOG"]; - if (logEnvStr) { - var logEnv = parseLoggingEnvironmentString(logEnvStr); - if (logEnv.file) { - fileName = logEnv.file; - } - else { - fileName = __dirname + "/.log" + process.pid.toString(); - } - if (logEnv.detailLevel) { - detailLevel = logEnv.detailLevel; - } - } - return new Logger(fileName, detailLevel); - } - var logger = createLoggerFromEnv(); - var watchedFileSet = new WatchedFileSet(); - ts.sys.watchFile = function (fileName, callback) { - var watchedFile = watchedFileSet.addFile(fileName, callback); - return { - close: function () { return watchedFileSet.removeFile(watchedFile); } - }; - }; - var ioSession = new IOSession(ts.sys, logger); - process.on('uncaughtException', function (err) { - ioSession.logError(err, "unknown"); - }); - ioSession.listen(); - })(server = ts.server || (ts.server = {})); -})(ts || (ts = {})); -//# sourceMappingURL=file:////Users/steve/src/TypeScript/built/local/tsserver.js.map \ No newline at end of file +/*! ***************************************************************************** +Copyright (c) Microsoft Corporation. All rights reserved. +Licensed under the Apache License, Version 2.0 (the "License"); you may not use +this file except in compliance with the License. You may obtain a copy of the +License at http://www.apache.org/licenses/LICENSE-2.0 + +THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED +WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, +MERCHANTABLITY OR NON-INFRINGEMENT. + +See the Apache Version 2.0 License for specific language governing permissions +and limitations under the License. +***************************************************************************** */ + +var ts; +(function (ts) { + (function (ExitStatus) { + ExitStatus[ExitStatus["Success"] = 0] = "Success"; + ExitStatus[ExitStatus["DiagnosticsPresent_OutputsSkipped"] = 1] = "DiagnosticsPresent_OutputsSkipped"; + ExitStatus[ExitStatus["DiagnosticsPresent_OutputsGenerated"] = 2] = "DiagnosticsPresent_OutputsGenerated"; + })(ts.ExitStatus || (ts.ExitStatus = {})); + var ExitStatus = ts.ExitStatus; + (function (DiagnosticCategory) { + DiagnosticCategory[DiagnosticCategory["Warning"] = 0] = "Warning"; + DiagnosticCategory[DiagnosticCategory["Error"] = 1] = "Error"; + DiagnosticCategory[DiagnosticCategory["Message"] = 2] = "Message"; + })(ts.DiagnosticCategory || (ts.DiagnosticCategory = {})); + var DiagnosticCategory = ts.DiagnosticCategory; +})(ts || (ts = {})); +/// +var ts; +(function (ts) { + function forEach(array, callback) { + if (array) { + for (var i = 0, len = array.length; i < len; i++) { + var result = callback(array[i], i); + if (result) { + return result; + } + } + } + return undefined; + } + ts.forEach = forEach; + function contains(array, value) { + if (array) { + for (var _i = 0; _i < array.length; _i++) { + var v = array[_i]; + if (v === value) { + return true; + } + } + } + return false; + } + ts.contains = contains; + function indexOf(array, value) { + if (array) { + for (var i = 0, len = array.length; i < len; i++) { + if (array[i] === value) { + return i; + } + } + } + return -1; + } + ts.indexOf = indexOf; + function countWhere(array, predicate) { + var count = 0; + if (array) { + for (var _i = 0; _i < array.length; _i++) { + var v = array[_i]; + if (predicate(v)) { + count++; + } + } + } + return count; + } + ts.countWhere = countWhere; + function filter(array, f) { + var result; + if (array) { + result = []; + for (var _i = 0; _i < array.length; _i++) { + var item_1 = array[_i]; + if (f(item_1)) { + result.push(item_1); + } + } + } + return result; + } + ts.filter = filter; + function map(array, f) { + var result; + if (array) { + result = []; + for (var _i = 0; _i < array.length; _i++) { + var v = array[_i]; + result.push(f(v)); + } + } + return result; + } + ts.map = map; + function concatenate(array1, array2) { + if (!array2 || !array2.length) + return array1; + if (!array1 || !array1.length) + return array2; + return array1.concat(array2); + } + ts.concatenate = concatenate; + function deduplicate(array) { + var result; + if (array) { + result = []; + for (var _i = 0; _i < array.length; _i++) { + var item_2 = array[_i]; + if (!contains(result, item_2)) { + result.push(item_2); + } + } + } + return result; + } + ts.deduplicate = deduplicate; + function sum(array, prop) { + var result = 0; + for (var _i = 0; _i < array.length; _i++) { + var v = array[_i]; + result += v[prop]; + } + return result; + } + ts.sum = sum; + function addRange(to, from) { + if (to && from) { + for (var _i = 0; _i < from.length; _i++) { + var v = from[_i]; + to.push(v); + } + } + } + ts.addRange = addRange; + function lastOrUndefined(array) { + if (array.length === 0) { + return undefined; + } + return array[array.length - 1]; + } + ts.lastOrUndefined = lastOrUndefined; + function binarySearch(array, value) { + var low = 0; + var high = array.length - 1; + while (low <= high) { + var middle = low + ((high - low) >> 1); + var midValue = array[middle]; + if (midValue === value) { + return middle; + } + else if (midValue > value) { + high = middle - 1; + } + else { + low = middle + 1; + } + } + return ~low; + } + ts.binarySearch = binarySearch; + function reduceLeft(array, f, initial) { + if (array) { + var count = array.length; + if (count > 0) { + var pos = 0; + var result = arguments.length <= 2 ? array[pos++] : initial; + while (pos < count) { + result = f(result, array[pos++]); + } + return result; + } + } + return initial; + } + ts.reduceLeft = reduceLeft; + function reduceRight(array, f, initial) { + if (array) { + var pos = array.length - 1; + if (pos >= 0) { + var result = arguments.length <= 2 ? array[pos--] : initial; + while (pos >= 0) { + result = f(result, array[pos--]); + } + return result; + } + } + return initial; + } + ts.reduceRight = reduceRight; + var hasOwnProperty = Object.prototype.hasOwnProperty; + function hasProperty(map, key) { + return hasOwnProperty.call(map, key); + } + ts.hasProperty = hasProperty; + function getProperty(map, key) { + return hasOwnProperty.call(map, key) ? map[key] : undefined; + } + ts.getProperty = getProperty; + function isEmpty(map) { + for (var id in map) { + if (hasProperty(map, id)) { + return false; + } + } + return true; + } + ts.isEmpty = isEmpty; + function clone(object) { + var result = {}; + for (var id in object) { + result[id] = object[id]; + } + return result; + } + ts.clone = clone; + function extend(first, second) { + var result = {}; + for (var id in first) { + result[id] = first[id]; + } + for (var id in second) { + if (!hasProperty(result, id)) { + result[id] = second[id]; + } + } + return result; + } + ts.extend = extend; + function forEachValue(map, callback) { + var result; + for (var id in map) { + if (result = callback(map[id])) + break; + } + return result; + } + ts.forEachValue = forEachValue; + function forEachKey(map, callback) { + var result; + for (var id in map) { + if (result = callback(id)) + break; + } + return result; + } + ts.forEachKey = forEachKey; + function lookUp(map, key) { + return hasProperty(map, key) ? map[key] : undefined; + } + ts.lookUp = lookUp; + function copyMap(source, target) { + for (var p in source) { + target[p] = source[p]; + } + } + ts.copyMap = copyMap; + function arrayToMap(array, makeKey) { + var result = {}; + forEach(array, function (value) { + result[makeKey(value)] = value; + }); + return result; + } + ts.arrayToMap = arrayToMap; + function formatStringFromArgs(text, args, baseIndex) { + baseIndex = baseIndex || 0; + return text.replace(/{(\d+)}/g, function (match, index) { return args[+index + baseIndex]; }); + } + ts.localizedDiagnosticMessages = undefined; + function getLocaleSpecificMessage(message) { + return ts.localizedDiagnosticMessages && ts.localizedDiagnosticMessages[message] + ? ts.localizedDiagnosticMessages[message] + : message; + } + ts.getLocaleSpecificMessage = getLocaleSpecificMessage; + function createFileDiagnostic(file, start, length, message) { + var end = start + length; + Debug.assert(start >= 0, "start must be non-negative, is " + start); + Debug.assert(length >= 0, "length must be non-negative, is " + length); + Debug.assert(start <= file.text.length, "start must be within the bounds of the file. " + start + " > " + file.text.length); + Debug.assert(end <= file.text.length, "end must be the bounds of the file. " + end + " > " + file.text.length); + var text = getLocaleSpecificMessage(message.key); + if (arguments.length > 4) { + text = formatStringFromArgs(text, arguments, 4); + } + return { + file: file, + start: start, + length: length, + messageText: text, + category: message.category, + code: message.code + }; + } + ts.createFileDiagnostic = createFileDiagnostic; + function createCompilerDiagnostic(message) { + var text = getLocaleSpecificMessage(message.key); + if (arguments.length > 1) { + text = formatStringFromArgs(text, arguments, 1); + } + return { + file: undefined, + start: undefined, + length: undefined, + messageText: text, + category: message.category, + code: message.code + }; + } + ts.createCompilerDiagnostic = createCompilerDiagnostic; + function chainDiagnosticMessages(details, message) { + var text = getLocaleSpecificMessage(message.key); + if (arguments.length > 2) { + text = formatStringFromArgs(text, arguments, 2); + } + return { + messageText: text, + category: message.category, + code: message.code, + next: details + }; + } + ts.chainDiagnosticMessages = chainDiagnosticMessages; + function concatenateDiagnosticMessageChains(headChain, tailChain) { + Debug.assert(!headChain.next); + headChain.next = tailChain; + return headChain; + } + ts.concatenateDiagnosticMessageChains = concatenateDiagnosticMessageChains; + function compareValues(a, b) { + if (a === b) + return 0; + if (a === undefined) + return -1; + if (b === undefined) + return 1; + return a < b ? -1 : 1; + } + ts.compareValues = compareValues; + function getDiagnosticFileName(diagnostic) { + return diagnostic.file ? diagnostic.file.fileName : undefined; + } + function compareDiagnostics(d1, d2) { + return compareValues(getDiagnosticFileName(d1), getDiagnosticFileName(d2)) || + compareValues(d1.start, d2.start) || + compareValues(d1.length, d2.length) || + compareValues(d1.code, d2.code) || + compareMessageText(d1.messageText, d2.messageText) || + 0; + } + ts.compareDiagnostics = compareDiagnostics; + function compareMessageText(text1, text2) { + while (text1 && text2) { + var string1 = typeof text1 === "string" ? text1 : text1.messageText; + var string2 = typeof text2 === "string" ? text2 : text2.messageText; + var res = compareValues(string1, string2); + if (res) { + return res; + } + text1 = typeof text1 === "string" ? undefined : text1.next; + text2 = typeof text2 === "string" ? undefined : text2.next; + } + if (!text1 && !text2) { + return 0; + } + return text1 ? 1 : -1; + } + function sortAndDeduplicateDiagnostics(diagnostics) { + return deduplicateSortedDiagnostics(diagnostics.sort(compareDiagnostics)); + } + ts.sortAndDeduplicateDiagnostics = sortAndDeduplicateDiagnostics; + function deduplicateSortedDiagnostics(diagnostics) { + if (diagnostics.length < 2) { + return diagnostics; + } + var newDiagnostics = [diagnostics[0]]; + var previousDiagnostic = diagnostics[0]; + for (var i = 1; i < diagnostics.length; i++) { + var currentDiagnostic = diagnostics[i]; + var isDupe = compareDiagnostics(currentDiagnostic, previousDiagnostic) === 0; + if (!isDupe) { + newDiagnostics.push(currentDiagnostic); + previousDiagnostic = currentDiagnostic; + } + } + return newDiagnostics; + } + ts.deduplicateSortedDiagnostics = deduplicateSortedDiagnostics; + function normalizeSlashes(path) { + return path.replace(/\\/g, "/"); + } + ts.normalizeSlashes = normalizeSlashes; + function getRootLength(path) { + if (path.charCodeAt(0) === 47) { + if (path.charCodeAt(1) !== 47) + return 1; + var p1 = path.indexOf("/", 2); + if (p1 < 0) + return 2; + var p2 = path.indexOf("/", p1 + 1); + if (p2 < 0) + return p1 + 1; + return p2 + 1; + } + if (path.charCodeAt(1) === 58) { + if (path.charCodeAt(2) === 47) + return 3; + return 2; + } + return 0; + } + ts.getRootLength = getRootLength; + ts.directorySeparator = "/"; + function getNormalizedParts(normalizedSlashedPath, rootLength) { + var parts = normalizedSlashedPath.substr(rootLength).split(ts.directorySeparator); + var normalized = []; + for (var _i = 0; _i < parts.length; _i++) { + var part = parts[_i]; + if (part !== ".") { + if (part === ".." && normalized.length > 0 && normalized[normalized.length - 1] !== "..") { + normalized.pop(); + } + else { + if (part) { + normalized.push(part); + } + } + } + } + return normalized; + } + function normalizePath(path) { + path = normalizeSlashes(path); + var rootLength = getRootLength(path); + var normalized = getNormalizedParts(path, rootLength); + return path.substr(0, rootLength) + normalized.join(ts.directorySeparator); + } + ts.normalizePath = normalizePath; + function getDirectoryPath(path) { + return path.substr(0, Math.max(getRootLength(path), path.lastIndexOf(ts.directorySeparator))); + } + ts.getDirectoryPath = getDirectoryPath; + function isUrl(path) { + return path && !isRootedDiskPath(path) && path.indexOf("://") !== -1; + } + ts.isUrl = isUrl; + function isRootedDiskPath(path) { + return getRootLength(path) !== 0; + } + ts.isRootedDiskPath = isRootedDiskPath; + function normalizedPathComponents(path, rootLength) { + var normalizedParts = getNormalizedParts(path, rootLength); + return [path.substr(0, rootLength)].concat(normalizedParts); + } + function getNormalizedPathComponents(path, currentDirectory) { + path = normalizeSlashes(path); + var rootLength = getRootLength(path); + if (rootLength == 0) { + path = combinePaths(normalizeSlashes(currentDirectory), path); + rootLength = getRootLength(path); + } + return normalizedPathComponents(path, rootLength); + } + ts.getNormalizedPathComponents = getNormalizedPathComponents; + function getNormalizedAbsolutePath(fileName, currentDirectory) { + return getNormalizedPathFromPathComponents(getNormalizedPathComponents(fileName, currentDirectory)); + } + ts.getNormalizedAbsolutePath = getNormalizedAbsolutePath; + function getNormalizedPathFromPathComponents(pathComponents) { + if (pathComponents && pathComponents.length) { + return pathComponents[0] + pathComponents.slice(1).join(ts.directorySeparator); + } + } + ts.getNormalizedPathFromPathComponents = getNormalizedPathFromPathComponents; + function getNormalizedPathComponentsOfUrl(url) { + // Get root length of http://www.website.com/folder1/foler2/ + // In this example the root is: http://www.website.com/ + // normalized path components should be ["http://www.website.com/", "folder1", "folder2"] + var urlLength = url.length; + var rootLength = url.indexOf("://") + "://".length; + while (rootLength < urlLength) { + if (url.charCodeAt(rootLength) === 47) { + rootLength++; + } + else { + break; + } + } + if (rootLength === urlLength) { + return [url]; + } + var indexOfNextSlash = url.indexOf(ts.directorySeparator, rootLength); + if (indexOfNextSlash !== -1) { + rootLength = indexOfNextSlash + 1; + return normalizedPathComponents(url, rootLength); + } + else { + return [url + ts.directorySeparator]; + } + } + function getNormalizedPathOrUrlComponents(pathOrUrl, currentDirectory) { + if (isUrl(pathOrUrl)) { + return getNormalizedPathComponentsOfUrl(pathOrUrl); + } + else { + return getNormalizedPathComponents(pathOrUrl, currentDirectory); + } + } + function getRelativePathToDirectoryOrUrl(directoryPathOrUrl, relativeOrAbsolutePath, currentDirectory, getCanonicalFileName, isAbsolutePathAnUrl) { + var pathComponents = getNormalizedPathOrUrlComponents(relativeOrAbsolutePath, currentDirectory); + var directoryComponents = getNormalizedPathOrUrlComponents(directoryPathOrUrl, currentDirectory); + if (directoryComponents.length > 1 && directoryComponents[directoryComponents.length - 1] === "") { + directoryComponents.length--; + } + for (var joinStartIndex = 0; joinStartIndex < pathComponents.length && joinStartIndex < directoryComponents.length; joinStartIndex++) { + if (getCanonicalFileName(directoryComponents[joinStartIndex]) !== getCanonicalFileName(pathComponents[joinStartIndex])) { + break; + } + } + if (joinStartIndex) { + var relativePath = ""; + var relativePathComponents = pathComponents.slice(joinStartIndex, pathComponents.length); + for (; joinStartIndex < directoryComponents.length; joinStartIndex++) { + if (directoryComponents[joinStartIndex] !== "") { + relativePath = relativePath + ".." + ts.directorySeparator; + } + } + return relativePath + relativePathComponents.join(ts.directorySeparator); + } + var absolutePath = getNormalizedPathFromPathComponents(pathComponents); + if (isAbsolutePathAnUrl && isRootedDiskPath(absolutePath)) { + absolutePath = "file:///" + absolutePath; + } + return absolutePath; + } + ts.getRelativePathToDirectoryOrUrl = getRelativePathToDirectoryOrUrl; + function getBaseFileName(path) { + var i = path.lastIndexOf(ts.directorySeparator); + return i < 0 ? path : path.substring(i + 1); + } + ts.getBaseFileName = getBaseFileName; + function combinePaths(path1, path2) { + if (!(path1 && path1.length)) + return path2; + if (!(path2 && path2.length)) + return path1; + if (getRootLength(path2) !== 0) + return path2; + if (path1.charAt(path1.length - 1) === ts.directorySeparator) + return path1 + path2; + return path1 + ts.directorySeparator + path2; + } + ts.combinePaths = combinePaths; + function fileExtensionIs(path, extension) { + var pathLen = path.length; + var extLen = extension.length; + return pathLen > extLen && path.substr(pathLen - extLen, extLen) === extension; + } + ts.fileExtensionIs = fileExtensionIs; + var supportedExtensions = [".d.ts", ".ts", ".js"]; + function removeFileExtension(path) { + for (var _i = 0; _i < supportedExtensions.length; _i++) { + var ext = supportedExtensions[_i]; + if (fileExtensionIs(path, ext)) { + return path.substr(0, path.length - ext.length); + } + } + return path; + } + ts.removeFileExtension = removeFileExtension; + var backslashOrDoubleQuote = /[\"\\]/g; + var escapedCharsRegExp = /[\u0000-\u001f\t\v\f\b\r\n\u2028\u2029\u0085]/g; + var escapedCharsMap = { + "\0": "\\0", + "\t": "\\t", + "\v": "\\v", + "\f": "\\f", + "\b": "\\b", + "\r": "\\r", + "\n": "\\n", + "\\": "\\\\", + "\"": "\\\"", + "\u2028": "\\u2028", + "\u2029": "\\u2029", + "\u0085": "\\u0085" + }; + function getDefaultLibFileName(options) { + return options.target === 2 ? "lib.es6.d.ts" : "lib.d.ts"; + } + ts.getDefaultLibFileName = getDefaultLibFileName; + function Symbol(flags, name) { + this.flags = flags; + this.name = name; + this.declarations = undefined; + } + function Type(checker, flags) { + this.flags = flags; + } + function Signature(checker) { + } + ts.objectAllocator = { + getNodeConstructor: function (kind) { + function Node() { + } + Node.prototype = { + kind: kind, + pos: 0, + end: 0, + flags: 0, + parent: undefined + }; + return Node; + }, + getSymbolConstructor: function () { return Symbol; }, + getTypeConstructor: function () { return Type; }, + getSignatureConstructor: function () { return Signature; } + }; + var Debug; + (function (Debug) { + var currentAssertionLevel = 0; + function shouldAssert(level) { + return currentAssertionLevel >= level; + } + Debug.shouldAssert = shouldAssert; + function assert(expression, message, verboseDebugInfo) { + if (!expression) { + var verboseDebugString = ""; + if (verboseDebugInfo) { + verboseDebugString = "\r\nVerbose Debug Information: " + verboseDebugInfo(); + } + throw new Error("Debug Failure. False expression: " + (message || "") + verboseDebugString); + } + } + Debug.assert = assert; + function fail(message) { + Debug.assert(false, message); + } + Debug.fail = fail; + })(Debug = ts.Debug || (ts.Debug = {})); +})(ts || (ts = {})); +/// +var ts; +(function (ts) { + ts.sys = (function () { + function getWScriptSystem() { + var fso = new ActiveXObject("Scripting.FileSystemObject"); + var fileStream = new ActiveXObject("ADODB.Stream"); + fileStream.Type = 2; + var binaryStream = new ActiveXObject("ADODB.Stream"); + binaryStream.Type = 1; + var args = []; + for (var i = 0; i < WScript.Arguments.length; i++) { + args[i] = WScript.Arguments.Item(i); + } + function readFile(fileName, encoding) { + if (!fso.FileExists(fileName)) { + return undefined; + } + fileStream.Open(); + try { + if (encoding) { + fileStream.Charset = encoding; + fileStream.LoadFromFile(fileName); + } + else { + fileStream.Charset = "x-ansi"; + fileStream.LoadFromFile(fileName); + var bom = fileStream.ReadText(2) || ""; + fileStream.Position = 0; + fileStream.Charset = bom.length >= 2 && (bom.charCodeAt(0) === 0xFF && bom.charCodeAt(1) === 0xFE || bom.charCodeAt(0) === 0xFE && bom.charCodeAt(1) === 0xFF) ? "unicode" : "utf-8"; + } + return fileStream.ReadText(); + } + catch (e) { + throw e; + } + finally { + fileStream.Close(); + } + } + function writeFile(fileName, data, writeByteOrderMark) { + fileStream.Open(); + binaryStream.Open(); + try { + fileStream.Charset = "utf-8"; + fileStream.WriteText(data); + if (writeByteOrderMark) { + fileStream.Position = 0; + } + else { + fileStream.Position = 3; + } + fileStream.CopyTo(binaryStream); + binaryStream.SaveToFile(fileName, 2); + } + finally { + binaryStream.Close(); + fileStream.Close(); + } + } + function getNames(collection) { + var result = []; + for (var e = new Enumerator(collection); !e.atEnd(); e.moveNext()) { + result.push(e.item().Name); + } + return result.sort(); + } + function readDirectory(path, extension) { + var result = []; + visitDirectory(path); + return result; + function visitDirectory(path) { + var folder = fso.GetFolder(path || "."); + var files = getNames(folder.files); + for (var _i = 0; _i < files.length; _i++) { + var name_1 = files[_i]; + if (!extension || ts.fileExtensionIs(name_1, extension)) { + result.push(ts.combinePaths(path, name_1)); + } + } + var subfolders = getNames(folder.subfolders); + for (var _a = 0; _a < subfolders.length; _a++) { + var current = subfolders[_a]; + visitDirectory(ts.combinePaths(path, current)); + } + } + } + return { + args: args, + newLine: "\r\n", + useCaseSensitiveFileNames: false, + write: function (s) { + WScript.StdOut.Write(s); + }, + readFile: readFile, + writeFile: writeFile, + resolvePath: function (path) { + return fso.GetAbsolutePathName(path); + }, + fileExists: function (path) { + return fso.FileExists(path); + }, + directoryExists: function (path) { + return fso.FolderExists(path); + }, + createDirectory: function (directoryName) { + if (!this.directoryExists(directoryName)) { + fso.CreateFolder(directoryName); + } + }, + getExecutingFilePath: function () { + return WScript.ScriptFullName; + }, + getCurrentDirectory: function () { + return new ActiveXObject("WScript.Shell").CurrentDirectory; + }, + readDirectory: readDirectory, + exit: function (exitCode) { + try { + WScript.Quit(exitCode); + } + catch (e) { + } + } + }; + } + function getNodeSystem() { + var _fs = require("fs"); + var _path = require("path"); + var _os = require('os'); + var platform = _os.platform(); + var useCaseSensitiveFileNames = platform !== "win32" && platform !== "win64" && platform !== "darwin"; + function readFile(fileName, encoding) { + if (!_fs.existsSync(fileName)) { + return undefined; + } + var buffer = _fs.readFileSync(fileName); + var len = buffer.length; + if (len >= 2 && buffer[0] === 0xFE && buffer[1] === 0xFF) { + len &= ~1; + for (var i = 0; i < len; i += 2) { + var temp = buffer[i]; + buffer[i] = buffer[i + 1]; + buffer[i + 1] = temp; + } + return buffer.toString("utf16le", 2); + } + if (len >= 2 && buffer[0] === 0xFF && buffer[1] === 0xFE) { + return buffer.toString("utf16le", 2); + } + if (len >= 3 && buffer[0] === 0xEF && buffer[1] === 0xBB && buffer[2] === 0xBF) { + return buffer.toString("utf8", 3); + } + return buffer.toString("utf8"); + } + function writeFile(fileName, data, writeByteOrderMark) { + if (writeByteOrderMark) { + data = '\uFEFF' + data; + } + _fs.writeFileSync(fileName, data, "utf8"); + } + function readDirectory(path, extension) { + var result = []; + visitDirectory(path); + return result; + function visitDirectory(path) { + var files = _fs.readdirSync(path || ".").sort(); + var directories = []; + for (var _i = 0; _i < files.length; _i++) { + var current = files[_i]; + var name = ts.combinePaths(path, current); + var stat = _fs.lstatSync(name); + if (stat.isFile()) { + if (!extension || ts.fileExtensionIs(name, extension)) { + result.push(name); + } + } + else if (stat.isDirectory()) { + directories.push(name); + } + } + for (var _a = 0; _a < directories.length; _a++) { + var current = directories[_a]; + visitDirectory(current); + } + } + } + return { + args: process.argv.slice(2), + newLine: _os.EOL, + useCaseSensitiveFileNames: useCaseSensitiveFileNames, + write: function (s) { + _fs.writeSync(1, s); + }, + readFile: readFile, + writeFile: writeFile, + watchFile: function (fileName, callback) { + _fs.watchFile(fileName, { persistent: true, interval: 250 }, fileChanged); + return { + close: function () { _fs.unwatchFile(fileName, fileChanged); } + }; + function fileChanged(curr, prev) { + if (+curr.mtime <= +prev.mtime) { + return; + } + callback(fileName); + } + ; + }, + resolvePath: function (path) { + return _path.resolve(path); + }, + fileExists: function (path) { + return _fs.existsSync(path); + }, + directoryExists: function (path) { + return _fs.existsSync(path) && _fs.statSync(path).isDirectory(); + }, + createDirectory: function (directoryName) { + if (!this.directoryExists(directoryName)) { + _fs.mkdirSync(directoryName); + } + }, + getExecutingFilePath: function () { + return __filename; + }, + getCurrentDirectory: function () { + return process.cwd(); + }, + readDirectory: readDirectory, + getMemoryUsage: function () { + if (global.gc) { + global.gc(); + } + return process.memoryUsage().heapUsed; + }, + exit: function (exitCode) { + process.exit(exitCode); + } + }; + } + if (typeof WScript !== "undefined" && typeof ActiveXObject === "function") { + return getWScriptSystem(); + } + else if (typeof module !== "undefined" && module.exports) { + return getNodeSystem(); + } + else { + return undefined; + } + })(); +})(ts || (ts = {})); +/// +var ts; +(function (ts) { + ts.Diagnostics = { + Unterminated_string_literal: { code: 1002, category: ts.DiagnosticCategory.Error, key: "Unterminated string literal." }, + Identifier_expected: { code: 1003, category: ts.DiagnosticCategory.Error, key: "Identifier expected." }, + _0_expected: { code: 1005, category: ts.DiagnosticCategory.Error, key: "'{0}' expected." }, + A_file_cannot_have_a_reference_to_itself: { code: 1006, category: ts.DiagnosticCategory.Error, key: "A file cannot have a reference to itself." }, + Trailing_comma_not_allowed: { code: 1009, category: ts.DiagnosticCategory.Error, key: "Trailing comma not allowed." }, + Asterisk_Slash_expected: { code: 1010, category: ts.DiagnosticCategory.Error, key: "'*/' expected." }, + Unexpected_token: { code: 1012, category: ts.DiagnosticCategory.Error, key: "Unexpected token." }, + A_rest_parameter_must_be_last_in_a_parameter_list: { code: 1014, category: ts.DiagnosticCategory.Error, key: "A rest parameter must be last in a parameter list." }, + Parameter_cannot_have_question_mark_and_initializer: { code: 1015, category: ts.DiagnosticCategory.Error, key: "Parameter cannot have question mark and initializer." }, + A_required_parameter_cannot_follow_an_optional_parameter: { code: 1016, category: ts.DiagnosticCategory.Error, key: "A required parameter cannot follow an optional parameter." }, + An_index_signature_cannot_have_a_rest_parameter: { code: 1017, category: ts.DiagnosticCategory.Error, key: "An index signature cannot have a rest parameter." }, + An_index_signature_parameter_cannot_have_an_accessibility_modifier: { code: 1018, category: ts.DiagnosticCategory.Error, key: "An index signature parameter cannot have an accessibility modifier." }, + An_index_signature_parameter_cannot_have_a_question_mark: { code: 1019, category: ts.DiagnosticCategory.Error, key: "An index signature parameter cannot have a question mark." }, + An_index_signature_parameter_cannot_have_an_initializer: { code: 1020, category: ts.DiagnosticCategory.Error, key: "An index signature parameter cannot have an initializer." }, + An_index_signature_must_have_a_type_annotation: { code: 1021, category: ts.DiagnosticCategory.Error, key: "An index signature must have a type annotation." }, + An_index_signature_parameter_must_have_a_type_annotation: { code: 1022, category: ts.DiagnosticCategory.Error, key: "An index signature parameter must have a type annotation." }, + An_index_signature_parameter_type_must_be_string_or_number: { code: 1023, category: ts.DiagnosticCategory.Error, key: "An index signature parameter type must be 'string' or 'number'." }, + A_class_or_interface_declaration_can_only_have_one_extends_clause: { code: 1024, category: ts.DiagnosticCategory.Error, key: "A class or interface declaration can only have one 'extends' clause." }, + An_extends_clause_must_precede_an_implements_clause: { code: 1025, category: ts.DiagnosticCategory.Error, key: "An 'extends' clause must precede an 'implements' clause." }, + A_class_can_only_extend_a_single_class: { code: 1026, category: ts.DiagnosticCategory.Error, key: "A class can only extend a single class." }, + A_class_declaration_can_only_have_one_implements_clause: { code: 1027, category: ts.DiagnosticCategory.Error, key: "A class declaration can only have one 'implements' clause." }, + Accessibility_modifier_already_seen: { code: 1028, category: ts.DiagnosticCategory.Error, key: "Accessibility modifier already seen." }, + _0_modifier_must_precede_1_modifier: { code: 1029, category: ts.DiagnosticCategory.Error, key: "'{0}' modifier must precede '{1}' modifier." }, + _0_modifier_already_seen: { code: 1030, category: ts.DiagnosticCategory.Error, key: "'{0}' modifier already seen." }, + _0_modifier_cannot_appear_on_a_class_element: { code: 1031, category: ts.DiagnosticCategory.Error, key: "'{0}' modifier cannot appear on a class element." }, + An_interface_declaration_cannot_have_an_implements_clause: { code: 1032, category: ts.DiagnosticCategory.Error, key: "An interface declaration cannot have an 'implements' clause." }, + super_must_be_followed_by_an_argument_list_or_member_access: { code: 1034, category: ts.DiagnosticCategory.Error, key: "'super' must be followed by an argument list or member access." }, + Only_ambient_modules_can_use_quoted_names: { code: 1035, category: ts.DiagnosticCategory.Error, key: "Only ambient modules can use quoted names." }, + Statements_are_not_allowed_in_ambient_contexts: { code: 1036, category: ts.DiagnosticCategory.Error, key: "Statements are not allowed in ambient contexts." }, + A_declare_modifier_cannot_be_used_in_an_already_ambient_context: { code: 1038, category: ts.DiagnosticCategory.Error, key: "A 'declare' modifier cannot be used in an already ambient context." }, + Initializers_are_not_allowed_in_ambient_contexts: { code: 1039, category: ts.DiagnosticCategory.Error, key: "Initializers are not allowed in ambient contexts." }, + _0_modifier_cannot_appear_on_a_module_element: { code: 1044, category: ts.DiagnosticCategory.Error, key: "'{0}' modifier cannot appear on a module element." }, + A_declare_modifier_cannot_be_used_with_an_interface_declaration: { code: 1045, category: ts.DiagnosticCategory.Error, key: "A 'declare' modifier cannot be used with an interface declaration." }, + A_declare_modifier_is_required_for_a_top_level_declaration_in_a_d_ts_file: { code: 1046, category: ts.DiagnosticCategory.Error, key: "A 'declare' modifier is required for a top level declaration in a .d.ts file." }, + A_rest_parameter_cannot_be_optional: { code: 1047, category: ts.DiagnosticCategory.Error, key: "A rest parameter cannot be optional." }, + A_rest_parameter_cannot_have_an_initializer: { code: 1048, category: ts.DiagnosticCategory.Error, key: "A rest parameter cannot have an initializer." }, + A_set_accessor_must_have_exactly_one_parameter: { code: 1049, category: ts.DiagnosticCategory.Error, key: "A 'set' accessor must have exactly one parameter." }, + A_set_accessor_cannot_have_an_optional_parameter: { code: 1051, category: ts.DiagnosticCategory.Error, key: "A 'set' accessor cannot have an optional parameter." }, + A_set_accessor_parameter_cannot_have_an_initializer: { code: 1052, category: ts.DiagnosticCategory.Error, key: "A 'set' accessor parameter cannot have an initializer." }, + A_set_accessor_cannot_have_rest_parameter: { code: 1053, category: ts.DiagnosticCategory.Error, key: "A 'set' accessor cannot have rest parameter." }, + A_get_accessor_cannot_have_parameters: { code: 1054, category: ts.DiagnosticCategory.Error, key: "A 'get' accessor cannot have parameters." }, + Accessors_are_only_available_when_targeting_ECMAScript_5_and_higher: { code: 1056, category: ts.DiagnosticCategory.Error, key: "Accessors are only available when targeting ECMAScript 5 and higher." }, + Enum_member_must_have_initializer: { code: 1061, category: ts.DiagnosticCategory.Error, key: "Enum member must have initializer." }, + An_export_assignment_cannot_be_used_in_an_internal_module: { code: 1063, category: ts.DiagnosticCategory.Error, key: "An export assignment cannot be used in an internal module." }, + Ambient_enum_elements_can_only_have_integer_literal_initializers: { code: 1066, category: ts.DiagnosticCategory.Error, key: "Ambient enum elements can only have integer literal initializers." }, + Unexpected_token_A_constructor_method_accessor_or_property_was_expected: { code: 1068, category: ts.DiagnosticCategory.Error, key: "Unexpected token. A constructor, method, accessor, or property was expected." }, + A_declare_modifier_cannot_be_used_with_an_import_declaration: { code: 1079, category: ts.DiagnosticCategory.Error, key: "A 'declare' modifier cannot be used with an import declaration." }, + Invalid_reference_directive_syntax: { code: 1084, category: ts.DiagnosticCategory.Error, key: "Invalid 'reference' directive syntax." }, + Octal_literals_are_not_available_when_targeting_ECMAScript_5_and_higher: { code: 1085, category: ts.DiagnosticCategory.Error, key: "Octal literals are not available when targeting ECMAScript 5 and higher." }, + An_accessor_cannot_be_declared_in_an_ambient_context: { code: 1086, category: ts.DiagnosticCategory.Error, key: "An accessor cannot be declared in an ambient context." }, + _0_modifier_cannot_appear_on_a_constructor_declaration: { code: 1089, category: ts.DiagnosticCategory.Error, key: "'{0}' modifier cannot appear on a constructor declaration." }, + _0_modifier_cannot_appear_on_a_parameter: { code: 1090, category: ts.DiagnosticCategory.Error, key: "'{0}' modifier cannot appear on a parameter." }, + Only_a_single_variable_declaration_is_allowed_in_a_for_in_statement: { code: 1091, category: ts.DiagnosticCategory.Error, key: "Only a single variable declaration is allowed in a 'for...in' statement." }, + Type_parameters_cannot_appear_on_a_constructor_declaration: { code: 1092, category: ts.DiagnosticCategory.Error, key: "Type parameters cannot appear on a constructor declaration." }, + Type_annotation_cannot_appear_on_a_constructor_declaration: { code: 1093, category: ts.DiagnosticCategory.Error, key: "Type annotation cannot appear on a constructor declaration." }, + An_accessor_cannot_have_type_parameters: { code: 1094, category: ts.DiagnosticCategory.Error, key: "An accessor cannot have type parameters." }, + A_set_accessor_cannot_have_a_return_type_annotation: { code: 1095, category: ts.DiagnosticCategory.Error, key: "A 'set' accessor cannot have a return type annotation." }, + An_index_signature_must_have_exactly_one_parameter: { code: 1096, category: ts.DiagnosticCategory.Error, key: "An index signature must have exactly one parameter." }, + _0_list_cannot_be_empty: { code: 1097, category: ts.DiagnosticCategory.Error, key: "'{0}' list cannot be empty." }, + Type_parameter_list_cannot_be_empty: { code: 1098, category: ts.DiagnosticCategory.Error, key: "Type parameter list cannot be empty." }, + Type_argument_list_cannot_be_empty: { code: 1099, category: ts.DiagnosticCategory.Error, key: "Type argument list cannot be empty." }, + Invalid_use_of_0_in_strict_mode: { code: 1100, category: ts.DiagnosticCategory.Error, key: "Invalid use of '{0}' in strict mode." }, + with_statements_are_not_allowed_in_strict_mode: { code: 1101, category: ts.DiagnosticCategory.Error, key: "'with' statements are not allowed in strict mode." }, + delete_cannot_be_called_on_an_identifier_in_strict_mode: { code: 1102, category: ts.DiagnosticCategory.Error, key: "'delete' cannot be called on an identifier in strict mode." }, + A_continue_statement_can_only_be_used_within_an_enclosing_iteration_statement: { code: 1104, category: ts.DiagnosticCategory.Error, key: "A 'continue' statement can only be used within an enclosing iteration statement." }, + A_break_statement_can_only_be_used_within_an_enclosing_iteration_or_switch_statement: { code: 1105, category: ts.DiagnosticCategory.Error, key: "A 'break' statement can only be used within an enclosing iteration or switch statement." }, + Jump_target_cannot_cross_function_boundary: { code: 1107, category: ts.DiagnosticCategory.Error, key: "Jump target cannot cross function boundary." }, + A_return_statement_can_only_be_used_within_a_function_body: { code: 1108, category: ts.DiagnosticCategory.Error, key: "A 'return' statement can only be used within a function body." }, + Expression_expected: { code: 1109, category: ts.DiagnosticCategory.Error, key: "Expression expected." }, + Type_expected: { code: 1110, category: ts.DiagnosticCategory.Error, key: "Type expected." }, + A_class_member_cannot_be_declared_optional: { code: 1112, category: ts.DiagnosticCategory.Error, key: "A class member cannot be declared optional." }, + A_default_clause_cannot_appear_more_than_once_in_a_switch_statement: { code: 1113, category: ts.DiagnosticCategory.Error, key: "A 'default' clause cannot appear more than once in a 'switch' statement." }, + Duplicate_label_0: { code: 1114, category: ts.DiagnosticCategory.Error, key: "Duplicate label '{0}'" }, + A_continue_statement_can_only_jump_to_a_label_of_an_enclosing_iteration_statement: { code: 1115, category: ts.DiagnosticCategory.Error, key: "A 'continue' statement can only jump to a label of an enclosing iteration statement." }, + A_break_statement_can_only_jump_to_a_label_of_an_enclosing_statement: { code: 1116, category: ts.DiagnosticCategory.Error, key: "A 'break' statement can only jump to a label of an enclosing statement." }, + An_object_literal_cannot_have_multiple_properties_with_the_same_name_in_strict_mode: { code: 1117, category: ts.DiagnosticCategory.Error, key: "An object literal cannot have multiple properties with the same name in strict mode." }, + An_object_literal_cannot_have_multiple_get_Slashset_accessors_with_the_same_name: { code: 1118, category: ts.DiagnosticCategory.Error, key: "An object literal cannot have multiple get/set accessors with the same name." }, + An_object_literal_cannot_have_property_and_accessor_with_the_same_name: { code: 1119, category: ts.DiagnosticCategory.Error, key: "An object literal cannot have property and accessor with the same name." }, + An_export_assignment_cannot_have_modifiers: { code: 1120, category: ts.DiagnosticCategory.Error, key: "An export assignment cannot have modifiers." }, + Octal_literals_are_not_allowed_in_strict_mode: { code: 1121, category: ts.DiagnosticCategory.Error, key: "Octal literals are not allowed in strict mode." }, + A_tuple_type_element_list_cannot_be_empty: { code: 1122, category: ts.DiagnosticCategory.Error, key: "A tuple type element list cannot be empty." }, + Variable_declaration_list_cannot_be_empty: { code: 1123, category: ts.DiagnosticCategory.Error, key: "Variable declaration list cannot be empty." }, + Digit_expected: { code: 1124, category: ts.DiagnosticCategory.Error, key: "Digit expected." }, + Hexadecimal_digit_expected: { code: 1125, category: ts.DiagnosticCategory.Error, key: "Hexadecimal digit expected." }, + Unexpected_end_of_text: { code: 1126, category: ts.DiagnosticCategory.Error, key: "Unexpected end of text." }, + Invalid_character: { code: 1127, category: ts.DiagnosticCategory.Error, key: "Invalid character." }, + Declaration_or_statement_expected: { code: 1128, category: ts.DiagnosticCategory.Error, key: "Declaration or statement expected." }, + Statement_expected: { code: 1129, category: ts.DiagnosticCategory.Error, key: "Statement expected." }, + case_or_default_expected: { code: 1130, category: ts.DiagnosticCategory.Error, key: "'case' or 'default' expected." }, + Property_or_signature_expected: { code: 1131, category: ts.DiagnosticCategory.Error, key: "Property or signature expected." }, + Enum_member_expected: { code: 1132, category: ts.DiagnosticCategory.Error, key: "Enum member expected." }, + Type_reference_expected: { code: 1133, category: ts.DiagnosticCategory.Error, key: "Type reference expected." }, + Variable_declaration_expected: { code: 1134, category: ts.DiagnosticCategory.Error, key: "Variable declaration expected." }, + Argument_expression_expected: { code: 1135, category: ts.DiagnosticCategory.Error, key: "Argument expression expected." }, + Property_assignment_expected: { code: 1136, category: ts.DiagnosticCategory.Error, key: "Property assignment expected." }, + Expression_or_comma_expected: { code: 1137, category: ts.DiagnosticCategory.Error, key: "Expression or comma expected." }, + Parameter_declaration_expected: { code: 1138, category: ts.DiagnosticCategory.Error, key: "Parameter declaration expected." }, + Type_parameter_declaration_expected: { code: 1139, category: ts.DiagnosticCategory.Error, key: "Type parameter declaration expected." }, + Type_argument_expected: { code: 1140, category: ts.DiagnosticCategory.Error, key: "Type argument expected." }, + String_literal_expected: { code: 1141, category: ts.DiagnosticCategory.Error, key: "String literal expected." }, + Line_break_not_permitted_here: { code: 1142, category: ts.DiagnosticCategory.Error, key: "Line break not permitted here." }, + or_expected: { code: 1144, category: ts.DiagnosticCategory.Error, key: "'{' or ';' expected." }, + Modifiers_not_permitted_on_index_signature_members: { code: 1145, category: ts.DiagnosticCategory.Error, key: "Modifiers not permitted on index signature members." }, + Declaration_expected: { code: 1146, category: ts.DiagnosticCategory.Error, key: "Declaration expected." }, + Import_declarations_in_an_internal_module_cannot_reference_an_external_module: { code: 1147, category: ts.DiagnosticCategory.Error, key: "Import declarations in an internal module cannot reference an external module." }, + Cannot_compile_external_modules_unless_the_module_flag_is_provided: { code: 1148, category: ts.DiagnosticCategory.Error, key: "Cannot compile external modules unless the '--module' flag is provided." }, + File_name_0_differs_from_already_included_file_name_1_only_in_casing: { code: 1149, category: ts.DiagnosticCategory.Error, key: "File name '{0}' differs from already included file name '{1}' only in casing" }, + new_T_cannot_be_used_to_create_an_array_Use_new_Array_T_instead: { code: 1150, category: ts.DiagnosticCategory.Error, key: "'new T[]' cannot be used to create an array. Use 'new Array()' instead." }, + var_let_or_const_expected: { code: 1152, category: ts.DiagnosticCategory.Error, key: "'var', 'let' or 'const' expected." }, + let_declarations_are_only_available_when_targeting_ECMAScript_6_and_higher: { code: 1153, category: ts.DiagnosticCategory.Error, key: "'let' declarations are only available when targeting ECMAScript 6 and higher." }, + const_declarations_are_only_available_when_targeting_ECMAScript_6_and_higher: { code: 1154, category: ts.DiagnosticCategory.Error, key: "'const' declarations are only available when targeting ECMAScript 6 and higher." }, + const_declarations_must_be_initialized: { code: 1155, category: ts.DiagnosticCategory.Error, key: "'const' declarations must be initialized" }, + const_declarations_can_only_be_declared_inside_a_block: { code: 1156, category: ts.DiagnosticCategory.Error, key: "'const' declarations can only be declared inside a block." }, + let_declarations_can_only_be_declared_inside_a_block: { code: 1157, category: ts.DiagnosticCategory.Error, key: "'let' declarations can only be declared inside a block." }, + Unterminated_template_literal: { code: 1160, category: ts.DiagnosticCategory.Error, key: "Unterminated template literal." }, + Unterminated_regular_expression_literal: { code: 1161, category: ts.DiagnosticCategory.Error, key: "Unterminated regular expression literal." }, + An_object_member_cannot_be_declared_optional: { code: 1162, category: ts.DiagnosticCategory.Error, key: "An object member cannot be declared optional." }, + yield_expression_must_be_contained_within_a_generator_declaration: { code: 1163, category: ts.DiagnosticCategory.Error, key: "'yield' expression must be contained_within a generator declaration." }, + Computed_property_names_are_not_allowed_in_enums: { code: 1164, category: ts.DiagnosticCategory.Error, key: "Computed property names are not allowed in enums." }, + A_computed_property_name_in_an_ambient_context_must_directly_refer_to_a_built_in_symbol: { code: 1165, category: ts.DiagnosticCategory.Error, key: "A computed property name in an ambient context must directly refer to a built-in symbol." }, + A_computed_property_name_in_a_class_property_declaration_must_directly_refer_to_a_built_in_symbol: { code: 1166, category: ts.DiagnosticCategory.Error, key: "A computed property name in a class property declaration must directly refer to a built-in symbol." }, + Computed_property_names_are_only_available_when_targeting_ECMAScript_6_and_higher: { code: 1167, category: ts.DiagnosticCategory.Error, key: "Computed property names are only available when targeting ECMAScript 6 and higher." }, + A_computed_property_name_in_a_method_overload_must_directly_refer_to_a_built_in_symbol: { code: 1168, category: ts.DiagnosticCategory.Error, key: "A computed property name in a method overload must directly refer to a built-in symbol." }, + A_computed_property_name_in_an_interface_must_directly_refer_to_a_built_in_symbol: { code: 1169, category: ts.DiagnosticCategory.Error, key: "A computed property name in an interface must directly refer to a built-in symbol." }, + A_computed_property_name_in_a_type_literal_must_directly_refer_to_a_built_in_symbol: { code: 1170, category: ts.DiagnosticCategory.Error, key: "A computed property name in a type literal must directly refer to a built-in symbol." }, + A_comma_expression_is_not_allowed_in_a_computed_property_name: { code: 1171, category: ts.DiagnosticCategory.Error, key: "A comma expression is not allowed in a computed property name." }, + extends_clause_already_seen: { code: 1172, category: ts.DiagnosticCategory.Error, key: "'extends' clause already seen." }, + extends_clause_must_precede_implements_clause: { code: 1173, category: ts.DiagnosticCategory.Error, key: "'extends' clause must precede 'implements' clause." }, + Classes_can_only_extend_a_single_class: { code: 1174, category: ts.DiagnosticCategory.Error, key: "Classes can only extend a single class." }, + implements_clause_already_seen: { code: 1175, category: ts.DiagnosticCategory.Error, key: "'implements' clause already seen." }, + Interface_declaration_cannot_have_implements_clause: { code: 1176, category: ts.DiagnosticCategory.Error, key: "Interface declaration cannot have 'implements' clause." }, + Binary_digit_expected: { code: 1177, category: ts.DiagnosticCategory.Error, key: "Binary digit expected." }, + Octal_digit_expected: { code: 1178, category: ts.DiagnosticCategory.Error, key: "Octal digit expected." }, + Unexpected_token_expected: { code: 1179, category: ts.DiagnosticCategory.Error, key: "Unexpected token. '{' expected." }, + Property_destructuring_pattern_expected: { code: 1180, category: ts.DiagnosticCategory.Error, key: "Property destructuring pattern expected." }, + Array_element_destructuring_pattern_expected: { code: 1181, category: ts.DiagnosticCategory.Error, key: "Array element destructuring pattern expected." }, + A_destructuring_declaration_must_have_an_initializer: { code: 1182, category: ts.DiagnosticCategory.Error, key: "A destructuring declaration must have an initializer." }, + Destructuring_declarations_are_not_allowed_in_ambient_contexts: { code: 1183, category: ts.DiagnosticCategory.Error, key: "Destructuring declarations are not allowed in ambient contexts." }, + An_implementation_cannot_be_declared_in_ambient_contexts: { code: 1184, category: ts.DiagnosticCategory.Error, key: "An implementation cannot be declared in ambient contexts." }, + Modifiers_cannot_appear_here: { code: 1184, category: ts.DiagnosticCategory.Error, key: "Modifiers cannot appear here." }, + Merge_conflict_marker_encountered: { code: 1185, category: ts.DiagnosticCategory.Error, key: "Merge conflict marker encountered." }, + A_rest_element_cannot_have_an_initializer: { code: 1186, category: ts.DiagnosticCategory.Error, key: "A rest element cannot have an initializer." }, + A_parameter_property_may_not_be_a_binding_pattern: { code: 1187, category: ts.DiagnosticCategory.Error, key: "A parameter property may not be a binding pattern." }, + Only_a_single_variable_declaration_is_allowed_in_a_for_of_statement: { code: 1188, category: ts.DiagnosticCategory.Error, key: "Only a single variable declaration is allowed in a 'for...of' statement." }, + The_variable_declaration_of_a_for_in_statement_cannot_have_an_initializer: { code: 1189, category: ts.DiagnosticCategory.Error, key: "The variable declaration of a 'for...in' statement cannot have an initializer." }, + The_variable_declaration_of_a_for_of_statement_cannot_have_an_initializer: { code: 1190, category: ts.DiagnosticCategory.Error, key: "The variable declaration of a 'for...of' statement cannot have an initializer." }, + An_import_declaration_cannot_have_modifiers: { code: 1191, category: ts.DiagnosticCategory.Error, key: "An import declaration cannot have modifiers." }, + External_module_0_has_no_default_export: { code: 1192, category: ts.DiagnosticCategory.Error, key: "External module '{0}' has no default export." }, + An_export_declaration_cannot_have_modifiers: { code: 1193, category: ts.DiagnosticCategory.Error, key: "An export declaration cannot have modifiers." }, + Export_declarations_are_not_permitted_in_an_internal_module: { code: 1194, category: ts.DiagnosticCategory.Error, key: "Export declarations are not permitted in an internal module." }, + Catch_clause_variable_name_must_be_an_identifier: { code: 1195, category: ts.DiagnosticCategory.Error, key: "Catch clause variable name must be an identifier." }, + Catch_clause_variable_cannot_have_a_type_annotation: { code: 1196, category: ts.DiagnosticCategory.Error, key: "Catch clause variable cannot have a type annotation." }, + Catch_clause_variable_cannot_have_an_initializer: { code: 1197, category: ts.DiagnosticCategory.Error, key: "Catch clause variable cannot have an initializer." }, + An_extended_Unicode_escape_value_must_be_between_0x0_and_0x10FFFF_inclusive: { code: 1198, category: ts.DiagnosticCategory.Error, key: "An extended Unicode escape value must be between 0x0 and 0x10FFFF inclusive." }, + Unterminated_Unicode_escape_sequence: { code: 1199, category: ts.DiagnosticCategory.Error, key: "Unterminated Unicode escape sequence." }, + Line_terminator_not_permitted_before_arrow: { code: 1200, category: ts.DiagnosticCategory.Error, key: "Line terminator not permitted before arrow." }, + A_type_annotation_on_an_export_statement_is_only_allowed_in_an_ambient_external_module_declaration: { code: 1201, category: ts.DiagnosticCategory.Error, key: "A type annotation on an export statement is only allowed in an ambient external module declaration." }, + Import_assignment_cannot_be_used_when_targeting_ECMAScript_6_or_higher_Consider_using_import_Asterisk_as_ns_from_mod_import_a_from_mod_or_import_d_from_mod_instead: { code: 1202, category: ts.DiagnosticCategory.Error, key: "Import assignment cannot be used when targeting ECMAScript 6 or higher. Consider using 'import * as ns from \"mod\"', 'import {a} from \"mod\"' or 'import d from \"mod\"' instead." }, + Export_assignment_cannot_be_used_when_targeting_ECMAScript_6_or_higher_Consider_using_export_default_instead: { code: 1203, category: ts.DiagnosticCategory.Error, key: "Export assignment cannot be used when targeting ECMAScript 6 or higher. Consider using 'export default' instead." }, + Cannot_compile_external_modules_into_amd_or_commonjs_when_targeting_es6_or_higher: { code: 1204, category: ts.DiagnosticCategory.Error, key: "Cannot compile external modules into amd or commonjs when targeting es6 or higher." }, + Decorators_are_only_available_when_targeting_ECMAScript_5_and_higher: { code: 1205, category: ts.DiagnosticCategory.Error, key: "Decorators are only available when targeting ECMAScript 5 and higher." }, + Decorators_are_not_valid_here: { code: 1206, category: ts.DiagnosticCategory.Error, key: "Decorators are not valid here." }, + Decorators_cannot_be_applied_to_multiple_get_Slashset_accessors_of_the_same_name: { code: 1207, category: ts.DiagnosticCategory.Error, key: "Decorators cannot be applied to multiple get/set accessors of the same name." }, + Cannot_compile_non_external_modules_when_the_separateCompilation_flag_is_provided: { code: 1208, category: ts.DiagnosticCategory.Error, key: "Cannot compile non-external modules when the '--separateCompilation' flag is provided." }, + Ambient_const_enums_are_not_allowed_when_the_separateCompilation_flag_is_provided: { code: 1209, category: ts.DiagnosticCategory.Error, key: "Ambient const enums are not allowed when the '--separateCompilation' flag is provided." }, + Duplicate_identifier_0: { code: 2300, category: ts.DiagnosticCategory.Error, key: "Duplicate identifier '{0}'." }, + Initializer_of_instance_member_variable_0_cannot_reference_identifier_1_declared_in_the_constructor: { code: 2301, category: ts.DiagnosticCategory.Error, key: "Initializer of instance member variable '{0}' cannot reference identifier '{1}' declared in the constructor." }, + Static_members_cannot_reference_class_type_parameters: { code: 2302, category: ts.DiagnosticCategory.Error, key: "Static members cannot reference class type parameters." }, + Circular_definition_of_import_alias_0: { code: 2303, category: ts.DiagnosticCategory.Error, key: "Circular definition of import alias '{0}'." }, + Cannot_find_name_0: { code: 2304, category: ts.DiagnosticCategory.Error, key: "Cannot find name '{0}'." }, + Module_0_has_no_exported_member_1: { code: 2305, category: ts.DiagnosticCategory.Error, key: "Module '{0}' has no exported member '{1}'." }, + File_0_is_not_an_external_module: { code: 2306, category: ts.DiagnosticCategory.Error, key: "File '{0}' is not an external module." }, + Cannot_find_external_module_0: { code: 2307, category: ts.DiagnosticCategory.Error, key: "Cannot find external module '{0}'." }, + A_module_cannot_have_more_than_one_export_assignment: { code: 2308, category: ts.DiagnosticCategory.Error, key: "A module cannot have more than one export assignment." }, + An_export_assignment_cannot_be_used_in_a_module_with_other_exported_elements: { code: 2309, category: ts.DiagnosticCategory.Error, key: "An export assignment cannot be used in a module with other exported elements." }, + Type_0_recursively_references_itself_as_a_base_type: { code: 2310, category: ts.DiagnosticCategory.Error, key: "Type '{0}' recursively references itself as a base type." }, + A_class_may_only_extend_another_class: { code: 2311, category: ts.DiagnosticCategory.Error, key: "A class may only extend another class." }, + An_interface_may_only_extend_a_class_or_another_interface: { code: 2312, category: ts.DiagnosticCategory.Error, key: "An interface may only extend a class or another interface." }, + Constraint_of_a_type_parameter_cannot_reference_any_type_parameter_from_the_same_type_parameter_list: { code: 2313, category: ts.DiagnosticCategory.Error, key: "Constraint of a type parameter cannot reference any type parameter from the same type parameter list." }, + Generic_type_0_requires_1_type_argument_s: { code: 2314, category: ts.DiagnosticCategory.Error, key: "Generic type '{0}' requires {1} type argument(s)." }, + Type_0_is_not_generic: { code: 2315, category: ts.DiagnosticCategory.Error, key: "Type '{0}' is not generic." }, + Global_type_0_must_be_a_class_or_interface_type: { code: 2316, category: ts.DiagnosticCategory.Error, key: "Global type '{0}' must be a class or interface type." }, + Global_type_0_must_have_1_type_parameter_s: { code: 2317, category: ts.DiagnosticCategory.Error, key: "Global type '{0}' must have {1} type parameter(s)." }, + Cannot_find_global_type_0: { code: 2318, category: ts.DiagnosticCategory.Error, key: "Cannot find global type '{0}'." }, + Named_property_0_of_types_1_and_2_are_not_identical: { code: 2319, category: ts.DiagnosticCategory.Error, key: "Named property '{0}' of types '{1}' and '{2}' are not identical." }, + Interface_0_cannot_simultaneously_extend_types_1_and_2: { code: 2320, category: ts.DiagnosticCategory.Error, key: "Interface '{0}' cannot simultaneously extend types '{1}' and '{2}'." }, + Excessive_stack_depth_comparing_types_0_and_1: { code: 2321, category: ts.DiagnosticCategory.Error, key: "Excessive stack depth comparing types '{0}' and '{1}'." }, + Type_0_is_not_assignable_to_type_1: { code: 2322, category: ts.DiagnosticCategory.Error, key: "Type '{0}' is not assignable to type '{1}'." }, + Property_0_is_missing_in_type_1: { code: 2324, category: ts.DiagnosticCategory.Error, key: "Property '{0}' is missing in type '{1}'." }, + Property_0_is_private_in_type_1_but_not_in_type_2: { code: 2325, category: ts.DiagnosticCategory.Error, key: "Property '{0}' is private in type '{1}' but not in type '{2}'." }, + Types_of_property_0_are_incompatible: { code: 2326, category: ts.DiagnosticCategory.Error, key: "Types of property '{0}' are incompatible." }, + Property_0_is_optional_in_type_1_but_required_in_type_2: { code: 2327, category: ts.DiagnosticCategory.Error, key: "Property '{0}' is optional in type '{1}' but required in type '{2}'." }, + Types_of_parameters_0_and_1_are_incompatible: { code: 2328, category: ts.DiagnosticCategory.Error, key: "Types of parameters '{0}' and '{1}' are incompatible." }, + Index_signature_is_missing_in_type_0: { code: 2329, category: ts.DiagnosticCategory.Error, key: "Index signature is missing in type '{0}'." }, + Index_signatures_are_incompatible: { code: 2330, category: ts.DiagnosticCategory.Error, key: "Index signatures are incompatible." }, + this_cannot_be_referenced_in_a_module_body: { code: 2331, category: ts.DiagnosticCategory.Error, key: "'this' cannot be referenced in a module body." }, + this_cannot_be_referenced_in_current_location: { code: 2332, category: ts.DiagnosticCategory.Error, key: "'this' cannot be referenced in current location." }, + this_cannot_be_referenced_in_constructor_arguments: { code: 2333, category: ts.DiagnosticCategory.Error, key: "'this' cannot be referenced in constructor arguments." }, + this_cannot_be_referenced_in_a_static_property_initializer: { code: 2334, category: ts.DiagnosticCategory.Error, key: "'this' cannot be referenced in a static property initializer." }, + super_can_only_be_referenced_in_a_derived_class: { code: 2335, category: ts.DiagnosticCategory.Error, key: "'super' can only be referenced in a derived class." }, + super_cannot_be_referenced_in_constructor_arguments: { code: 2336, category: ts.DiagnosticCategory.Error, key: "'super' cannot be referenced in constructor arguments." }, + Super_calls_are_not_permitted_outside_constructors_or_in_nested_functions_inside_constructors: { code: 2337, category: ts.DiagnosticCategory.Error, key: "Super calls are not permitted outside constructors or in nested functions inside constructors" }, + super_property_access_is_permitted_only_in_a_constructor_member_function_or_member_accessor_of_a_derived_class: { code: 2338, category: ts.DiagnosticCategory.Error, key: "'super' property access is permitted only in a constructor, member function, or member accessor of a derived class" }, + Property_0_does_not_exist_on_type_1: { code: 2339, category: ts.DiagnosticCategory.Error, key: "Property '{0}' does not exist on type '{1}'." }, + Only_public_and_protected_methods_of_the_base_class_are_accessible_via_the_super_keyword: { code: 2340, category: ts.DiagnosticCategory.Error, key: "Only public and protected methods of the base class are accessible via the 'super' keyword" }, + Property_0_is_private_and_only_accessible_within_class_1: { code: 2341, category: ts.DiagnosticCategory.Error, key: "Property '{0}' is private and only accessible within class '{1}'." }, + An_index_expression_argument_must_be_of_type_string_number_symbol_or_any: { code: 2342, category: ts.DiagnosticCategory.Error, key: "An index expression argument must be of type 'string', 'number', 'symbol, or 'any'." }, + Type_0_does_not_satisfy_the_constraint_1: { code: 2344, category: ts.DiagnosticCategory.Error, key: "Type '{0}' does not satisfy the constraint '{1}'." }, + Argument_of_type_0_is_not_assignable_to_parameter_of_type_1: { code: 2345, category: ts.DiagnosticCategory.Error, key: "Argument of type '{0}' is not assignable to parameter of type '{1}'." }, + Supplied_parameters_do_not_match_any_signature_of_call_target: { code: 2346, category: ts.DiagnosticCategory.Error, key: "Supplied parameters do not match any signature of call target." }, + Untyped_function_calls_may_not_accept_type_arguments: { code: 2347, category: ts.DiagnosticCategory.Error, key: "Untyped function calls may not accept type arguments." }, + Value_of_type_0_is_not_callable_Did_you_mean_to_include_new: { code: 2348, category: ts.DiagnosticCategory.Error, key: "Value of type '{0}' is not callable. Did you mean to include 'new'?" }, + Cannot_invoke_an_expression_whose_type_lacks_a_call_signature: { code: 2349, category: ts.DiagnosticCategory.Error, key: "Cannot invoke an expression whose type lacks a call signature." }, + Only_a_void_function_can_be_called_with_the_new_keyword: { code: 2350, category: ts.DiagnosticCategory.Error, key: "Only a void function can be called with the 'new' keyword." }, + Cannot_use_new_with_an_expression_whose_type_lacks_a_call_or_construct_signature: { code: 2351, category: ts.DiagnosticCategory.Error, key: "Cannot use 'new' with an expression whose type lacks a call or construct signature." }, + Neither_type_0_nor_type_1_is_assignable_to_the_other: { code: 2352, category: ts.DiagnosticCategory.Error, key: "Neither type '{0}' nor type '{1}' is assignable to the other." }, + No_best_common_type_exists_among_return_expressions: { code: 2354, category: ts.DiagnosticCategory.Error, key: "No best common type exists among return expressions." }, + A_function_whose_declared_type_is_neither_void_nor_any_must_return_a_value_or_consist_of_a_single_throw_statement: { code: 2355, category: ts.DiagnosticCategory.Error, key: "A function whose declared type is neither 'void' nor 'any' must return a value or consist of a single 'throw' statement." }, + An_arithmetic_operand_must_be_of_type_any_number_or_an_enum_type: { code: 2356, category: ts.DiagnosticCategory.Error, key: "An arithmetic operand must be of type 'any', 'number' or an enum type." }, + The_operand_of_an_increment_or_decrement_operator_must_be_a_variable_property_or_indexer: { code: 2357, category: ts.DiagnosticCategory.Error, key: "The operand of an increment or decrement operator must be a variable, property or indexer." }, + The_left_hand_side_of_an_instanceof_expression_must_be_of_type_any_an_object_type_or_a_type_parameter: { code: 2358, category: ts.DiagnosticCategory.Error, key: "The left-hand side of an 'instanceof' expression must be of type 'any', an object type or a type parameter." }, + The_right_hand_side_of_an_instanceof_expression_must_be_of_type_any_or_of_a_type_assignable_to_the_Function_interface_type: { code: 2359, category: ts.DiagnosticCategory.Error, key: "The right-hand side of an 'instanceof' expression must be of type 'any' or of a type assignable to the 'Function' interface type." }, + The_left_hand_side_of_an_in_expression_must_be_of_type_any_string_number_or_symbol: { code: 2360, category: ts.DiagnosticCategory.Error, key: "The left-hand side of an 'in' expression must be of type 'any', 'string', 'number', or 'symbol'." }, + The_right_hand_side_of_an_in_expression_must_be_of_type_any_an_object_type_or_a_type_parameter: { code: 2361, category: ts.DiagnosticCategory.Error, key: "The right-hand side of an 'in' expression must be of type 'any', an object type or a type parameter" }, + The_left_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_or_an_enum_type: { code: 2362, category: ts.DiagnosticCategory.Error, key: "The left-hand side of an arithmetic operation must be of type 'any', 'number' or an enum type." }, + The_right_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_or_an_enum_type: { code: 2363, category: ts.DiagnosticCategory.Error, key: "The right-hand side of an arithmetic operation must be of type 'any', 'number' or an enum type." }, + Invalid_left_hand_side_of_assignment_expression: { code: 2364, category: ts.DiagnosticCategory.Error, key: "Invalid left-hand side of assignment expression." }, + Operator_0_cannot_be_applied_to_types_1_and_2: { code: 2365, category: ts.DiagnosticCategory.Error, key: "Operator '{0}' cannot be applied to types '{1}' and '{2}'." }, + Type_parameter_name_cannot_be_0: { code: 2368, category: ts.DiagnosticCategory.Error, key: "Type parameter name cannot be '{0}'" }, + A_parameter_property_is_only_allowed_in_a_constructor_implementation: { code: 2369, category: ts.DiagnosticCategory.Error, key: "A parameter property is only allowed in a constructor implementation." }, + A_rest_parameter_must_be_of_an_array_type: { code: 2370, category: ts.DiagnosticCategory.Error, key: "A rest parameter must be of an array type." }, + A_parameter_initializer_is_only_allowed_in_a_function_or_constructor_implementation: { code: 2371, category: ts.DiagnosticCategory.Error, key: "A parameter initializer is only allowed in a function or constructor implementation." }, + Parameter_0_cannot_be_referenced_in_its_initializer: { code: 2372, category: ts.DiagnosticCategory.Error, key: "Parameter '{0}' cannot be referenced in its initializer." }, + Initializer_of_parameter_0_cannot_reference_identifier_1_declared_after_it: { code: 2373, category: ts.DiagnosticCategory.Error, key: "Initializer of parameter '{0}' cannot reference identifier '{1}' declared after it." }, + Duplicate_string_index_signature: { code: 2374, category: ts.DiagnosticCategory.Error, key: "Duplicate string index signature." }, + Duplicate_number_index_signature: { code: 2375, category: ts.DiagnosticCategory.Error, key: "Duplicate number index signature." }, + A_super_call_must_be_the_first_statement_in_the_constructor_when_a_class_contains_initialized_properties_or_has_parameter_properties: { code: 2376, category: ts.DiagnosticCategory.Error, key: "A 'super' call must be the first statement in the constructor when a class contains initialized properties or has parameter properties." }, + Constructors_for_derived_classes_must_contain_a_super_call: { code: 2377, category: ts.DiagnosticCategory.Error, key: "Constructors for derived classes must contain a 'super' call." }, + A_get_accessor_must_return_a_value_or_consist_of_a_single_throw_statement: { code: 2378, category: ts.DiagnosticCategory.Error, key: "A 'get' accessor must return a value or consist of a single 'throw' statement." }, + Getter_and_setter_accessors_do_not_agree_in_visibility: { code: 2379, category: ts.DiagnosticCategory.Error, key: "Getter and setter accessors do not agree in visibility." }, + get_and_set_accessor_must_have_the_same_type: { code: 2380, category: ts.DiagnosticCategory.Error, key: "'get' and 'set' accessor must have the same type." }, + A_signature_with_an_implementation_cannot_use_a_string_literal_type: { code: 2381, category: ts.DiagnosticCategory.Error, key: "A signature with an implementation cannot use a string literal type." }, + Specialized_overload_signature_is_not_assignable_to_any_non_specialized_signature: { code: 2382, category: ts.DiagnosticCategory.Error, key: "Specialized overload signature is not assignable to any non-specialized signature." }, + Overload_signatures_must_all_be_exported_or_not_exported: { code: 2383, category: ts.DiagnosticCategory.Error, key: "Overload signatures must all be exported or not exported." }, + Overload_signatures_must_all_be_ambient_or_non_ambient: { code: 2384, category: ts.DiagnosticCategory.Error, key: "Overload signatures must all be ambient or non-ambient." }, + Overload_signatures_must_all_be_public_private_or_protected: { code: 2385, category: ts.DiagnosticCategory.Error, key: "Overload signatures must all be public, private or protected." }, + Overload_signatures_must_all_be_optional_or_required: { code: 2386, category: ts.DiagnosticCategory.Error, key: "Overload signatures must all be optional or required." }, + Function_overload_must_be_static: { code: 2387, category: ts.DiagnosticCategory.Error, key: "Function overload must be static." }, + Function_overload_must_not_be_static: { code: 2388, category: ts.DiagnosticCategory.Error, key: "Function overload must not be static." }, + Function_implementation_name_must_be_0: { code: 2389, category: ts.DiagnosticCategory.Error, key: "Function implementation name must be '{0}'." }, + Constructor_implementation_is_missing: { code: 2390, category: ts.DiagnosticCategory.Error, key: "Constructor implementation is missing." }, + Function_implementation_is_missing_or_not_immediately_following_the_declaration: { code: 2391, category: ts.DiagnosticCategory.Error, key: "Function implementation is missing or not immediately following the declaration." }, + Multiple_constructor_implementations_are_not_allowed: { code: 2392, category: ts.DiagnosticCategory.Error, key: "Multiple constructor implementations are not allowed." }, + Duplicate_function_implementation: { code: 2393, category: ts.DiagnosticCategory.Error, key: "Duplicate function implementation." }, + Overload_signature_is_not_compatible_with_function_implementation: { code: 2394, category: ts.DiagnosticCategory.Error, key: "Overload signature is not compatible with function implementation." }, + Individual_declarations_in_merged_declaration_0_must_be_all_exported_or_all_local: { code: 2395, category: ts.DiagnosticCategory.Error, key: "Individual declarations in merged declaration {0} must be all exported or all local." }, + Duplicate_identifier_arguments_Compiler_uses_arguments_to_initialize_rest_parameters: { code: 2396, category: ts.DiagnosticCategory.Error, key: "Duplicate identifier 'arguments'. Compiler uses 'arguments' to initialize rest parameters." }, + Duplicate_identifier_this_Compiler_uses_variable_declaration_this_to_capture_this_reference: { code: 2399, category: ts.DiagnosticCategory.Error, key: "Duplicate identifier '_this'. Compiler uses variable declaration '_this' to capture 'this' reference." }, + Expression_resolves_to_variable_declaration_this_that_compiler_uses_to_capture_this_reference: { code: 2400, category: ts.DiagnosticCategory.Error, key: "Expression resolves to variable declaration '_this' that compiler uses to capture 'this' reference." }, + Duplicate_identifier_super_Compiler_uses_super_to_capture_base_class_reference: { code: 2401, category: ts.DiagnosticCategory.Error, key: "Duplicate identifier '_super'. Compiler uses '_super' to capture base class reference." }, + Expression_resolves_to_super_that_compiler_uses_to_capture_base_class_reference: { code: 2402, category: ts.DiagnosticCategory.Error, key: "Expression resolves to '_super' that compiler uses to capture base class reference." }, + Subsequent_variable_declarations_must_have_the_same_type_Variable_0_must_be_of_type_1_but_here_has_type_2: { code: 2403, category: ts.DiagnosticCategory.Error, key: "Subsequent variable declarations must have the same type. Variable '{0}' must be of type '{1}', but here has type '{2}'." }, + The_left_hand_side_of_a_for_in_statement_cannot_use_a_type_annotation: { code: 2404, category: ts.DiagnosticCategory.Error, key: "The left-hand side of a 'for...in' statement cannot use a type annotation." }, + The_left_hand_side_of_a_for_in_statement_must_be_of_type_string_or_any: { code: 2405, category: ts.DiagnosticCategory.Error, key: "The left-hand side of a 'for...in' statement must be of type 'string' or 'any'." }, + Invalid_left_hand_side_in_for_in_statement: { code: 2406, category: ts.DiagnosticCategory.Error, key: "Invalid left-hand side in 'for...in' statement." }, + The_right_hand_side_of_a_for_in_statement_must_be_of_type_any_an_object_type_or_a_type_parameter: { code: 2407, category: ts.DiagnosticCategory.Error, key: "The right-hand side of a 'for...in' statement must be of type 'any', an object type or a type parameter." }, + Setters_cannot_return_a_value: { code: 2408, category: ts.DiagnosticCategory.Error, key: "Setters cannot return a value." }, + Return_type_of_constructor_signature_must_be_assignable_to_the_instance_type_of_the_class: { code: 2409, category: ts.DiagnosticCategory.Error, key: "Return type of constructor signature must be assignable to the instance type of the class" }, + All_symbols_within_a_with_block_will_be_resolved_to_any: { code: 2410, category: ts.DiagnosticCategory.Error, key: "All symbols within a 'with' block will be resolved to 'any'." }, + Property_0_of_type_1_is_not_assignable_to_string_index_type_2: { code: 2411, category: ts.DiagnosticCategory.Error, key: "Property '{0}' of type '{1}' is not assignable to string index type '{2}'." }, + Property_0_of_type_1_is_not_assignable_to_numeric_index_type_2: { code: 2412, category: ts.DiagnosticCategory.Error, key: "Property '{0}' of type '{1}' is not assignable to numeric index type '{2}'." }, + Numeric_index_type_0_is_not_assignable_to_string_index_type_1: { code: 2413, category: ts.DiagnosticCategory.Error, key: "Numeric index type '{0}' is not assignable to string index type '{1}'." }, + Class_name_cannot_be_0: { code: 2414, category: ts.DiagnosticCategory.Error, key: "Class name cannot be '{0}'" }, + Class_0_incorrectly_extends_base_class_1: { code: 2415, category: ts.DiagnosticCategory.Error, key: "Class '{0}' incorrectly extends base class '{1}'." }, + Class_static_side_0_incorrectly_extends_base_class_static_side_1: { code: 2417, category: ts.DiagnosticCategory.Error, key: "Class static side '{0}' incorrectly extends base class static side '{1}'." }, + Type_name_0_in_extends_clause_does_not_reference_constructor_function_for_0: { code: 2419, category: ts.DiagnosticCategory.Error, key: "Type name '{0}' in extends clause does not reference constructor function for '{0}'." }, + Class_0_incorrectly_implements_interface_1: { code: 2420, category: ts.DiagnosticCategory.Error, key: "Class '{0}' incorrectly implements interface '{1}'." }, + A_class_may_only_implement_another_class_or_interface: { code: 2422, category: ts.DiagnosticCategory.Error, key: "A class may only implement another class or interface." }, + Class_0_defines_instance_member_function_1_but_extended_class_2_defines_it_as_instance_member_accessor: { code: 2423, category: ts.DiagnosticCategory.Error, key: "Class '{0}' defines instance member function '{1}', but extended class '{2}' defines it as instance member accessor." }, + Class_0_defines_instance_member_function_1_but_extended_class_2_defines_it_as_instance_member_property: { code: 2424, category: ts.DiagnosticCategory.Error, key: "Class '{0}' defines instance member function '{1}', but extended class '{2}' defines it as instance member property." }, + Class_0_defines_instance_member_property_1_but_extended_class_2_defines_it_as_instance_member_function: { code: 2425, category: ts.DiagnosticCategory.Error, key: "Class '{0}' defines instance member property '{1}', but extended class '{2}' defines it as instance member function." }, + Class_0_defines_instance_member_accessor_1_but_extended_class_2_defines_it_as_instance_member_function: { code: 2426, category: ts.DiagnosticCategory.Error, key: "Class '{0}' defines instance member accessor '{1}', but extended class '{2}' defines it as instance member function." }, + Interface_name_cannot_be_0: { code: 2427, category: ts.DiagnosticCategory.Error, key: "Interface name cannot be '{0}'" }, + All_declarations_of_an_interface_must_have_identical_type_parameters: { code: 2428, category: ts.DiagnosticCategory.Error, key: "All declarations of an interface must have identical type parameters." }, + Interface_0_incorrectly_extends_interface_1: { code: 2430, category: ts.DiagnosticCategory.Error, key: "Interface '{0}' incorrectly extends interface '{1}'." }, + Enum_name_cannot_be_0: { code: 2431, category: ts.DiagnosticCategory.Error, key: "Enum name cannot be '{0}'" }, + In_an_enum_with_multiple_declarations_only_one_declaration_can_omit_an_initializer_for_its_first_enum_element: { code: 2432, category: ts.DiagnosticCategory.Error, key: "In an enum with multiple declarations, only one declaration can omit an initializer for its first enum element." }, + A_module_declaration_cannot_be_in_a_different_file_from_a_class_or_function_with_which_it_is_merged: { code: 2433, category: ts.DiagnosticCategory.Error, key: "A module declaration cannot be in a different file from a class or function with which it is merged" }, + A_module_declaration_cannot_be_located_prior_to_a_class_or_function_with_which_it_is_merged: { code: 2434, category: ts.DiagnosticCategory.Error, key: "A module declaration cannot be located prior to a class or function with which it is merged" }, + Ambient_external_modules_cannot_be_nested_in_other_modules: { code: 2435, category: ts.DiagnosticCategory.Error, key: "Ambient external modules cannot be nested in other modules." }, + Ambient_external_module_declaration_cannot_specify_relative_module_name: { code: 2436, category: ts.DiagnosticCategory.Error, key: "Ambient external module declaration cannot specify relative module name." }, + Module_0_is_hidden_by_a_local_declaration_with_the_same_name: { code: 2437, category: ts.DiagnosticCategory.Error, key: "Module '{0}' is hidden by a local declaration with the same name" }, + Import_name_cannot_be_0: { code: 2438, category: ts.DiagnosticCategory.Error, key: "Import name cannot be '{0}'" }, + Import_or_export_declaration_in_an_ambient_external_module_declaration_cannot_reference_external_module_through_relative_external_module_name: { code: 2439, category: ts.DiagnosticCategory.Error, key: "Import or export declaration in an ambient external module declaration cannot reference external module through relative external module name." }, + Import_declaration_conflicts_with_local_declaration_of_0: { code: 2440, category: ts.DiagnosticCategory.Error, key: "Import declaration conflicts with local declaration of '{0}'" }, + Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_an_external_module: { code: 2441, category: ts.DiagnosticCategory.Error, key: "Duplicate identifier '{0}'. Compiler reserves name '{1}' in top level scope of an external module." }, + Types_have_separate_declarations_of_a_private_property_0: { code: 2442, category: ts.DiagnosticCategory.Error, key: "Types have separate declarations of a private property '{0}'." }, + Property_0_is_protected_but_type_1_is_not_a_class_derived_from_2: { code: 2443, category: ts.DiagnosticCategory.Error, key: "Property '{0}' is protected but type '{1}' is not a class derived from '{2}'." }, + Property_0_is_protected_in_type_1_but_public_in_type_2: { code: 2444, category: ts.DiagnosticCategory.Error, key: "Property '{0}' is protected in type '{1}' but public in type '{2}'." }, + Property_0_is_protected_and_only_accessible_within_class_1_and_its_subclasses: { code: 2445, category: ts.DiagnosticCategory.Error, key: "Property '{0}' is protected and only accessible within class '{1}' and its subclasses." }, + Property_0_is_protected_and_only_accessible_through_an_instance_of_class_1: { code: 2446, category: ts.DiagnosticCategory.Error, key: "Property '{0}' is protected and only accessible through an instance of class '{1}'." }, + The_0_operator_is_not_allowed_for_boolean_types_Consider_using_1_instead: { code: 2447, category: ts.DiagnosticCategory.Error, key: "The '{0}' operator is not allowed for boolean types. Consider using '{1}' instead." }, + Block_scoped_variable_0_used_before_its_declaration: { code: 2448, category: ts.DiagnosticCategory.Error, key: "Block-scoped variable '{0}' used before its declaration." }, + The_operand_of_an_increment_or_decrement_operator_cannot_be_a_constant: { code: 2449, category: ts.DiagnosticCategory.Error, key: "The operand of an increment or decrement operator cannot be a constant." }, + Left_hand_side_of_assignment_expression_cannot_be_a_constant: { code: 2450, category: ts.DiagnosticCategory.Error, key: "Left-hand side of assignment expression cannot be a constant." }, + Cannot_redeclare_block_scoped_variable_0: { code: 2451, category: ts.DiagnosticCategory.Error, key: "Cannot redeclare block-scoped variable '{0}'." }, + An_enum_member_cannot_have_a_numeric_name: { code: 2452, category: ts.DiagnosticCategory.Error, key: "An enum member cannot have a numeric name." }, + The_type_argument_for_type_parameter_0_cannot_be_inferred_from_the_usage_Consider_specifying_the_type_arguments_explicitly: { code: 2453, category: ts.DiagnosticCategory.Error, key: "The type argument for type parameter '{0}' cannot be inferred from the usage. Consider specifying the type arguments explicitly." }, + Type_argument_candidate_1_is_not_a_valid_type_argument_because_it_is_not_a_supertype_of_candidate_0: { code: 2455, category: ts.DiagnosticCategory.Error, key: "Type argument candidate '{1}' is not a valid type argument because it is not a supertype of candidate '{0}'." }, + Type_alias_0_circularly_references_itself: { code: 2456, category: ts.DiagnosticCategory.Error, key: "Type alias '{0}' circularly references itself." }, + Type_alias_name_cannot_be_0: { code: 2457, category: ts.DiagnosticCategory.Error, key: "Type alias name cannot be '{0}'" }, + An_AMD_module_cannot_have_multiple_name_assignments: { code: 2458, category: ts.DiagnosticCategory.Error, key: "An AMD module cannot have multiple name assignments." }, + Type_0_has_no_property_1_and_no_string_index_signature: { code: 2459, category: ts.DiagnosticCategory.Error, key: "Type '{0}' has no property '{1}' and no string index signature." }, + Type_0_has_no_property_1: { code: 2460, category: ts.DiagnosticCategory.Error, key: "Type '{0}' has no property '{1}'." }, + Type_0_is_not_an_array_type: { code: 2461, category: ts.DiagnosticCategory.Error, key: "Type '{0}' is not an array type." }, + A_rest_element_must_be_last_in_an_array_destructuring_pattern: { code: 2462, category: ts.DiagnosticCategory.Error, key: "A rest element must be last in an array destructuring pattern" }, + A_binding_pattern_parameter_cannot_be_optional_in_an_implementation_signature: { code: 2463, category: ts.DiagnosticCategory.Error, key: "A binding pattern parameter cannot be optional in an implementation signature." }, + A_computed_property_name_must_be_of_type_string_number_symbol_or_any: { code: 2464, category: ts.DiagnosticCategory.Error, key: "A computed property name must be of type 'string', 'number', 'symbol', or 'any'." }, + this_cannot_be_referenced_in_a_computed_property_name: { code: 2465, category: ts.DiagnosticCategory.Error, key: "'this' cannot be referenced in a computed property name." }, + super_cannot_be_referenced_in_a_computed_property_name: { code: 2466, category: ts.DiagnosticCategory.Error, key: "'super' cannot be referenced in a computed property name." }, + A_computed_property_name_cannot_reference_a_type_parameter_from_its_containing_type: { code: 2467, category: ts.DiagnosticCategory.Error, key: "A computed property name cannot reference a type parameter from its containing type." }, + Cannot_find_global_value_0: { code: 2468, category: ts.DiagnosticCategory.Error, key: "Cannot find global value '{0}'." }, + The_0_operator_cannot_be_applied_to_type_symbol: { code: 2469, category: ts.DiagnosticCategory.Error, key: "The '{0}' operator cannot be applied to type 'symbol'." }, + Symbol_reference_does_not_refer_to_the_global_Symbol_constructor_object: { code: 2470, category: ts.DiagnosticCategory.Error, key: "'Symbol' reference does not refer to the global Symbol constructor object." }, + A_computed_property_name_of_the_form_0_must_be_of_type_symbol: { code: 2471, category: ts.DiagnosticCategory.Error, key: "A computed property name of the form '{0}' must be of type 'symbol'." }, + Spread_operator_in_new_expressions_is_only_available_when_targeting_ECMAScript_6_and_higher: { code: 2472, category: ts.DiagnosticCategory.Error, key: "Spread operator in 'new' expressions is only available when targeting ECMAScript 6 and higher." }, + Enum_declarations_must_all_be_const_or_non_const: { code: 2473, category: ts.DiagnosticCategory.Error, key: "Enum declarations must all be const or non-const." }, + In_const_enum_declarations_member_initializer_must_be_constant_expression: { code: 2474, category: ts.DiagnosticCategory.Error, key: "In 'const' enum declarations member initializer must be constant expression." }, + const_enums_can_only_be_used_in_property_or_index_access_expressions_or_the_right_hand_side_of_an_import_declaration_or_export_assignment: { code: 2475, category: ts.DiagnosticCategory.Error, key: "'const' enums can only be used in property or index access expressions or the right hand side of an import declaration or export assignment." }, + A_const_enum_member_can_only_be_accessed_using_a_string_literal: { code: 2476, category: ts.DiagnosticCategory.Error, key: "A const enum member can only be accessed using a string literal." }, + const_enum_member_initializer_was_evaluated_to_a_non_finite_value: { code: 2477, category: ts.DiagnosticCategory.Error, key: "'const' enum member initializer was evaluated to a non-finite value." }, + const_enum_member_initializer_was_evaluated_to_disallowed_value_NaN: { code: 2478, category: ts.DiagnosticCategory.Error, key: "'const' enum member initializer was evaluated to disallowed value 'NaN'." }, + Property_0_does_not_exist_on_const_enum_1: { code: 2479, category: ts.DiagnosticCategory.Error, key: "Property '{0}' does not exist on 'const' enum '{1}'." }, + let_is_not_allowed_to_be_used_as_a_name_in_let_or_const_declarations: { code: 2480, category: ts.DiagnosticCategory.Error, key: "'let' is not allowed to be used as a name in 'let' or 'const' declarations." }, + Cannot_initialize_outer_scoped_variable_0_in_the_same_scope_as_block_scoped_declaration_1: { code: 2481, category: ts.DiagnosticCategory.Error, key: "Cannot initialize outer scoped variable '{0}' in the same scope as block scoped declaration '{1}'." }, + The_left_hand_side_of_a_for_of_statement_cannot_use_a_type_annotation: { code: 2483, category: ts.DiagnosticCategory.Error, key: "The left-hand side of a 'for...of' statement cannot use a type annotation." }, + Export_declaration_conflicts_with_exported_declaration_of_0: { code: 2484, category: ts.DiagnosticCategory.Error, key: "Export declaration conflicts with exported declaration of '{0}'" }, + The_left_hand_side_of_a_for_of_statement_cannot_be_a_previously_defined_constant: { code: 2485, category: ts.DiagnosticCategory.Error, key: "The left-hand side of a 'for...of' statement cannot be a previously defined constant." }, + The_left_hand_side_of_a_for_in_statement_cannot_be_a_previously_defined_constant: { code: 2486, category: ts.DiagnosticCategory.Error, key: "The left-hand side of a 'for...in' statement cannot be a previously defined constant." }, + Invalid_left_hand_side_in_for_of_statement: { code: 2487, category: ts.DiagnosticCategory.Error, key: "Invalid left-hand side in 'for...of' statement." }, + The_right_hand_side_of_a_for_of_statement_must_have_a_Symbol_iterator_method_that_returns_an_iterator: { code: 2488, category: ts.DiagnosticCategory.Error, key: "The right-hand side of a 'for...of' statement must have a '[Symbol.iterator]()' method that returns an iterator." }, + The_iterator_returned_by_the_right_hand_side_of_a_for_of_statement_must_have_a_next_method: { code: 2489, category: ts.DiagnosticCategory.Error, key: "The iterator returned by the right-hand side of a 'for...of' statement must have a 'next()' method." }, + The_type_returned_by_the_next_method_of_an_iterator_must_have_a_value_property: { code: 2490, category: ts.DiagnosticCategory.Error, key: "The type returned by the 'next()' method of an iterator must have a 'value' property." }, + The_left_hand_side_of_a_for_in_statement_cannot_be_a_destructuring_pattern: { code: 2491, category: ts.DiagnosticCategory.Error, key: "The left-hand side of a 'for...in' statement cannot be a destructuring pattern." }, + Cannot_redeclare_identifier_0_in_catch_clause: { code: 2492, category: ts.DiagnosticCategory.Error, key: "Cannot redeclare identifier '{0}' in catch clause" }, + Tuple_type_0_with_length_1_cannot_be_assigned_to_tuple_with_length_2: { code: 2493, category: ts.DiagnosticCategory.Error, key: "Tuple type '{0}' with length '{1}' cannot be assigned to tuple with length '{2}'." }, + Using_a_string_in_a_for_of_statement_is_only_supported_in_ECMAScript_5_and_higher: { code: 2494, category: ts.DiagnosticCategory.Error, key: "Using a string in a 'for...of' statement is only supported in ECMAScript 5 and higher." }, + Type_0_is_not_an_array_type_or_a_string_type: { code: 2495, category: ts.DiagnosticCategory.Error, key: "Type '{0}' is not an array type or a string type." }, + The_arguments_object_cannot_be_referenced_in_an_arrow_function_Consider_using_a_standard_function_expression: { code: 2496, category: ts.DiagnosticCategory.Error, key: "The 'arguments' object cannot be referenced in an arrow function. Consider using a standard function expression." }, + External_module_0_resolves_to_a_non_module_entity_and_cannot_be_imported_using_this_construct: { code: 2497, category: ts.DiagnosticCategory.Error, key: "External module '{0}' resolves to a non-module entity and cannot be imported using this construct." }, + External_module_0_uses_export_and_cannot_be_used_with_export_Asterisk: { code: 2498, category: ts.DiagnosticCategory.Error, key: "External module '{0}' uses 'export =' and cannot be used with 'export *'." }, + An_interface_can_only_extend_an_identifier_Slashqualified_name_with_optional_type_arguments: { code: 2499, category: ts.DiagnosticCategory.Error, key: "An interface can only extend an identifier/qualified-name with optional type arguments." }, + A_class_can_only_implement_an_identifier_Slashqualified_name_with_optional_type_arguments: { code: 2500, category: ts.DiagnosticCategory.Error, key: "A class can only implement an identifier/qualified-name with optional type arguments." }, + Import_declaration_0_is_using_private_name_1: { code: 4000, category: ts.DiagnosticCategory.Error, key: "Import declaration '{0}' is using private name '{1}'." }, + Type_parameter_0_of_exported_class_has_or_is_using_private_name_1: { code: 4002, category: ts.DiagnosticCategory.Error, key: "Type parameter '{0}' of exported class has or is using private name '{1}'." }, + Type_parameter_0_of_exported_interface_has_or_is_using_private_name_1: { code: 4004, category: ts.DiagnosticCategory.Error, key: "Type parameter '{0}' of exported interface has or is using private name '{1}'." }, + Type_parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1: { code: 4006, category: ts.DiagnosticCategory.Error, key: "Type parameter '{0}' of constructor signature from exported interface has or is using private name '{1}'." }, + Type_parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1: { code: 4008, category: ts.DiagnosticCategory.Error, key: "Type parameter '{0}' of call signature from exported interface has or is using private name '{1}'." }, + Type_parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1: { code: 4010, category: ts.DiagnosticCategory.Error, key: "Type parameter '{0}' of public static method from exported class has or is using private name '{1}'." }, + Type_parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1: { code: 4012, category: ts.DiagnosticCategory.Error, key: "Type parameter '{0}' of public method from exported class has or is using private name '{1}'." }, + Type_parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1: { code: 4014, category: ts.DiagnosticCategory.Error, key: "Type parameter '{0}' of method from exported interface has or is using private name '{1}'." }, + Type_parameter_0_of_exported_function_has_or_is_using_private_name_1: { code: 4016, category: ts.DiagnosticCategory.Error, key: "Type parameter '{0}' of exported function has or is using private name '{1}'." }, + Implements_clause_of_exported_class_0_has_or_is_using_private_name_1: { code: 4019, category: ts.DiagnosticCategory.Error, key: "Implements clause of exported class '{0}' has or is using private name '{1}'." }, + Extends_clause_of_exported_class_0_has_or_is_using_private_name_1: { code: 4020, category: ts.DiagnosticCategory.Error, key: "Extends clause of exported class '{0}' has or is using private name '{1}'." }, + Extends_clause_of_exported_interface_0_has_or_is_using_private_name_1: { code: 4022, category: ts.DiagnosticCategory.Error, key: "Extends clause of exported interface '{0}' has or is using private name '{1}'." }, + Exported_variable_0_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: { code: 4023, category: ts.DiagnosticCategory.Error, key: "Exported variable '{0}' has or is using name '{1}' from external module {2} but cannot be named." }, + Exported_variable_0_has_or_is_using_name_1_from_private_module_2: { code: 4024, category: ts.DiagnosticCategory.Error, key: "Exported variable '{0}' has or is using name '{1}' from private module '{2}'." }, + Exported_variable_0_has_or_is_using_private_name_1: { code: 4025, category: ts.DiagnosticCategory.Error, key: "Exported variable '{0}' has or is using private name '{1}'." }, + Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: { code: 4026, category: ts.DiagnosticCategory.Error, key: "Public static property '{0}' of exported class has or is using name '{1}' from external module {2} but cannot be named." }, + Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2: { code: 4027, category: ts.DiagnosticCategory.Error, key: "Public static property '{0}' of exported class has or is using name '{1}' from private module '{2}'." }, + Public_static_property_0_of_exported_class_has_or_is_using_private_name_1: { code: 4028, category: ts.DiagnosticCategory.Error, key: "Public static property '{0}' of exported class has or is using private name '{1}'." }, + Public_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: { code: 4029, category: ts.DiagnosticCategory.Error, key: "Public property '{0}' of exported class has or is using name '{1}' from external module {2} but cannot be named." }, + Public_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2: { code: 4030, category: ts.DiagnosticCategory.Error, key: "Public property '{0}' of exported class has or is using name '{1}' from private module '{2}'." }, + Public_property_0_of_exported_class_has_or_is_using_private_name_1: { code: 4031, category: ts.DiagnosticCategory.Error, key: "Public property '{0}' of exported class has or is using private name '{1}'." }, + Property_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2: { code: 4032, category: ts.DiagnosticCategory.Error, key: "Property '{0}' of exported interface has or is using name '{1}' from private module '{2}'." }, + Property_0_of_exported_interface_has_or_is_using_private_name_1: { code: 4033, category: ts.DiagnosticCategory.Error, key: "Property '{0}' of exported interface has or is using private name '{1}'." }, + Parameter_0_of_public_static_property_setter_from_exported_class_has_or_is_using_name_1_from_private_module_2: { code: 4034, category: ts.DiagnosticCategory.Error, key: "Parameter '{0}' of public static property setter from exported class has or is using name '{1}' from private module '{2}'." }, + Parameter_0_of_public_static_property_setter_from_exported_class_has_or_is_using_private_name_1: { code: 4035, category: ts.DiagnosticCategory.Error, key: "Parameter '{0}' of public static property setter from exported class has or is using private name '{1}'." }, + Parameter_0_of_public_property_setter_from_exported_class_has_or_is_using_name_1_from_private_module_2: { code: 4036, category: ts.DiagnosticCategory.Error, key: "Parameter '{0}' of public property setter from exported class has or is using name '{1}' from private module '{2}'." }, + Parameter_0_of_public_property_setter_from_exported_class_has_or_is_using_private_name_1: { code: 4037, category: ts.DiagnosticCategory.Error, key: "Parameter '{0}' of public property setter from exported class has or is using private name '{1}'." }, + Return_type_of_public_static_property_getter_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named: { code: 4038, category: ts.DiagnosticCategory.Error, key: "Return type of public static property getter from exported class has or is using name '{0}' from external module {1} but cannot be named." }, + Return_type_of_public_static_property_getter_from_exported_class_has_or_is_using_name_0_from_private_module_1: { code: 4039, category: ts.DiagnosticCategory.Error, key: "Return type of public static property getter from exported class has or is using name '{0}' from private module '{1}'." }, + Return_type_of_public_static_property_getter_from_exported_class_has_or_is_using_private_name_0: { code: 4040, category: ts.DiagnosticCategory.Error, key: "Return type of public static property getter from exported class has or is using private name '{0}'." }, + Return_type_of_public_property_getter_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named: { code: 4041, category: ts.DiagnosticCategory.Error, key: "Return type of public property getter from exported class has or is using name '{0}' from external module {1} but cannot be named." }, + Return_type_of_public_property_getter_from_exported_class_has_or_is_using_name_0_from_private_module_1: { code: 4042, category: ts.DiagnosticCategory.Error, key: "Return type of public property getter from exported class has or is using name '{0}' from private module '{1}'." }, + Return_type_of_public_property_getter_from_exported_class_has_or_is_using_private_name_0: { code: 4043, category: ts.DiagnosticCategory.Error, key: "Return type of public property getter from exported class has or is using private name '{0}'." }, + Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1: { code: 4044, category: ts.DiagnosticCategory.Error, key: "Return type of constructor signature from exported interface has or is using name '{0}' from private module '{1}'." }, + Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_0: { code: 4045, category: ts.DiagnosticCategory.Error, key: "Return type of constructor signature from exported interface has or is using private name '{0}'." }, + Return_type_of_call_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1: { code: 4046, category: ts.DiagnosticCategory.Error, key: "Return type of call signature from exported interface has or is using name '{0}' from private module '{1}'." }, + Return_type_of_call_signature_from_exported_interface_has_or_is_using_private_name_0: { code: 4047, category: ts.DiagnosticCategory.Error, key: "Return type of call signature from exported interface has or is using private name '{0}'." }, + Return_type_of_index_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1: { code: 4048, category: ts.DiagnosticCategory.Error, key: "Return type of index signature from exported interface has or is using name '{0}' from private module '{1}'." }, + Return_type_of_index_signature_from_exported_interface_has_or_is_using_private_name_0: { code: 4049, category: ts.DiagnosticCategory.Error, key: "Return type of index signature from exported interface has or is using private name '{0}'." }, + Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named: { code: 4050, category: ts.DiagnosticCategory.Error, key: "Return type of public static method from exported class has or is using name '{0}' from external module {1} but cannot be named." }, + Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_private_module_1: { code: 4051, category: ts.DiagnosticCategory.Error, key: "Return type of public static method from exported class has or is using name '{0}' from private module '{1}'." }, + Return_type_of_public_static_method_from_exported_class_has_or_is_using_private_name_0: { code: 4052, category: ts.DiagnosticCategory.Error, key: "Return type of public static method from exported class has or is using private name '{0}'." }, + Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named: { code: 4053, category: ts.DiagnosticCategory.Error, key: "Return type of public method from exported class has or is using name '{0}' from external module {1} but cannot be named." }, + Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_private_module_1: { code: 4054, category: ts.DiagnosticCategory.Error, key: "Return type of public method from exported class has or is using name '{0}' from private module '{1}'." }, + Return_type_of_public_method_from_exported_class_has_or_is_using_private_name_0: { code: 4055, category: ts.DiagnosticCategory.Error, key: "Return type of public method from exported class has or is using private name '{0}'." }, + Return_type_of_method_from_exported_interface_has_or_is_using_name_0_from_private_module_1: { code: 4056, category: ts.DiagnosticCategory.Error, key: "Return type of method from exported interface has or is using name '{0}' from private module '{1}'." }, + Return_type_of_method_from_exported_interface_has_or_is_using_private_name_0: { code: 4057, category: ts.DiagnosticCategory.Error, key: "Return type of method from exported interface has or is using private name '{0}'." }, + Return_type_of_exported_function_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named: { code: 4058, category: ts.DiagnosticCategory.Error, key: "Return type of exported function has or is using name '{0}' from external module {1} but cannot be named." }, + Return_type_of_exported_function_has_or_is_using_name_0_from_private_module_1: { code: 4059, category: ts.DiagnosticCategory.Error, key: "Return type of exported function has or is using name '{0}' from private module '{1}'." }, + Return_type_of_exported_function_has_or_is_using_private_name_0: { code: 4060, category: ts.DiagnosticCategory.Error, key: "Return type of exported function has or is using private name '{0}'." }, + Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: { code: 4061, category: ts.DiagnosticCategory.Error, key: "Parameter '{0}' of constructor from exported class has or is using name '{1}' from external module {2} but cannot be named." }, + Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_private_module_2: { code: 4062, category: ts.DiagnosticCategory.Error, key: "Parameter '{0}' of constructor from exported class has or is using name '{1}' from private module '{2}'." }, + Parameter_0_of_constructor_from_exported_class_has_or_is_using_private_name_1: { code: 4063, category: ts.DiagnosticCategory.Error, key: "Parameter '{0}' of constructor from exported class has or is using private name '{1}'." }, + Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2: { code: 4064, category: ts.DiagnosticCategory.Error, key: "Parameter '{0}' of constructor signature from exported interface has or is using name '{1}' from private module '{2}'." }, + Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1: { code: 4065, category: ts.DiagnosticCategory.Error, key: "Parameter '{0}' of constructor signature from exported interface has or is using private name '{1}'." }, + Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2: { code: 4066, category: ts.DiagnosticCategory.Error, key: "Parameter '{0}' of call signature from exported interface has or is using name '{1}' from private module '{2}'." }, + Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1: { code: 4067, category: ts.DiagnosticCategory.Error, key: "Parameter '{0}' of call signature from exported interface has or is using private name '{1}'." }, + Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: { code: 4068, category: ts.DiagnosticCategory.Error, key: "Parameter '{0}' of public static method from exported class has or is using name '{1}' from external module {2} but cannot be named." }, + Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_private_module_2: { code: 4069, category: ts.DiagnosticCategory.Error, key: "Parameter '{0}' of public static method from exported class has or is using name '{1}' from private module '{2}'." }, + Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1: { code: 4070, category: ts.DiagnosticCategory.Error, key: "Parameter '{0}' of public static method from exported class has or is using private name '{1}'." }, + Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: { code: 4071, category: ts.DiagnosticCategory.Error, key: "Parameter '{0}' of public method from exported class has or is using name '{1}' from external module {2} but cannot be named." }, + Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_private_module_2: { code: 4072, category: ts.DiagnosticCategory.Error, key: "Parameter '{0}' of public method from exported class has or is using name '{1}' from private module '{2}'." }, + Parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1: { code: 4073, category: ts.DiagnosticCategory.Error, key: "Parameter '{0}' of public method from exported class has or is using private name '{1}'." }, + Parameter_0_of_method_from_exported_interface_has_or_is_using_name_1_from_private_module_2: { code: 4074, category: ts.DiagnosticCategory.Error, key: "Parameter '{0}' of method from exported interface has or is using name '{1}' from private module '{2}'." }, + Parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1: { code: 4075, category: ts.DiagnosticCategory.Error, key: "Parameter '{0}' of method from exported interface has or is using private name '{1}'." }, + Parameter_0_of_exported_function_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: { code: 4076, category: ts.DiagnosticCategory.Error, key: "Parameter '{0}' of exported function has or is using name '{1}' from external module {2} but cannot be named." }, + Parameter_0_of_exported_function_has_or_is_using_name_1_from_private_module_2: { code: 4077, category: ts.DiagnosticCategory.Error, key: "Parameter '{0}' of exported function has or is using name '{1}' from private module '{2}'." }, + Parameter_0_of_exported_function_has_or_is_using_private_name_1: { code: 4078, category: ts.DiagnosticCategory.Error, key: "Parameter '{0}' of exported function has or is using private name '{1}'." }, + Exported_type_alias_0_has_or_is_using_private_name_1: { code: 4081, category: ts.DiagnosticCategory.Error, key: "Exported type alias '{0}' has or is using private name '{1}'." }, + Default_export_of_the_module_has_or_is_using_private_name_0: { code: 4082, category: ts.DiagnosticCategory.Error, key: "Default export of the module has or is using private name '{0}'." }, + Loop_contains_block_scoped_variable_0_referenced_by_a_function_in_the_loop_This_is_only_supported_in_ECMAScript_6_or_higher: { code: 4091, category: ts.DiagnosticCategory.Error, key: "Loop contains block-scoped variable '{0}' referenced by a function in the loop. This is only supported in ECMAScript 6 or higher." }, + The_current_host_does_not_support_the_0_option: { code: 5001, category: ts.DiagnosticCategory.Error, key: "The current host does not support the '{0}' option." }, + Cannot_find_the_common_subdirectory_path_for_the_input_files: { code: 5009, category: ts.DiagnosticCategory.Error, key: "Cannot find the common subdirectory path for the input files." }, + Cannot_read_file_0_Colon_1: { code: 5012, category: ts.DiagnosticCategory.Error, key: "Cannot read file '{0}': {1}" }, + Unsupported_file_encoding: { code: 5013, category: ts.DiagnosticCategory.Error, key: "Unsupported file encoding." }, + Unknown_compiler_option_0: { code: 5023, category: ts.DiagnosticCategory.Error, key: "Unknown compiler option '{0}'." }, + Compiler_option_0_requires_a_value_of_type_1: { code: 5024, category: ts.DiagnosticCategory.Error, key: "Compiler option '{0}' requires a value of type {1}." }, + Could_not_write_file_0_Colon_1: { code: 5033, category: ts.DiagnosticCategory.Error, key: "Could not write file '{0}': {1}" }, + Option_mapRoot_cannot_be_specified_without_specifying_sourcemap_option: { code: 5038, category: ts.DiagnosticCategory.Error, key: "Option 'mapRoot' cannot be specified without specifying 'sourcemap' option." }, + Option_sourceRoot_cannot_be_specified_without_specifying_sourcemap_option: { code: 5039, category: ts.DiagnosticCategory.Error, key: "Option 'sourceRoot' cannot be specified without specifying 'sourcemap' option." }, + Option_noEmit_cannot_be_specified_with_option_out_or_outDir: { code: 5040, category: ts.DiagnosticCategory.Error, key: "Option 'noEmit' cannot be specified with option 'out' or 'outDir'." }, + Option_noEmit_cannot_be_specified_with_option_declaration: { code: 5041, category: ts.DiagnosticCategory.Error, key: "Option 'noEmit' cannot be specified with option 'declaration'." }, + Option_project_cannot_be_mixed_with_source_files_on_a_command_line: { code: 5042, category: ts.DiagnosticCategory.Error, key: "Option 'project' cannot be mixed with source files on a command line." }, + Option_sourceMap_cannot_be_specified_with_option_separateCompilation: { code: 5043, category: ts.DiagnosticCategory.Error, key: "Option 'sourceMap' cannot be specified with option 'separateCompilation'." }, + Option_declaration_cannot_be_specified_with_option_separateCompilation: { code: 5044, category: ts.DiagnosticCategory.Error, key: "Option 'declaration' cannot be specified with option 'separateCompilation'." }, + Option_noEmitOnError_cannot_be_specified_with_option_separateCompilation: { code: 5045, category: ts.DiagnosticCategory.Error, key: "Option 'noEmitOnError' cannot be specified with option 'separateCompilation'." }, + Option_out_cannot_be_specified_with_option_separateCompilation: { code: 5046, category: ts.DiagnosticCategory.Error, key: "Option 'out' cannot be specified with option 'separateCompilation'." }, + Option_separateCompilation_can_only_be_used_when_either_option_module_is_provided_or_option_target_is_ES6_or_higher: { code: 5047, category: ts.DiagnosticCategory.Error, key: "Option 'separateCompilation' can only be used when either option'--module' is provided or option 'target' is 'ES6' or higher." }, + Concatenate_and_emit_output_to_single_file: { code: 6001, category: ts.DiagnosticCategory.Message, key: "Concatenate and emit output to single file." }, + Generates_corresponding_d_ts_file: { code: 6002, category: ts.DiagnosticCategory.Message, key: "Generates corresponding '.d.ts' file." }, + Specifies_the_location_where_debugger_should_locate_map_files_instead_of_generated_locations: { code: 6003, category: ts.DiagnosticCategory.Message, key: "Specifies the location where debugger should locate map files instead of generated locations." }, + Specifies_the_location_where_debugger_should_locate_TypeScript_files_instead_of_source_locations: { code: 6004, category: ts.DiagnosticCategory.Message, key: "Specifies the location where debugger should locate TypeScript files instead of source locations." }, + Watch_input_files: { code: 6005, category: ts.DiagnosticCategory.Message, key: "Watch input files." }, + Redirect_output_structure_to_the_directory: { code: 6006, category: ts.DiagnosticCategory.Message, key: "Redirect output structure to the directory." }, + Do_not_erase_const_enum_declarations_in_generated_code: { code: 6007, category: ts.DiagnosticCategory.Message, key: "Do not erase const enum declarations in generated code." }, + Do_not_emit_outputs_if_any_type_checking_errors_were_reported: { code: 6008, category: ts.DiagnosticCategory.Message, key: "Do not emit outputs if any type checking errors were reported." }, + Do_not_emit_comments_to_output: { code: 6009, category: ts.DiagnosticCategory.Message, key: "Do not emit comments to output." }, + Do_not_emit_outputs: { code: 6010, category: ts.DiagnosticCategory.Message, key: "Do not emit outputs." }, + Specify_ECMAScript_target_version_Colon_ES3_default_ES5_or_ES6_experimental: { code: 6015, category: ts.DiagnosticCategory.Message, key: "Specify ECMAScript target version: 'ES3' (default), 'ES5', or 'ES6' (experimental)" }, + Specify_module_code_generation_Colon_commonjs_or_amd: { code: 6016, category: ts.DiagnosticCategory.Message, key: "Specify module code generation: 'commonjs' or 'amd'" }, + Print_this_message: { code: 6017, category: ts.DiagnosticCategory.Message, key: "Print this message." }, + Print_the_compiler_s_version: { code: 6019, category: ts.DiagnosticCategory.Message, key: "Print the compiler's version." }, + Compile_the_project_in_the_given_directory: { code: 6020, category: ts.DiagnosticCategory.Message, key: "Compile the project in the given directory." }, + Syntax_Colon_0: { code: 6023, category: ts.DiagnosticCategory.Message, key: "Syntax: {0}" }, + options: { code: 6024, category: ts.DiagnosticCategory.Message, key: "options" }, + file: { code: 6025, category: ts.DiagnosticCategory.Message, key: "file" }, + Examples_Colon_0: { code: 6026, category: ts.DiagnosticCategory.Message, key: "Examples: {0}" }, + Options_Colon: { code: 6027, category: ts.DiagnosticCategory.Message, key: "Options:" }, + Version_0: { code: 6029, category: ts.DiagnosticCategory.Message, key: "Version {0}" }, + Insert_command_line_options_and_files_from_a_file: { code: 6030, category: ts.DiagnosticCategory.Message, key: "Insert command line options and files from a file." }, + File_change_detected_Starting_incremental_compilation: { code: 6032, category: ts.DiagnosticCategory.Message, key: "File change detected. Starting incremental compilation..." }, + KIND: { code: 6034, category: ts.DiagnosticCategory.Message, key: "KIND" }, + FILE: { code: 6035, category: ts.DiagnosticCategory.Message, key: "FILE" }, + VERSION: { code: 6036, category: ts.DiagnosticCategory.Message, key: "VERSION" }, + LOCATION: { code: 6037, category: ts.DiagnosticCategory.Message, key: "LOCATION" }, + DIRECTORY: { code: 6038, category: ts.DiagnosticCategory.Message, key: "DIRECTORY" }, + Compilation_complete_Watching_for_file_changes: { code: 6042, category: ts.DiagnosticCategory.Message, key: "Compilation complete. Watching for file changes." }, + Generates_corresponding_map_file: { code: 6043, category: ts.DiagnosticCategory.Message, key: "Generates corresponding '.map' file." }, + Compiler_option_0_expects_an_argument: { code: 6044, category: ts.DiagnosticCategory.Error, key: "Compiler option '{0}' expects an argument." }, + Unterminated_quoted_string_in_response_file_0: { code: 6045, category: ts.DiagnosticCategory.Error, key: "Unterminated quoted string in response file '{0}'." }, + Argument_for_module_option_must_be_commonjs_or_amd: { code: 6046, category: ts.DiagnosticCategory.Error, key: "Argument for '--module' option must be 'commonjs' or 'amd'." }, + Argument_for_target_option_must_be_es3_es5_or_es6: { code: 6047, category: ts.DiagnosticCategory.Error, key: "Argument for '--target' option must be 'es3', 'es5', or 'es6'." }, + Locale_must_be_of_the_form_language_or_language_territory_For_example_0_or_1: { code: 6048, category: ts.DiagnosticCategory.Error, key: "Locale must be of the form or -. For example '{0}' or '{1}'." }, + Unsupported_locale_0: { code: 6049, category: ts.DiagnosticCategory.Error, key: "Unsupported locale '{0}'." }, + Unable_to_open_file_0: { code: 6050, category: ts.DiagnosticCategory.Error, key: "Unable to open file '{0}'." }, + Corrupted_locale_file_0: { code: 6051, category: ts.DiagnosticCategory.Error, key: "Corrupted locale file {0}." }, + Raise_error_on_expressions_and_declarations_with_an_implied_any_type: { code: 6052, category: ts.DiagnosticCategory.Message, key: "Raise error on expressions and declarations with an implied 'any' type." }, + File_0_not_found: { code: 6053, category: ts.DiagnosticCategory.Error, key: "File '{0}' not found." }, + File_0_must_have_extension_ts_or_d_ts: { code: 6054, category: ts.DiagnosticCategory.Error, key: "File '{0}' must have extension '.ts' or '.d.ts'." }, + Suppress_noImplicitAny_errors_for_indexing_objects_lacking_index_signatures: { code: 6055, category: ts.DiagnosticCategory.Message, key: "Suppress noImplicitAny errors for indexing objects lacking index signatures." }, + Do_not_emit_declarations_for_code_that_has_an_internal_annotation: { code: 6056, category: ts.DiagnosticCategory.Message, key: "Do not emit declarations for code that has an '@internal' annotation." }, + Preserve_new_lines_when_emitting_code: { code: 6057, category: ts.DiagnosticCategory.Message, key: "Preserve new-lines when emitting code." }, + Variable_0_implicitly_has_an_1_type: { code: 7005, category: ts.DiagnosticCategory.Error, key: "Variable '{0}' implicitly has an '{1}' type." }, + Parameter_0_implicitly_has_an_1_type: { code: 7006, category: ts.DiagnosticCategory.Error, key: "Parameter '{0}' implicitly has an '{1}' type." }, + Member_0_implicitly_has_an_1_type: { code: 7008, category: ts.DiagnosticCategory.Error, key: "Member '{0}' implicitly has an '{1}' type." }, + new_expression_whose_target_lacks_a_construct_signature_implicitly_has_an_any_type: { code: 7009, category: ts.DiagnosticCategory.Error, key: "'new' expression, whose target lacks a construct signature, implicitly has an 'any' type." }, + _0_which_lacks_return_type_annotation_implicitly_has_an_1_return_type: { code: 7010, category: ts.DiagnosticCategory.Error, key: "'{0}', which lacks return-type annotation, implicitly has an '{1}' return type." }, + Function_expression_which_lacks_return_type_annotation_implicitly_has_an_0_return_type: { code: 7011, category: ts.DiagnosticCategory.Error, key: "Function expression, which lacks return-type annotation, implicitly has an '{0}' return type." }, + Construct_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type: { code: 7013, category: ts.DiagnosticCategory.Error, key: "Construct signature, which lacks return-type annotation, implicitly has an 'any' return type." }, + Property_0_implicitly_has_type_any_because_its_set_accessor_lacks_a_type_annotation: { code: 7016, category: ts.DiagnosticCategory.Error, key: "Property '{0}' implicitly has type 'any', because its 'set' accessor lacks a type annotation." }, + Index_signature_of_object_type_implicitly_has_an_any_type: { code: 7017, category: ts.DiagnosticCategory.Error, key: "Index signature of object type implicitly has an 'any' type." }, + Object_literal_s_property_0_implicitly_has_an_1_type: { code: 7018, category: ts.DiagnosticCategory.Error, key: "Object literal's property '{0}' implicitly has an '{1}' type." }, + Rest_parameter_0_implicitly_has_an_any_type: { code: 7019, category: ts.DiagnosticCategory.Error, key: "Rest parameter '{0}' implicitly has an 'any[]' type." }, + Call_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type: { code: 7020, category: ts.DiagnosticCategory.Error, key: "Call signature, which lacks return-type annotation, implicitly has an 'any' return type." }, + _0_implicitly_has_type_any_because_it_is_referenced_directly_or_indirectly_in_its_own_type_annotation: { code: 7021, category: ts.DiagnosticCategory.Error, key: "'{0}' implicitly has type 'any' because it is referenced directly or indirectly in its own type annotation." }, + _0_implicitly_has_type_any_because_it_is_does_not_have_a_type_annotation_and_is_referenced_directly_or_indirectly_in_its_own_initializer: { code: 7022, category: ts.DiagnosticCategory.Error, key: "'{0}' implicitly has type 'any' because it is does not have a type annotation and is referenced directly or indirectly in its own initializer." }, + _0_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions: { code: 7023, category: ts.DiagnosticCategory.Error, key: "'{0}' implicitly has return type 'any' because it does not have a return type annotation and is referenced directly or indirectly in one of its return expressions." }, + Function_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions: { code: 7024, category: ts.DiagnosticCategory.Error, key: "Function implicitly has return type 'any' because it does not have a return type annotation and is referenced directly or indirectly in one of its return expressions." }, + You_cannot_rename_this_element: { code: 8000, category: ts.DiagnosticCategory.Error, key: "You cannot rename this element." }, + You_cannot_rename_elements_that_are_defined_in_the_standard_TypeScript_library: { code: 8001, category: ts.DiagnosticCategory.Error, key: "You cannot rename elements that are defined in the standard TypeScript library." }, + yield_expressions_are_not_currently_supported: { code: 9000, category: ts.DiagnosticCategory.Error, key: "'yield' expressions are not currently supported." }, + Generators_are_not_currently_supported: { code: 9001, category: ts.DiagnosticCategory.Error, key: "Generators are not currently supported." }, + Only_identifiers_Slashqualified_names_with_optional_type_arguments_are_currently_supported_in_a_class_extends_clauses: { code: 9002, category: ts.DiagnosticCategory.Error, key: "Only identifiers/qualified-names with optional type arguments are currently supported in a class 'extends' clauses." }, + class_expressions_are_not_currently_supported: { code: 9003, category: ts.DiagnosticCategory.Error, key: "'class' expressions are not currently supported." }, + class_declarations_are_only_supported_directly_inside_a_module_or_as_a_top_level_declaration: { code: 9004, category: ts.DiagnosticCategory.Error, key: "'class' declarations are only supported directly inside a module or as a top level declaration." } + }; +})(ts || (ts = {})); +/// +/// +var ts; +(function (ts) { + var textToToken = { + "any": 112, + "as": 102, + "boolean": 113, + "break": 66, + "case": 67, + "catch": 68, + "class": 69, + "continue": 71, + "const": 70, + "constructor": 114, + "debugger": 72, + "declare": 115, + "default": 73, + "delete": 74, + "do": 75, + "else": 76, + "enum": 77, + "export": 78, + "extends": 79, + "false": 80, + "finally": 81, + "for": 82, + "from": 124, + "function": 83, + "get": 116, + "if": 84, + "implements": 103, + "import": 85, + "in": 86, + "instanceof": 87, + "interface": 104, + "let": 105, + "module": 117, + "new": 88, + "null": 89, + "number": 119, + "package": 106, + "private": 107, + "protected": 108, + "public": 109, + "require": 118, + "return": 90, + "set": 120, + "static": 110, + "string": 121, + "super": 91, + "switch": 92, + "symbol": 122, + "this": 93, + "throw": 94, + "true": 95, + "try": 96, + "type": 123, + "typeof": 97, + "var": 98, + "void": 99, + "while": 100, + "with": 101, + "yield": 111, + "of": 125, + "{": 14, + "}": 15, + "(": 16, + ")": 17, + "[": 18, + "]": 19, + ".": 20, + "...": 21, + ";": 22, + ",": 23, + "<": 24, + ">": 25, + "<=": 26, + ">=": 27, + "==": 28, + "!=": 29, + "===": 30, + "!==": 31, + "=>": 32, + "+": 33, + "-": 34, + "*": 35, + "/": 36, + "%": 37, + "++": 38, + "--": 39, + "<<": 40, + ">>": 41, + ">>>": 42, + "&": 43, + "|": 44, + "^": 45, + "!": 46, + "~": 47, + "&&": 48, + "||": 49, + "?": 50, + ":": 51, + "=": 53, + "+=": 54, + "-=": 55, + "*=": 56, + "/=": 57, + "%=": 58, + "<<=": 59, + ">>=": 60, + ">>>=": 61, + "&=": 62, + "|=": 63, + "^=": 64, + "@": 52 + }; + var unicodeES3IdentifierStart = [170, 170, 181, 181, 186, 186, 192, 214, 216, 246, 248, 543, 546, 563, 592, 685, 688, 696, 699, 705, 720, 721, 736, 740, 750, 750, 890, 890, 902, 902, 904, 906, 908, 908, 910, 929, 931, 974, 976, 983, 986, 1011, 1024, 1153, 1164, 1220, 1223, 1224, 1227, 1228, 1232, 1269, 1272, 1273, 1329, 1366, 1369, 1369, 1377, 1415, 1488, 1514, 1520, 1522, 1569, 1594, 1600, 1610, 1649, 1747, 1749, 1749, 1765, 1766, 1786, 1788, 1808, 1808, 1810, 1836, 1920, 1957, 2309, 2361, 2365, 2365, 2384, 2384, 2392, 2401, 2437, 2444, 2447, 2448, 2451, 2472, 2474, 2480, 2482, 2482, 2486, 2489, 2524, 2525, 2527, 2529, 2544, 2545, 2565, 2570, 2575, 2576, 2579, 2600, 2602, 2608, 2610, 2611, 2613, 2614, 2616, 2617, 2649, 2652, 2654, 2654, 2674, 2676, 2693, 2699, 2701, 2701, 2703, 2705, 2707, 2728, 2730, 2736, 2738, 2739, 2741, 2745, 2749, 2749, 2768, 2768, 2784, 2784, 2821, 2828, 2831, 2832, 2835, 2856, 2858, 2864, 2866, 2867, 2870, 2873, 2877, 2877, 2908, 2909, 2911, 2913, 2949, 2954, 2958, 2960, 2962, 2965, 2969, 2970, 2972, 2972, 2974, 2975, 2979, 2980, 2984, 2986, 2990, 2997, 2999, 3001, 3077, 3084, 3086, 3088, 3090, 3112, 3114, 3123, 3125, 3129, 3168, 3169, 3205, 3212, 3214, 3216, 3218, 3240, 3242, 3251, 3253, 3257, 3294, 3294, 3296, 3297, 3333, 3340, 3342, 3344, 3346, 3368, 3370, 3385, 3424, 3425, 3461, 3478, 3482, 3505, 3507, 3515, 3517, 3517, 3520, 3526, 3585, 3632, 3634, 3635, 3648, 3654, 3713, 3714, 3716, 3716, 3719, 3720, 3722, 3722, 3725, 3725, 3732, 3735, 3737, 3743, 3745, 3747, 3749, 3749, 3751, 3751, 3754, 3755, 3757, 3760, 3762, 3763, 3773, 3773, 3776, 3780, 3782, 3782, 3804, 3805, 3840, 3840, 3904, 3911, 3913, 3946, 3976, 3979, 4096, 4129, 4131, 4135, 4137, 4138, 4176, 4181, 4256, 4293, 4304, 4342, 4352, 4441, 4447, 4514, 4520, 4601, 4608, 4614, 4616, 4678, 4680, 4680, 4682, 4685, 4688, 4694, 4696, 4696, 4698, 4701, 4704, 4742, 4744, 4744, 4746, 4749, 4752, 4782, 4784, 4784, 4786, 4789, 4792, 4798, 4800, 4800, 4802, 4805, 4808, 4814, 4816, 4822, 4824, 4846, 4848, 4878, 4880, 4880, 4882, 4885, 4888, 4894, 4896, 4934, 4936, 4954, 5024, 5108, 5121, 5740, 5743, 5750, 5761, 5786, 5792, 5866, 6016, 6067, 6176, 6263, 6272, 6312, 7680, 7835, 7840, 7929, 7936, 7957, 7960, 7965, 7968, 8005, 8008, 8013, 8016, 8023, 8025, 8025, 8027, 8027, 8029, 8029, 8031, 8061, 8064, 8116, 8118, 8124, 8126, 8126, 8130, 8132, 8134, 8140, 8144, 8147, 8150, 8155, 8160, 8172, 8178, 8180, 8182, 8188, 8319, 8319, 8450, 8450, 8455, 8455, 8458, 8467, 8469, 8469, 8473, 8477, 8484, 8484, 8486, 8486, 8488, 8488, 8490, 8493, 8495, 8497, 8499, 8505, 8544, 8579, 12293, 12295, 12321, 12329, 12337, 12341, 12344, 12346, 12353, 12436, 12445, 12446, 12449, 12538, 12540, 12542, 12549, 12588, 12593, 12686, 12704, 12727, 13312, 19893, 19968, 40869, 40960, 42124, 44032, 55203, 63744, 64045, 64256, 64262, 64275, 64279, 64285, 64285, 64287, 64296, 64298, 64310, 64312, 64316, 64318, 64318, 64320, 64321, 64323, 64324, 64326, 64433, 64467, 64829, 64848, 64911, 64914, 64967, 65008, 65019, 65136, 65138, 65140, 65140, 65142, 65276, 65313, 65338, 65345, 65370, 65382, 65470, 65474, 65479, 65482, 65487, 65490, 65495, 65498, 65500,]; + var unicodeES3IdentifierPart = [170, 170, 181, 181, 186, 186, 192, 214, 216, 246, 248, 543, 546, 563, 592, 685, 688, 696, 699, 705, 720, 721, 736, 740, 750, 750, 768, 846, 864, 866, 890, 890, 902, 902, 904, 906, 908, 908, 910, 929, 931, 974, 976, 983, 986, 1011, 1024, 1153, 1155, 1158, 1164, 1220, 1223, 1224, 1227, 1228, 1232, 1269, 1272, 1273, 1329, 1366, 1369, 1369, 1377, 1415, 1425, 1441, 1443, 1465, 1467, 1469, 1471, 1471, 1473, 1474, 1476, 1476, 1488, 1514, 1520, 1522, 1569, 1594, 1600, 1621, 1632, 1641, 1648, 1747, 1749, 1756, 1759, 1768, 1770, 1773, 1776, 1788, 1808, 1836, 1840, 1866, 1920, 1968, 2305, 2307, 2309, 2361, 2364, 2381, 2384, 2388, 2392, 2403, 2406, 2415, 2433, 2435, 2437, 2444, 2447, 2448, 2451, 2472, 2474, 2480, 2482, 2482, 2486, 2489, 2492, 2492, 2494, 2500, 2503, 2504, 2507, 2509, 2519, 2519, 2524, 2525, 2527, 2531, 2534, 2545, 2562, 2562, 2565, 2570, 2575, 2576, 2579, 2600, 2602, 2608, 2610, 2611, 2613, 2614, 2616, 2617, 2620, 2620, 2622, 2626, 2631, 2632, 2635, 2637, 2649, 2652, 2654, 2654, 2662, 2676, 2689, 2691, 2693, 2699, 2701, 2701, 2703, 2705, 2707, 2728, 2730, 2736, 2738, 2739, 2741, 2745, 2748, 2757, 2759, 2761, 2763, 2765, 2768, 2768, 2784, 2784, 2790, 2799, 2817, 2819, 2821, 2828, 2831, 2832, 2835, 2856, 2858, 2864, 2866, 2867, 2870, 2873, 2876, 2883, 2887, 2888, 2891, 2893, 2902, 2903, 2908, 2909, 2911, 2913, 2918, 2927, 2946, 2947, 2949, 2954, 2958, 2960, 2962, 2965, 2969, 2970, 2972, 2972, 2974, 2975, 2979, 2980, 2984, 2986, 2990, 2997, 2999, 3001, 3006, 3010, 3014, 3016, 3018, 3021, 3031, 3031, 3047, 3055, 3073, 3075, 3077, 3084, 3086, 3088, 3090, 3112, 3114, 3123, 3125, 3129, 3134, 3140, 3142, 3144, 3146, 3149, 3157, 3158, 3168, 3169, 3174, 3183, 3202, 3203, 3205, 3212, 3214, 3216, 3218, 3240, 3242, 3251, 3253, 3257, 3262, 3268, 3270, 3272, 3274, 3277, 3285, 3286, 3294, 3294, 3296, 3297, 3302, 3311, 3330, 3331, 3333, 3340, 3342, 3344, 3346, 3368, 3370, 3385, 3390, 3395, 3398, 3400, 3402, 3405, 3415, 3415, 3424, 3425, 3430, 3439, 3458, 3459, 3461, 3478, 3482, 3505, 3507, 3515, 3517, 3517, 3520, 3526, 3530, 3530, 3535, 3540, 3542, 3542, 3544, 3551, 3570, 3571, 3585, 3642, 3648, 3662, 3664, 3673, 3713, 3714, 3716, 3716, 3719, 3720, 3722, 3722, 3725, 3725, 3732, 3735, 3737, 3743, 3745, 3747, 3749, 3749, 3751, 3751, 3754, 3755, 3757, 3769, 3771, 3773, 3776, 3780, 3782, 3782, 3784, 3789, 3792, 3801, 3804, 3805, 3840, 3840, 3864, 3865, 3872, 3881, 3893, 3893, 3895, 3895, 3897, 3897, 3902, 3911, 3913, 3946, 3953, 3972, 3974, 3979, 3984, 3991, 3993, 4028, 4038, 4038, 4096, 4129, 4131, 4135, 4137, 4138, 4140, 4146, 4150, 4153, 4160, 4169, 4176, 4185, 4256, 4293, 4304, 4342, 4352, 4441, 4447, 4514, 4520, 4601, 4608, 4614, 4616, 4678, 4680, 4680, 4682, 4685, 4688, 4694, 4696, 4696, 4698, 4701, 4704, 4742, 4744, 4744, 4746, 4749, 4752, 4782, 4784, 4784, 4786, 4789, 4792, 4798, 4800, 4800, 4802, 4805, 4808, 4814, 4816, 4822, 4824, 4846, 4848, 4878, 4880, 4880, 4882, 4885, 4888, 4894, 4896, 4934, 4936, 4954, 4969, 4977, 5024, 5108, 5121, 5740, 5743, 5750, 5761, 5786, 5792, 5866, 6016, 6099, 6112, 6121, 6160, 6169, 6176, 6263, 6272, 6313, 7680, 7835, 7840, 7929, 7936, 7957, 7960, 7965, 7968, 8005, 8008, 8013, 8016, 8023, 8025, 8025, 8027, 8027, 8029, 8029, 8031, 8061, 8064, 8116, 8118, 8124, 8126, 8126, 8130, 8132, 8134, 8140, 8144, 8147, 8150, 8155, 8160, 8172, 8178, 8180, 8182, 8188, 8255, 8256, 8319, 8319, 8400, 8412, 8417, 8417, 8450, 8450, 8455, 8455, 8458, 8467, 8469, 8469, 8473, 8477, 8484, 8484, 8486, 8486, 8488, 8488, 8490, 8493, 8495, 8497, 8499, 8505, 8544, 8579, 12293, 12295, 12321, 12335, 12337, 12341, 12344, 12346, 12353, 12436, 12441, 12442, 12445, 12446, 12449, 12542, 12549, 12588, 12593, 12686, 12704, 12727, 13312, 19893, 19968, 40869, 40960, 42124, 44032, 55203, 63744, 64045, 64256, 64262, 64275, 64279, 64285, 64296, 64298, 64310, 64312, 64316, 64318, 64318, 64320, 64321, 64323, 64324, 64326, 64433, 64467, 64829, 64848, 64911, 64914, 64967, 65008, 65019, 65056, 65059, 65075, 65076, 65101, 65103, 65136, 65138, 65140, 65140, 65142, 65276, 65296, 65305, 65313, 65338, 65343, 65343, 65345, 65370, 65381, 65470, 65474, 65479, 65482, 65487, 65490, 65495, 65498, 65500,]; + var unicodeES5IdentifierStart = [170, 170, 181, 181, 186, 186, 192, 214, 216, 246, 248, 705, 710, 721, 736, 740, 748, 748, 750, 750, 880, 884, 886, 887, 890, 893, 902, 902, 904, 906, 908, 908, 910, 929, 931, 1013, 1015, 1153, 1162, 1319, 1329, 1366, 1369, 1369, 1377, 1415, 1488, 1514, 1520, 1522, 1568, 1610, 1646, 1647, 1649, 1747, 1749, 1749, 1765, 1766, 1774, 1775, 1786, 1788, 1791, 1791, 1808, 1808, 1810, 1839, 1869, 1957, 1969, 1969, 1994, 2026, 2036, 2037, 2042, 2042, 2048, 2069, 2074, 2074, 2084, 2084, 2088, 2088, 2112, 2136, 2208, 2208, 2210, 2220, 2308, 2361, 2365, 2365, 2384, 2384, 2392, 2401, 2417, 2423, 2425, 2431, 2437, 2444, 2447, 2448, 2451, 2472, 2474, 2480, 2482, 2482, 2486, 2489, 2493, 2493, 2510, 2510, 2524, 2525, 2527, 2529, 2544, 2545, 2565, 2570, 2575, 2576, 2579, 2600, 2602, 2608, 2610, 2611, 2613, 2614, 2616, 2617, 2649, 2652, 2654, 2654, 2674, 2676, 2693, 2701, 2703, 2705, 2707, 2728, 2730, 2736, 2738, 2739, 2741, 2745, 2749, 2749, 2768, 2768, 2784, 2785, 2821, 2828, 2831, 2832, 2835, 2856, 2858, 2864, 2866, 2867, 2869, 2873, 2877, 2877, 2908, 2909, 2911, 2913, 2929, 2929, 2947, 2947, 2949, 2954, 2958, 2960, 2962, 2965, 2969, 2970, 2972, 2972, 2974, 2975, 2979, 2980, 2984, 2986, 2990, 3001, 3024, 3024, 3077, 3084, 3086, 3088, 3090, 3112, 3114, 3123, 3125, 3129, 3133, 3133, 3160, 3161, 3168, 3169, 3205, 3212, 3214, 3216, 3218, 3240, 3242, 3251, 3253, 3257, 3261, 3261, 3294, 3294, 3296, 3297, 3313, 3314, 3333, 3340, 3342, 3344, 3346, 3386, 3389, 3389, 3406, 3406, 3424, 3425, 3450, 3455, 3461, 3478, 3482, 3505, 3507, 3515, 3517, 3517, 3520, 3526, 3585, 3632, 3634, 3635, 3648, 3654, 3713, 3714, 3716, 3716, 3719, 3720, 3722, 3722, 3725, 3725, 3732, 3735, 3737, 3743, 3745, 3747, 3749, 3749, 3751, 3751, 3754, 3755, 3757, 3760, 3762, 3763, 3773, 3773, 3776, 3780, 3782, 3782, 3804, 3807, 3840, 3840, 3904, 3911, 3913, 3948, 3976, 3980, 4096, 4138, 4159, 4159, 4176, 4181, 4186, 4189, 4193, 4193, 4197, 4198, 4206, 4208, 4213, 4225, 4238, 4238, 4256, 4293, 4295, 4295, 4301, 4301, 4304, 4346, 4348, 4680, 4682, 4685, 4688, 4694, 4696, 4696, 4698, 4701, 4704, 4744, 4746, 4749, 4752, 4784, 4786, 4789, 4792, 4798, 4800, 4800, 4802, 4805, 4808, 4822, 4824, 4880, 4882, 4885, 4888, 4954, 4992, 5007, 5024, 5108, 5121, 5740, 5743, 5759, 5761, 5786, 5792, 5866, 5870, 5872, 5888, 5900, 5902, 5905, 5920, 5937, 5952, 5969, 5984, 5996, 5998, 6000, 6016, 6067, 6103, 6103, 6108, 6108, 6176, 6263, 6272, 6312, 6314, 6314, 6320, 6389, 6400, 6428, 6480, 6509, 6512, 6516, 6528, 6571, 6593, 6599, 6656, 6678, 6688, 6740, 6823, 6823, 6917, 6963, 6981, 6987, 7043, 7072, 7086, 7087, 7098, 7141, 7168, 7203, 7245, 7247, 7258, 7293, 7401, 7404, 7406, 7409, 7413, 7414, 7424, 7615, 7680, 7957, 7960, 7965, 7968, 8005, 8008, 8013, 8016, 8023, 8025, 8025, 8027, 8027, 8029, 8029, 8031, 8061, 8064, 8116, 8118, 8124, 8126, 8126, 8130, 8132, 8134, 8140, 8144, 8147, 8150, 8155, 8160, 8172, 8178, 8180, 8182, 8188, 8305, 8305, 8319, 8319, 8336, 8348, 8450, 8450, 8455, 8455, 8458, 8467, 8469, 8469, 8473, 8477, 8484, 8484, 8486, 8486, 8488, 8488, 8490, 8493, 8495, 8505, 8508, 8511, 8517, 8521, 8526, 8526, 8544, 8584, 11264, 11310, 11312, 11358, 11360, 11492, 11499, 11502, 11506, 11507, 11520, 11557, 11559, 11559, 11565, 11565, 11568, 11623, 11631, 11631, 11648, 11670, 11680, 11686, 11688, 11694, 11696, 11702, 11704, 11710, 11712, 11718, 11720, 11726, 11728, 11734, 11736, 11742, 11823, 11823, 12293, 12295, 12321, 12329, 12337, 12341, 12344, 12348, 12353, 12438, 12445, 12447, 12449, 12538, 12540, 12543, 12549, 12589, 12593, 12686, 12704, 12730, 12784, 12799, 13312, 19893, 19968, 40908, 40960, 42124, 42192, 42237, 42240, 42508, 42512, 42527, 42538, 42539, 42560, 42606, 42623, 42647, 42656, 42735, 42775, 42783, 42786, 42888, 42891, 42894, 42896, 42899, 42912, 42922, 43000, 43009, 43011, 43013, 43015, 43018, 43020, 43042, 43072, 43123, 43138, 43187, 43250, 43255, 43259, 43259, 43274, 43301, 43312, 43334, 43360, 43388, 43396, 43442, 43471, 43471, 43520, 43560, 43584, 43586, 43588, 43595, 43616, 43638, 43642, 43642, 43648, 43695, 43697, 43697, 43701, 43702, 43705, 43709, 43712, 43712, 43714, 43714, 43739, 43741, 43744, 43754, 43762, 43764, 43777, 43782, 43785, 43790, 43793, 43798, 43808, 43814, 43816, 43822, 43968, 44002, 44032, 55203, 55216, 55238, 55243, 55291, 63744, 64109, 64112, 64217, 64256, 64262, 64275, 64279, 64285, 64285, 64287, 64296, 64298, 64310, 64312, 64316, 64318, 64318, 64320, 64321, 64323, 64324, 64326, 64433, 64467, 64829, 64848, 64911, 64914, 64967, 65008, 65019, 65136, 65140, 65142, 65276, 65313, 65338, 65345, 65370, 65382, 65470, 65474, 65479, 65482, 65487, 65490, 65495, 65498, 65500,]; + var unicodeES5IdentifierPart = [170, 170, 181, 181, 186, 186, 192, 214, 216, 246, 248, 705, 710, 721, 736, 740, 748, 748, 750, 750, 768, 884, 886, 887, 890, 893, 902, 902, 904, 906, 908, 908, 910, 929, 931, 1013, 1015, 1153, 1155, 1159, 1162, 1319, 1329, 1366, 1369, 1369, 1377, 1415, 1425, 1469, 1471, 1471, 1473, 1474, 1476, 1477, 1479, 1479, 1488, 1514, 1520, 1522, 1552, 1562, 1568, 1641, 1646, 1747, 1749, 1756, 1759, 1768, 1770, 1788, 1791, 1791, 1808, 1866, 1869, 1969, 1984, 2037, 2042, 2042, 2048, 2093, 2112, 2139, 2208, 2208, 2210, 2220, 2276, 2302, 2304, 2403, 2406, 2415, 2417, 2423, 2425, 2431, 2433, 2435, 2437, 2444, 2447, 2448, 2451, 2472, 2474, 2480, 2482, 2482, 2486, 2489, 2492, 2500, 2503, 2504, 2507, 2510, 2519, 2519, 2524, 2525, 2527, 2531, 2534, 2545, 2561, 2563, 2565, 2570, 2575, 2576, 2579, 2600, 2602, 2608, 2610, 2611, 2613, 2614, 2616, 2617, 2620, 2620, 2622, 2626, 2631, 2632, 2635, 2637, 2641, 2641, 2649, 2652, 2654, 2654, 2662, 2677, 2689, 2691, 2693, 2701, 2703, 2705, 2707, 2728, 2730, 2736, 2738, 2739, 2741, 2745, 2748, 2757, 2759, 2761, 2763, 2765, 2768, 2768, 2784, 2787, 2790, 2799, 2817, 2819, 2821, 2828, 2831, 2832, 2835, 2856, 2858, 2864, 2866, 2867, 2869, 2873, 2876, 2884, 2887, 2888, 2891, 2893, 2902, 2903, 2908, 2909, 2911, 2915, 2918, 2927, 2929, 2929, 2946, 2947, 2949, 2954, 2958, 2960, 2962, 2965, 2969, 2970, 2972, 2972, 2974, 2975, 2979, 2980, 2984, 2986, 2990, 3001, 3006, 3010, 3014, 3016, 3018, 3021, 3024, 3024, 3031, 3031, 3046, 3055, 3073, 3075, 3077, 3084, 3086, 3088, 3090, 3112, 3114, 3123, 3125, 3129, 3133, 3140, 3142, 3144, 3146, 3149, 3157, 3158, 3160, 3161, 3168, 3171, 3174, 3183, 3202, 3203, 3205, 3212, 3214, 3216, 3218, 3240, 3242, 3251, 3253, 3257, 3260, 3268, 3270, 3272, 3274, 3277, 3285, 3286, 3294, 3294, 3296, 3299, 3302, 3311, 3313, 3314, 3330, 3331, 3333, 3340, 3342, 3344, 3346, 3386, 3389, 3396, 3398, 3400, 3402, 3406, 3415, 3415, 3424, 3427, 3430, 3439, 3450, 3455, 3458, 3459, 3461, 3478, 3482, 3505, 3507, 3515, 3517, 3517, 3520, 3526, 3530, 3530, 3535, 3540, 3542, 3542, 3544, 3551, 3570, 3571, 3585, 3642, 3648, 3662, 3664, 3673, 3713, 3714, 3716, 3716, 3719, 3720, 3722, 3722, 3725, 3725, 3732, 3735, 3737, 3743, 3745, 3747, 3749, 3749, 3751, 3751, 3754, 3755, 3757, 3769, 3771, 3773, 3776, 3780, 3782, 3782, 3784, 3789, 3792, 3801, 3804, 3807, 3840, 3840, 3864, 3865, 3872, 3881, 3893, 3893, 3895, 3895, 3897, 3897, 3902, 3911, 3913, 3948, 3953, 3972, 3974, 3991, 3993, 4028, 4038, 4038, 4096, 4169, 4176, 4253, 4256, 4293, 4295, 4295, 4301, 4301, 4304, 4346, 4348, 4680, 4682, 4685, 4688, 4694, 4696, 4696, 4698, 4701, 4704, 4744, 4746, 4749, 4752, 4784, 4786, 4789, 4792, 4798, 4800, 4800, 4802, 4805, 4808, 4822, 4824, 4880, 4882, 4885, 4888, 4954, 4957, 4959, 4992, 5007, 5024, 5108, 5121, 5740, 5743, 5759, 5761, 5786, 5792, 5866, 5870, 5872, 5888, 5900, 5902, 5908, 5920, 5940, 5952, 5971, 5984, 5996, 5998, 6000, 6002, 6003, 6016, 6099, 6103, 6103, 6108, 6109, 6112, 6121, 6155, 6157, 6160, 6169, 6176, 6263, 6272, 6314, 6320, 6389, 6400, 6428, 6432, 6443, 6448, 6459, 6470, 6509, 6512, 6516, 6528, 6571, 6576, 6601, 6608, 6617, 6656, 6683, 6688, 6750, 6752, 6780, 6783, 6793, 6800, 6809, 6823, 6823, 6912, 6987, 6992, 7001, 7019, 7027, 7040, 7155, 7168, 7223, 7232, 7241, 7245, 7293, 7376, 7378, 7380, 7414, 7424, 7654, 7676, 7957, 7960, 7965, 7968, 8005, 8008, 8013, 8016, 8023, 8025, 8025, 8027, 8027, 8029, 8029, 8031, 8061, 8064, 8116, 8118, 8124, 8126, 8126, 8130, 8132, 8134, 8140, 8144, 8147, 8150, 8155, 8160, 8172, 8178, 8180, 8182, 8188, 8204, 8205, 8255, 8256, 8276, 8276, 8305, 8305, 8319, 8319, 8336, 8348, 8400, 8412, 8417, 8417, 8421, 8432, 8450, 8450, 8455, 8455, 8458, 8467, 8469, 8469, 8473, 8477, 8484, 8484, 8486, 8486, 8488, 8488, 8490, 8493, 8495, 8505, 8508, 8511, 8517, 8521, 8526, 8526, 8544, 8584, 11264, 11310, 11312, 11358, 11360, 11492, 11499, 11507, 11520, 11557, 11559, 11559, 11565, 11565, 11568, 11623, 11631, 11631, 11647, 11670, 11680, 11686, 11688, 11694, 11696, 11702, 11704, 11710, 11712, 11718, 11720, 11726, 11728, 11734, 11736, 11742, 11744, 11775, 11823, 11823, 12293, 12295, 12321, 12335, 12337, 12341, 12344, 12348, 12353, 12438, 12441, 12442, 12445, 12447, 12449, 12538, 12540, 12543, 12549, 12589, 12593, 12686, 12704, 12730, 12784, 12799, 13312, 19893, 19968, 40908, 40960, 42124, 42192, 42237, 42240, 42508, 42512, 42539, 42560, 42607, 42612, 42621, 42623, 42647, 42655, 42737, 42775, 42783, 42786, 42888, 42891, 42894, 42896, 42899, 42912, 42922, 43000, 43047, 43072, 43123, 43136, 43204, 43216, 43225, 43232, 43255, 43259, 43259, 43264, 43309, 43312, 43347, 43360, 43388, 43392, 43456, 43471, 43481, 43520, 43574, 43584, 43597, 43600, 43609, 43616, 43638, 43642, 43643, 43648, 43714, 43739, 43741, 43744, 43759, 43762, 43766, 43777, 43782, 43785, 43790, 43793, 43798, 43808, 43814, 43816, 43822, 43968, 44010, 44012, 44013, 44016, 44025, 44032, 55203, 55216, 55238, 55243, 55291, 63744, 64109, 64112, 64217, 64256, 64262, 64275, 64279, 64285, 64296, 64298, 64310, 64312, 64316, 64318, 64318, 64320, 64321, 64323, 64324, 64326, 64433, 64467, 64829, 64848, 64911, 64914, 64967, 65008, 65019, 65024, 65039, 65056, 65062, 65075, 65076, 65101, 65103, 65136, 65140, 65142, 65276, 65296, 65305, 65313, 65338, 65343, 65343, 65345, 65370, 65382, 65470, 65474, 65479, 65482, 65487, 65490, 65495, 65498, 65500,]; + function lookupInUnicodeMap(code, map) { + if (code < map[0]) { + return false; + } + var lo = 0; + var hi = map.length; + var mid; + while (lo + 1 < hi) { + mid = lo + (hi - lo) / 2; + mid -= mid % 2; + if (map[mid] <= code && code <= map[mid + 1]) { + return true; + } + if (code < map[mid]) { + hi = mid; + } + else { + lo = mid + 2; + } + } + return false; + } + function isUnicodeIdentifierStart(code, languageVersion) { + return languageVersion >= 1 ? + lookupInUnicodeMap(code, unicodeES5IdentifierStart) : + lookupInUnicodeMap(code, unicodeES3IdentifierStart); + } + ts.isUnicodeIdentifierStart = isUnicodeIdentifierStart; + function isUnicodeIdentifierPart(code, languageVersion) { + return languageVersion >= 1 ? + lookupInUnicodeMap(code, unicodeES5IdentifierPart) : + lookupInUnicodeMap(code, unicodeES3IdentifierPart); + } + function makeReverseMap(source) { + var result = []; + for (var name_2 in source) { + if (source.hasOwnProperty(name_2)) { + result[source[name_2]] = name_2; + } + } + return result; + } + var tokenStrings = makeReverseMap(textToToken); + function tokenToString(t) { + return tokenStrings[t]; + } + ts.tokenToString = tokenToString; + function stringToToken(s) { + return textToToken[s]; + } + ts.stringToToken = stringToToken; + function computeLineStarts(text) { + var result = new Array(); + var pos = 0; + var lineStart = 0; + while (pos < text.length) { + var ch = text.charCodeAt(pos++); + switch (ch) { + case 13: + if (text.charCodeAt(pos) === 10) { + pos++; + } + case 10: + result.push(lineStart); + lineStart = pos; + break; + default: + if (ch > 127 && isLineBreak(ch)) { + result.push(lineStart); + lineStart = pos; + } + break; + } + } + result.push(lineStart); + return result; + } + ts.computeLineStarts = computeLineStarts; + function getPositionOfLineAndCharacter(sourceFile, line, character) { + return computePositionOfLineAndCharacter(getLineStarts(sourceFile), line, character); + } + ts.getPositionOfLineAndCharacter = getPositionOfLineAndCharacter; + function computePositionOfLineAndCharacter(lineStarts, line, character) { + ts.Debug.assert(line >= 0 && line < lineStarts.length); + return lineStarts[line] + character; + } + ts.computePositionOfLineAndCharacter = computePositionOfLineAndCharacter; + function getLineStarts(sourceFile) { + return sourceFile.lineMap || (sourceFile.lineMap = computeLineStarts(sourceFile.text)); + } + ts.getLineStarts = getLineStarts; + function computeLineAndCharacterOfPosition(lineStarts, position) { + var lineNumber = ts.binarySearch(lineStarts, position); + if (lineNumber < 0) { + lineNumber = ~lineNumber - 1; + } + return { + line: lineNumber, + character: position - lineStarts[lineNumber] + }; + } + ts.computeLineAndCharacterOfPosition = computeLineAndCharacterOfPosition; + function getLineAndCharacterOfPosition(sourceFile, position) { + return computeLineAndCharacterOfPosition(getLineStarts(sourceFile), position); + } + ts.getLineAndCharacterOfPosition = getLineAndCharacterOfPosition; + var hasOwnProperty = Object.prototype.hasOwnProperty; + function isWhiteSpace(ch) { + return ch === 32 || + ch === 9 || + ch === 11 || + ch === 12 || + ch === 160 || + ch === 133 || + ch === 5760 || + ch >= 8192 && ch <= 8203 || + ch === 8239 || + ch === 8287 || + ch === 12288 || + ch === 65279; + } + ts.isWhiteSpace = isWhiteSpace; + function isLineBreak(ch) { + // ES5 7.3: + // The ECMAScript line terminator characters are listed in Table 3. + // Table 3 � Line Terminator Characters + // Code Unit Value Name Formal Name + // \u000A Line Feed + // \u000D Carriage Return + // \u2028 Line separator + // \u2029 Paragraph separator + // Only the characters in Table 3 are treated as line terminators. Other new line or line + // breaking characters are treated as white space but not as line terminators. + return ch === 10 || + ch === 13 || + ch === 8232 || + ch === 8233; + } + ts.isLineBreak = isLineBreak; + function isDigit(ch) { + return ch >= 48 && ch <= 57; + } + function isOctalDigit(ch) { + return ch >= 48 && ch <= 55; + } + ts.isOctalDigit = isOctalDigit; + function skipTrivia(text, pos, stopAfterLineBreak) { + while (true) { + var ch = text.charCodeAt(pos); + switch (ch) { + case 13: + if (text.charCodeAt(pos + 1) === 10) { + pos++; + } + case 10: + pos++; + if (stopAfterLineBreak) { + return pos; + } + continue; + case 9: + case 11: + case 12: + case 32: + pos++; + continue; + case 47: + if (text.charCodeAt(pos + 1) === 47) { + pos += 2; + while (pos < text.length) { + if (isLineBreak(text.charCodeAt(pos))) { + break; + } + pos++; + } + continue; + } + if (text.charCodeAt(pos + 1) === 42) { + pos += 2; + while (pos < text.length) { + if (text.charCodeAt(pos) === 42 && text.charCodeAt(pos + 1) === 47) { + pos += 2; + break; + } + pos++; + } + continue; + } + break; + case 60: + case 61: + case 62: + if (isConflictMarkerTrivia(text, pos)) { + pos = scanConflictMarkerTrivia(text, pos); + continue; + } + break; + default: + if (ch > 127 && (isWhiteSpace(ch) || isLineBreak(ch))) { + pos++; + continue; + } + break; + } + return pos; + } + } + ts.skipTrivia = skipTrivia; + var mergeConflictMarkerLength = "<<<<<<<".length; + function isConflictMarkerTrivia(text, pos) { + ts.Debug.assert(pos >= 0); + if (pos === 0 || isLineBreak(text.charCodeAt(pos - 1))) { + var ch = text.charCodeAt(pos); + if ((pos + mergeConflictMarkerLength) < text.length) { + for (var i = 0, n = mergeConflictMarkerLength; i < n; i++) { + if (text.charCodeAt(pos + i) !== ch) { + return false; + } + } + return ch === 61 || + text.charCodeAt(pos + mergeConflictMarkerLength) === 32; + } + } + return false; + } + function scanConflictMarkerTrivia(text, pos, error) { + if (error) { + error(ts.Diagnostics.Merge_conflict_marker_encountered, mergeConflictMarkerLength); + } + var ch = text.charCodeAt(pos); + var len = text.length; + if (ch === 60 || ch === 62) { + while (pos < len && !isLineBreak(text.charCodeAt(pos))) { + pos++; + } + } + else { + ts.Debug.assert(ch === 61); + while (pos < len) { + var ch_1 = text.charCodeAt(pos); + if (ch_1 === 62 && isConflictMarkerTrivia(text, pos)) { + break; + } + pos++; + } + } + return pos; + } + function getCommentRanges(text, pos, trailing) { + var result; + var collecting = trailing || pos === 0; + while (true) { + var ch = text.charCodeAt(pos); + switch (ch) { + case 13: + if (text.charCodeAt(pos + 1) === 10) { + pos++; + } + case 10: + pos++; + if (trailing) { + return result; + } + collecting = true; + if (result && result.length) { + result[result.length - 1].hasTrailingNewLine = true; + } + continue; + case 9: + case 11: + case 12: + case 32: + pos++; + continue; + case 47: + var nextChar = text.charCodeAt(pos + 1); + var hasTrailingNewLine = false; + if (nextChar === 47 || nextChar === 42) { + var startPos = pos; + pos += 2; + if (nextChar === 47) { + while (pos < text.length) { + if (isLineBreak(text.charCodeAt(pos))) { + hasTrailingNewLine = true; + break; + } + pos++; + } + } + else { + while (pos < text.length) { + if (text.charCodeAt(pos) === 42 && text.charCodeAt(pos + 1) === 47) { + pos += 2; + break; + } + pos++; + } + } + if (collecting) { + if (!result) { + result = []; + } + result.push({ pos: startPos, end: pos, hasTrailingNewLine: hasTrailingNewLine }); + } + continue; + } + break; + default: + if (ch > 127 && (isWhiteSpace(ch) || isLineBreak(ch))) { + if (result && result.length && isLineBreak(ch)) { + result[result.length - 1].hasTrailingNewLine = true; + } + pos++; + continue; + } + break; + } + return result; + } + } + function getLeadingCommentRanges(text, pos) { + return getCommentRanges(text, pos, false); + } + ts.getLeadingCommentRanges = getLeadingCommentRanges; + function getTrailingCommentRanges(text, pos) { + return getCommentRanges(text, pos, true); + } + ts.getTrailingCommentRanges = getTrailingCommentRanges; + function isIdentifierStart(ch, languageVersion) { + return ch >= 65 && ch <= 90 || ch >= 97 && ch <= 122 || + ch === 36 || ch === 95 || + ch > 127 && isUnicodeIdentifierStart(ch, languageVersion); + } + ts.isIdentifierStart = isIdentifierStart; + function isIdentifierPart(ch, languageVersion) { + return ch >= 65 && ch <= 90 || ch >= 97 && ch <= 122 || + ch >= 48 && ch <= 57 || ch === 36 || ch === 95 || + ch > 127 && isUnicodeIdentifierPart(ch, languageVersion); + } + ts.isIdentifierPart = isIdentifierPart; + function createScanner(languageVersion, skipTrivia, text, onError) { + var pos; + var len; + var startPos; + var tokenPos; + var token; + var tokenValue; + var precedingLineBreak; + var hasExtendedUnicodeEscape; + var tokenIsUnterminated; + function error(message, length) { + if (onError) { + onError(message, length || 0); + } + } + function isIdentifierStart(ch) { + return ch >= 65 && ch <= 90 || ch >= 97 && ch <= 122 || + ch === 36 || ch === 95 || + ch > 127 && isUnicodeIdentifierStart(ch, languageVersion); + } + function isIdentifierPart(ch) { + return ch >= 65 && ch <= 90 || ch >= 97 && ch <= 122 || + ch >= 48 && ch <= 57 || ch === 36 || ch === 95 || + ch > 127 && isUnicodeIdentifierPart(ch, languageVersion); + } + function scanNumber() { + var start = pos; + while (isDigit(text.charCodeAt(pos))) + pos++; + if (text.charCodeAt(pos) === 46) { + pos++; + while (isDigit(text.charCodeAt(pos))) + pos++; + } + var end = pos; + if (text.charCodeAt(pos) === 69 || text.charCodeAt(pos) === 101) { + pos++; + if (text.charCodeAt(pos) === 43 || text.charCodeAt(pos) === 45) + pos++; + if (isDigit(text.charCodeAt(pos))) { + pos++; + while (isDigit(text.charCodeAt(pos))) + pos++; + end = pos; + } + else { + error(ts.Diagnostics.Digit_expected); + } + } + return +(text.substring(start, end)); + } + function scanOctalDigits() { + var start = pos; + while (isOctalDigit(text.charCodeAt(pos))) { + pos++; + } + return +(text.substring(start, pos)); + } + function scanExactNumberOfHexDigits(count) { + return scanHexDigits(count, false); + } + function scanMinimumNumberOfHexDigits(count) { + return scanHexDigits(count, true); + } + function scanHexDigits(minCount, scanAsManyAsPossible) { + var digits = 0; + var value = 0; + while (digits < minCount || scanAsManyAsPossible) { + var ch = text.charCodeAt(pos); + if (ch >= 48 && ch <= 57) { + value = value * 16 + ch - 48; + } + else if (ch >= 65 && ch <= 70) { + value = value * 16 + ch - 65 + 10; + } + else if (ch >= 97 && ch <= 102) { + value = value * 16 + ch - 97 + 10; + } + else { + break; + } + pos++; + digits++; + } + if (digits < minCount) { + value = -1; + } + return value; + } + function scanString() { + var quote = text.charCodeAt(pos++); + var result = ""; + var start = pos; + while (true) { + if (pos >= len) { + result += text.substring(start, pos); + tokenIsUnterminated = true; + error(ts.Diagnostics.Unterminated_string_literal); + break; + } + var ch = text.charCodeAt(pos); + if (ch === quote) { + result += text.substring(start, pos); + pos++; + break; + } + if (ch === 92) { + result += text.substring(start, pos); + result += scanEscapeSequence(); + start = pos; + continue; + } + if (isLineBreak(ch)) { + result += text.substring(start, pos); + tokenIsUnterminated = true; + error(ts.Diagnostics.Unterminated_string_literal); + break; + } + pos++; + } + return result; + } + function scanTemplateAndSetTokenValue() { + var startedWithBacktick = text.charCodeAt(pos) === 96; + pos++; + var start = pos; + var contents = ""; + var resultingToken; + while (true) { + if (pos >= len) { + contents += text.substring(start, pos); + tokenIsUnterminated = true; + error(ts.Diagnostics.Unterminated_template_literal); + resultingToken = startedWithBacktick ? 10 : 13; + break; + } + var currChar = text.charCodeAt(pos); + if (currChar === 96) { + contents += text.substring(start, pos); + pos++; + resultingToken = startedWithBacktick ? 10 : 13; + break; + } + if (currChar === 36 && pos + 1 < len && text.charCodeAt(pos + 1) === 123) { + contents += text.substring(start, pos); + pos += 2; + resultingToken = startedWithBacktick ? 11 : 12; + break; + } + if (currChar === 92) { + contents += text.substring(start, pos); + contents += scanEscapeSequence(); + start = pos; + continue; + } + if (currChar === 13) { + contents += text.substring(start, pos); + pos++; + if (pos < len && text.charCodeAt(pos) === 10) { + pos++; + } + contents += "\n"; + start = pos; + continue; + } + pos++; + } + ts.Debug.assert(resultingToken !== undefined); + tokenValue = contents; + return resultingToken; + } + function scanEscapeSequence() { + pos++; + if (pos >= len) { + error(ts.Diagnostics.Unexpected_end_of_text); + return ""; + } + var ch = text.charCodeAt(pos++); + switch (ch) { + case 48: + return "\0"; + case 98: + return "\b"; + case 116: + return "\t"; + case 110: + return "\n"; + case 118: + return "\v"; + case 102: + return "\f"; + case 114: + return "\r"; + case 39: + return "\'"; + case 34: + return "\""; + case 117: + if (pos < len && text.charCodeAt(pos) === 123) { + hasExtendedUnicodeEscape = true; + pos++; + return scanExtendedUnicodeEscape(); + } + return scanHexadecimalEscape(4); + case 120: + return scanHexadecimalEscape(2); + case 13: + if (pos < len && text.charCodeAt(pos) === 10) { + pos++; + } + case 10: + case 8232: + case 8233: + return ""; + default: + return String.fromCharCode(ch); + } + } + function scanHexadecimalEscape(numDigits) { + var escapedValue = scanExactNumberOfHexDigits(numDigits); + if (escapedValue >= 0) { + return String.fromCharCode(escapedValue); + } + else { + error(ts.Diagnostics.Hexadecimal_digit_expected); + return ""; + } + } + function scanExtendedUnicodeEscape() { + var escapedValue = scanMinimumNumberOfHexDigits(1); + var isInvalidExtendedEscape = false; + if (escapedValue < 0) { + error(ts.Diagnostics.Hexadecimal_digit_expected); + isInvalidExtendedEscape = true; + } + else if (escapedValue > 0x10FFFF) { + error(ts.Diagnostics.An_extended_Unicode_escape_value_must_be_between_0x0_and_0x10FFFF_inclusive); + isInvalidExtendedEscape = true; + } + if (pos >= len) { + error(ts.Diagnostics.Unexpected_end_of_text); + isInvalidExtendedEscape = true; + } + else if (text.charCodeAt(pos) == 125) { + pos++; + } + else { + error(ts.Diagnostics.Unterminated_Unicode_escape_sequence); + isInvalidExtendedEscape = true; + } + if (isInvalidExtendedEscape) { + return ""; + } + return utf16EncodeAsString(escapedValue); + } + function utf16EncodeAsString(codePoint) { + ts.Debug.assert(0x0 <= codePoint && codePoint <= 0x10FFFF); + if (codePoint <= 65535) { + return String.fromCharCode(codePoint); + } + var codeUnit1 = Math.floor((codePoint - 65536) / 1024) + 0xD800; + var codeUnit2 = ((codePoint - 65536) % 1024) + 0xDC00; + return String.fromCharCode(codeUnit1, codeUnit2); + } + function peekUnicodeEscape() { + if (pos + 5 < len && text.charCodeAt(pos + 1) === 117) { + var start = pos; + pos += 2; + var value = scanExactNumberOfHexDigits(4); + pos = start; + return value; + } + return -1; + } + function scanIdentifierParts() { + var result = ""; + var start = pos; + while (pos < len) { + var ch = text.charCodeAt(pos); + if (isIdentifierPart(ch)) { + pos++; + } + else if (ch === 92) { + ch = peekUnicodeEscape(); + if (!(ch >= 0 && isIdentifierPart(ch))) { + break; + } + result += text.substring(start, pos); + result += String.fromCharCode(ch); + pos += 6; + start = pos; + } + else { + break; + } + } + result += text.substring(start, pos); + return result; + } + function getIdentifierToken() { + var len = tokenValue.length; + if (len >= 2 && len <= 11) { + var ch = tokenValue.charCodeAt(0); + if (ch >= 97 && ch <= 122 && hasOwnProperty.call(textToToken, tokenValue)) { + return token = textToToken[tokenValue]; + } + } + return token = 65; + } + function scanBinaryOrOctalDigits(base) { + ts.Debug.assert(base !== 2 || base !== 8, "Expected either base 2 or base 8"); + var value = 0; + var numberOfDigits = 0; + while (true) { + var ch = text.charCodeAt(pos); + var valueOfCh = ch - 48; + if (!isDigit(ch) || valueOfCh >= base) { + break; + } + value = value * base + valueOfCh; + pos++; + numberOfDigits++; + } + if (numberOfDigits === 0) { + return -1; + } + return value; + } + function scan() { + startPos = pos; + hasExtendedUnicodeEscape = false; + precedingLineBreak = false; + tokenIsUnterminated = false; + while (true) { + tokenPos = pos; + if (pos >= len) { + return token = 1; + } + var ch = text.charCodeAt(pos); + switch (ch) { + case 10: + case 13: + precedingLineBreak = true; + if (skipTrivia) { + pos++; + continue; + } + else { + if (ch === 13 && pos + 1 < len && text.charCodeAt(pos + 1) === 10) { + pos += 2; + } + else { + pos++; + } + return token = 4; + } + case 9: + case 11: + case 12: + case 32: + if (skipTrivia) { + pos++; + continue; + } + else { + while (pos < len && isWhiteSpace(text.charCodeAt(pos))) { + pos++; + } + return token = 5; + } + case 33: + if (text.charCodeAt(pos + 1) === 61) { + if (text.charCodeAt(pos + 2) === 61) { + return pos += 3, token = 31; + } + return pos += 2, token = 29; + } + return pos++, token = 46; + case 34: + case 39: + tokenValue = scanString(); + return token = 8; + case 96: + return token = scanTemplateAndSetTokenValue(); + case 37: + if (text.charCodeAt(pos + 1) === 61) { + return pos += 2, token = 58; + } + return pos++, token = 37; + case 38: + if (text.charCodeAt(pos + 1) === 38) { + return pos += 2, token = 48; + } + if (text.charCodeAt(pos + 1) === 61) { + return pos += 2, token = 62; + } + return pos++, token = 43; + case 40: + return pos++, token = 16; + case 41: + return pos++, token = 17; + case 42: + if (text.charCodeAt(pos + 1) === 61) { + return pos += 2, token = 56; + } + return pos++, token = 35; + case 43: + if (text.charCodeAt(pos + 1) === 43) { + return pos += 2, token = 38; + } + if (text.charCodeAt(pos + 1) === 61) { + return pos += 2, token = 54; + } + return pos++, token = 33; + case 44: + return pos++, token = 23; + case 45: + if (text.charCodeAt(pos + 1) === 45) { + return pos += 2, token = 39; + } + if (text.charCodeAt(pos + 1) === 61) { + return pos += 2, token = 55; + } + return pos++, token = 34; + case 46: + if (isDigit(text.charCodeAt(pos + 1))) { + tokenValue = "" + scanNumber(); + return token = 7; + } + if (text.charCodeAt(pos + 1) === 46 && text.charCodeAt(pos + 2) === 46) { + return pos += 3, token = 21; + } + return pos++, token = 20; + case 47: + if (text.charCodeAt(pos + 1) === 47) { + pos += 2; + while (pos < len) { + if (isLineBreak(text.charCodeAt(pos))) { + break; + } + pos++; + } + if (skipTrivia) { + continue; + } + else { + return token = 2; + } + } + if (text.charCodeAt(pos + 1) === 42) { + pos += 2; + var commentClosed = false; + while (pos < len) { + var ch_2 = text.charCodeAt(pos); + if (ch_2 === 42 && text.charCodeAt(pos + 1) === 47) { + pos += 2; + commentClosed = true; + break; + } + if (isLineBreak(ch_2)) { + precedingLineBreak = true; + } + pos++; + } + if (!commentClosed) { + error(ts.Diagnostics.Asterisk_Slash_expected); + } + if (skipTrivia) { + continue; + } + else { + tokenIsUnterminated = !commentClosed; + return token = 3; + } + } + if (text.charCodeAt(pos + 1) === 61) { + return pos += 2, token = 57; + } + return pos++, token = 36; + case 48: + if (pos + 2 < len && (text.charCodeAt(pos + 1) === 88 || text.charCodeAt(pos + 1) === 120)) { + pos += 2; + var value = scanMinimumNumberOfHexDigits(1); + if (value < 0) { + error(ts.Diagnostics.Hexadecimal_digit_expected); + value = 0; + } + tokenValue = "" + value; + return token = 7; + } + else if (pos + 2 < len && (text.charCodeAt(pos + 1) === 66 || text.charCodeAt(pos + 1) === 98)) { + pos += 2; + var value = scanBinaryOrOctalDigits(2); + if (value < 0) { + error(ts.Diagnostics.Binary_digit_expected); + value = 0; + } + tokenValue = "" + value; + return token = 7; + } + else if (pos + 2 < len && (text.charCodeAt(pos + 1) === 79 || text.charCodeAt(pos + 1) === 111)) { + pos += 2; + var value = scanBinaryOrOctalDigits(8); + if (value < 0) { + error(ts.Diagnostics.Octal_digit_expected); + value = 0; + } + tokenValue = "" + value; + return token = 7; + } + if (pos + 1 < len && isOctalDigit(text.charCodeAt(pos + 1))) { + tokenValue = "" + scanOctalDigits(); + return token = 7; + } + case 49: + case 50: + case 51: + case 52: + case 53: + case 54: + case 55: + case 56: + case 57: + tokenValue = "" + scanNumber(); + return token = 7; + case 58: + return pos++, token = 51; + case 59: + return pos++, token = 22; + case 60: + if (isConflictMarkerTrivia(text, pos)) { + pos = scanConflictMarkerTrivia(text, pos, error); + if (skipTrivia) { + continue; + } + else { + return token = 6; + } + } + if (text.charCodeAt(pos + 1) === 60) { + if (text.charCodeAt(pos + 2) === 61) { + return pos += 3, token = 59; + } + return pos += 2, token = 40; + } + if (text.charCodeAt(pos + 1) === 61) { + return pos += 2, token = 26; + } + return pos++, token = 24; + case 61: + if (isConflictMarkerTrivia(text, pos)) { + pos = scanConflictMarkerTrivia(text, pos, error); + if (skipTrivia) { + continue; + } + else { + return token = 6; + } + } + if (text.charCodeAt(pos + 1) === 61) { + if (text.charCodeAt(pos + 2) === 61) { + return pos += 3, token = 30; + } + return pos += 2, token = 28; + } + if (text.charCodeAt(pos + 1) === 62) { + return pos += 2, token = 32; + } + return pos++, token = 53; + case 62: + if (isConflictMarkerTrivia(text, pos)) { + pos = scanConflictMarkerTrivia(text, pos, error); + if (skipTrivia) { + continue; + } + else { + return token = 6; + } + } + return pos++, token = 25; + case 63: + return pos++, token = 50; + case 91: + return pos++, token = 18; + case 93: + return pos++, token = 19; + case 94: + if (text.charCodeAt(pos + 1) === 61) { + return pos += 2, token = 64; + } + return pos++, token = 45; + case 123: + return pos++, token = 14; + case 124: + if (text.charCodeAt(pos + 1) === 124) { + return pos += 2, token = 49; + } + if (text.charCodeAt(pos + 1) === 61) { + return pos += 2, token = 63; + } + return pos++, token = 44; + case 125: + return pos++, token = 15; + case 126: + return pos++, token = 47; + case 64: + return pos++, token = 52; + case 92: + var cookedChar = peekUnicodeEscape(); + if (cookedChar >= 0 && isIdentifierStart(cookedChar)) { + pos += 6; + tokenValue = String.fromCharCode(cookedChar) + scanIdentifierParts(); + return token = getIdentifierToken(); + } + error(ts.Diagnostics.Invalid_character); + return pos++, token = 0; + default: + if (isIdentifierStart(ch)) { + pos++; + while (pos < len && isIdentifierPart(ch = text.charCodeAt(pos))) + pos++; + tokenValue = text.substring(tokenPos, pos); + if (ch === 92) { + tokenValue += scanIdentifierParts(); + } + return token = getIdentifierToken(); + } + else if (isWhiteSpace(ch)) { + pos++; + continue; + } + else if (isLineBreak(ch)) { + precedingLineBreak = true; + pos++; + continue; + } + error(ts.Diagnostics.Invalid_character); + return pos++, token = 0; + } + } + } + function reScanGreaterToken() { + if (token === 25) { + if (text.charCodeAt(pos) === 62) { + if (text.charCodeAt(pos + 1) === 62) { + if (text.charCodeAt(pos + 2) === 61) { + return pos += 3, token = 61; + } + return pos += 2, token = 42; + } + if (text.charCodeAt(pos + 1) === 61) { + return pos += 2, token = 60; + } + return pos++, token = 41; + } + if (text.charCodeAt(pos) === 61) { + return pos++, token = 27; + } + } + return token; + } + function reScanSlashToken() { + if (token === 36 || token === 57) { + var p = tokenPos + 1; + var inEscape = false; + var inCharacterClass = false; + while (true) { + if (p >= len) { + tokenIsUnterminated = true; + error(ts.Diagnostics.Unterminated_regular_expression_literal); + break; + } + var ch = text.charCodeAt(p); + if (isLineBreak(ch)) { + tokenIsUnterminated = true; + error(ts.Diagnostics.Unterminated_regular_expression_literal); + break; + } + if (inEscape) { + inEscape = false; + } + else if (ch === 47 && !inCharacterClass) { + p++; + break; + } + else if (ch === 91) { + inCharacterClass = true; + } + else if (ch === 92) { + inEscape = true; + } + else if (ch === 93) { + inCharacterClass = false; + } + p++; + } + while (p < len && isIdentifierPart(text.charCodeAt(p))) { + p++; + } + pos = p; + tokenValue = text.substring(tokenPos, pos); + token = 9; + } + return token; + } + function reScanTemplateToken() { + ts.Debug.assert(token === 15, "'reScanTemplateToken' should only be called on a '}'"); + pos = tokenPos; + return token = scanTemplateAndSetTokenValue(); + } + function speculationHelper(callback, isLookahead) { + var savePos = pos; + var saveStartPos = startPos; + var saveTokenPos = tokenPos; + var saveToken = token; + var saveTokenValue = tokenValue; + var savePrecedingLineBreak = precedingLineBreak; + var result = callback(); + if (!result || isLookahead) { + pos = savePos; + startPos = saveStartPos; + tokenPos = saveTokenPos; + token = saveToken; + tokenValue = saveTokenValue; + precedingLineBreak = savePrecedingLineBreak; + } + return result; + } + function lookAhead(callback) { + return speculationHelper(callback, true); + } + function tryScan(callback) { + return speculationHelper(callback, false); + } + function setText(newText) { + text = newText || ""; + len = text.length; + setTextPos(0); + } + function setTextPos(textPos) { + pos = textPos; + startPos = textPos; + tokenPos = textPos; + token = 0; + precedingLineBreak = false; + } + setText(text); + return { + getStartPos: function () { return startPos; }, + getTextPos: function () { return pos; }, + getToken: function () { return token; }, + getTokenPos: function () { return tokenPos; }, + getTokenText: function () { return text.substring(tokenPos, pos); }, + getTokenValue: function () { return tokenValue; }, + hasExtendedUnicodeEscape: function () { return hasExtendedUnicodeEscape; }, + hasPrecedingLineBreak: function () { return precedingLineBreak; }, + isIdentifier: function () { return token === 65 || token > 101; }, + isReservedWord: function () { return token >= 66 && token <= 101; }, + isUnterminated: function () { return tokenIsUnterminated; }, + reScanGreaterToken: reScanGreaterToken, + reScanSlashToken: reScanSlashToken, + reScanTemplateToken: reScanTemplateToken, + scan: scan, + setText: setText, + setTextPos: setTextPos, + tryScan: tryScan, + lookAhead: lookAhead + }; + } + ts.createScanner = createScanner; +})(ts || (ts = {})); +/// +/// +/// +/// +var ts; +(function (ts) { + ts.optionDeclarations = [ + { + name: "charset", + type: "string" + }, + { + name: "declaration", + shortName: "d", + type: "boolean", + description: ts.Diagnostics.Generates_corresponding_d_ts_file + }, + { + name: "diagnostics", + type: "boolean" + }, + { + name: "emitBOM", + type: "boolean" + }, + { + name: "help", + shortName: "h", + type: "boolean", + description: ts.Diagnostics.Print_this_message + }, + { + name: "listFiles", + type: "boolean" + }, + { + name: "locale", + type: "string" + }, + { + name: "mapRoot", + type: "string", + isFilePath: true, + description: ts.Diagnostics.Specifies_the_location_where_debugger_should_locate_map_files_instead_of_generated_locations, + paramType: ts.Diagnostics.LOCATION + }, + { + name: "module", + shortName: "m", + type: { + "commonjs": 1, + "amd": 2 + }, + description: ts.Diagnostics.Specify_module_code_generation_Colon_commonjs_or_amd, + paramType: ts.Diagnostics.KIND, + error: ts.Diagnostics.Argument_for_module_option_must_be_commonjs_or_amd + }, + { + name: "noEmit", + type: "boolean", + description: ts.Diagnostics.Do_not_emit_outputs + }, + { + name: "noEmitOnError", + type: "boolean", + description: ts.Diagnostics.Do_not_emit_outputs_if_any_type_checking_errors_were_reported + }, + { + name: "noImplicitAny", + type: "boolean", + description: ts.Diagnostics.Raise_error_on_expressions_and_declarations_with_an_implied_any_type + }, + { + name: "noLib", + type: "boolean" + }, + { + name: "noResolve", + type: "boolean" + }, + { + name: "out", + type: "string", + description: ts.Diagnostics.Concatenate_and_emit_output_to_single_file, + paramType: ts.Diagnostics.FILE + }, + { + name: "outDir", + type: "string", + isFilePath: true, + description: ts.Diagnostics.Redirect_output_structure_to_the_directory, + paramType: ts.Diagnostics.DIRECTORY + }, + { + name: "preserveConstEnums", + type: "boolean", + description: ts.Diagnostics.Do_not_erase_const_enum_declarations_in_generated_code + }, + { + name: "project", + shortName: "p", + type: "string", + isFilePath: true, + description: ts.Diagnostics.Compile_the_project_in_the_given_directory, + paramType: ts.Diagnostics.DIRECTORY + }, + { + name: "removeComments", + type: "boolean", + description: ts.Diagnostics.Do_not_emit_comments_to_output + }, + { + name: "separateCompilation", + type: "boolean" + }, + { + name: "sourceMap", + type: "boolean", + description: ts.Diagnostics.Generates_corresponding_map_file + }, + { + name: "sourceRoot", + type: "string", + isFilePath: true, + description: ts.Diagnostics.Specifies_the_location_where_debugger_should_locate_TypeScript_files_instead_of_source_locations, + paramType: ts.Diagnostics.LOCATION + }, + { + name: "suppressImplicitAnyIndexErrors", + type: "boolean", + description: ts.Diagnostics.Suppress_noImplicitAny_errors_for_indexing_objects_lacking_index_signatures + }, + { + name: "stripInternal", + type: "boolean", + description: ts.Diagnostics.Do_not_emit_declarations_for_code_that_has_an_internal_annotation, + experimental: true + }, + { + name: "target", + shortName: "t", + type: { "es3": 0, "es5": 1, "es6": 2 }, + description: ts.Diagnostics.Specify_ECMAScript_target_version_Colon_ES3_default_ES5_or_ES6_experimental, + paramType: ts.Diagnostics.VERSION, + error: ts.Diagnostics.Argument_for_target_option_must_be_es3_es5_or_es6 + }, + { + name: "version", + shortName: "v", + type: "boolean", + description: ts.Diagnostics.Print_the_compiler_s_version + }, + { + name: "watch", + shortName: "w", + type: "boolean", + description: ts.Diagnostics.Watch_input_files + } + ]; + function parseCommandLine(commandLine) { + var options = {}; + var fileNames = []; + var errors = []; + var shortOptionNames = {}; + var optionNameMap = {}; + ts.forEach(ts.optionDeclarations, function (option) { + optionNameMap[option.name.toLowerCase()] = option; + if (option.shortName) { + shortOptionNames[option.shortName] = option.name; + } + }); + parseStrings(commandLine); + return { + options: options, + fileNames: fileNames, + errors: errors + }; + function parseStrings(args) { + var i = 0; + while (i < args.length) { + var s = args[i++]; + if (s.charCodeAt(0) === 64) { + parseResponseFile(s.slice(1)); + } + else if (s.charCodeAt(0) === 45) { + s = s.slice(s.charCodeAt(1) === 45 ? 2 : 1).toLowerCase(); + if (ts.hasProperty(shortOptionNames, s)) { + s = shortOptionNames[s]; + } + if (ts.hasProperty(optionNameMap, s)) { + var opt = optionNameMap[s]; + if (!args[i] && opt.type !== "boolean") { + errors.push(ts.createCompilerDiagnostic(ts.Diagnostics.Compiler_option_0_expects_an_argument, opt.name)); + } + switch (opt.type) { + case "number": + options[opt.name] = parseInt(args[i++]); + break; + case "boolean": + options[opt.name] = true; + break; + case "string": + options[opt.name] = args[i++] || ""; + break; + default: + var map = opt.type; + var key = (args[i++] || "").toLowerCase(); + if (ts.hasProperty(map, key)) { + options[opt.name] = map[key]; + } + else { + errors.push(ts.createCompilerDiagnostic(opt.error)); + } + } + } + else { + errors.push(ts.createCompilerDiagnostic(ts.Diagnostics.Unknown_compiler_option_0, s)); + } + } + else { + fileNames.push(s); + } + } + } + function parseResponseFile(fileName) { + var text = ts.sys.readFile(fileName); + if (!text) { + errors.push(ts.createCompilerDiagnostic(ts.Diagnostics.File_0_not_found, fileName)); + return; + } + var args = []; + var pos = 0; + while (true) { + while (pos < text.length && text.charCodeAt(pos) <= 32) + pos++; + if (pos >= text.length) + break; + var start = pos; + if (text.charCodeAt(start) === 34) { + pos++; + while (pos < text.length && text.charCodeAt(pos) !== 34) + pos++; + if (pos < text.length) { + args.push(text.substring(start + 1, pos)); + pos++; + } + else { + errors.push(ts.createCompilerDiagnostic(ts.Diagnostics.Unterminated_quoted_string_in_response_file_0, fileName)); + } + } + else { + while (text.charCodeAt(pos) > 32) + pos++; + args.push(text.substring(start, pos)); + } + } + parseStrings(args); + } + } + ts.parseCommandLine = parseCommandLine; + function readConfigFile(fileName) { + try { + var text = ts.sys.readFile(fileName); + return /\S/.test(text) ? JSON.parse(text) : {}; + } + catch (e) { + } + } + ts.readConfigFile = readConfigFile; + function parseConfigFile(json, basePath) { + var errors = []; + return { + options: getCompilerOptions(), + fileNames: getFiles(), + errors: errors + }; + function getCompilerOptions() { + var options = {}; + var optionNameMap = {}; + ts.forEach(ts.optionDeclarations, function (option) { + optionNameMap[option.name] = option; + }); + var jsonOptions = json["compilerOptions"]; + if (jsonOptions) { + for (var id in jsonOptions) { + if (ts.hasProperty(optionNameMap, id)) { + var opt = optionNameMap[id]; + var optType = opt.type; + var value = jsonOptions[id]; + var expectedType = typeof optType === "string" ? optType : "string"; + if (typeof value === expectedType) { + if (typeof optType !== "string") { + var key = value.toLowerCase(); + if (ts.hasProperty(optType, key)) { + value = optType[key]; + } + else { + errors.push(ts.createCompilerDiagnostic(opt.error)); + value = 0; + } + } + if (opt.isFilePath) { + value = ts.normalizePath(ts.combinePaths(basePath, value)); + } + options[opt.name] = value; + } + else { + errors.push(ts.createCompilerDiagnostic(ts.Diagnostics.Compiler_option_0_requires_a_value_of_type_1, id, expectedType)); + } + } + else { + errors.push(ts.createCompilerDiagnostic(ts.Diagnostics.Unknown_compiler_option_0, id)); + } + } + } + return options; + } + function getFiles() { + var files = []; + if (ts.hasProperty(json, "files")) { + if (json["files"] instanceof Array) { + var files = ts.map(json["files"], function (s) { return ts.combinePaths(basePath, s); }); + } + } + else { + var sysFiles = ts.sys.readDirectory(basePath, ".ts"); + for (var i = 0; i < sysFiles.length; i++) { + var name = sysFiles[i]; + if (!ts.fileExtensionIs(name, ".d.ts") || !ts.contains(sysFiles, name.substr(0, name.length - 5) + ".ts")) { + files.push(name); + } + } + } + return files; + } + } + ts.parseConfigFile = parseConfigFile; +})(ts || (ts = {})); +/// +var ts; +(function (ts) { + function getDeclarationOfKind(symbol, kind) { + var declarations = symbol.declarations; + for (var _i = 0; _i < declarations.length; _i++) { + var declaration = declarations[_i]; + if (declaration.kind === kind) { + return declaration; + } + } + return undefined; + } + ts.getDeclarationOfKind = getDeclarationOfKind; + var stringWriters = []; + function getSingleLineStringWriter() { + if (stringWriters.length == 0) { + var str = ""; + var writeText = function (text) { return str += text; }; + return { + string: function () { return str; }, + writeKeyword: writeText, + writeOperator: writeText, + writePunctuation: writeText, + writeSpace: writeText, + writeStringLiteral: writeText, + writeParameter: writeText, + writeSymbol: writeText, + writeLine: function () { return str += " "; }, + increaseIndent: function () { }, + decreaseIndent: function () { }, + clear: function () { return str = ""; }, + trackSymbol: function () { } + }; + } + return stringWriters.pop(); + } + ts.getSingleLineStringWriter = getSingleLineStringWriter; + function releaseStringWriter(writer) { + writer.clear(); + stringWriters.push(writer); + } + ts.releaseStringWriter = releaseStringWriter; + function getFullWidth(node) { + return node.end - node.pos; + } + ts.getFullWidth = getFullWidth; + function containsParseError(node) { + aggregateChildData(node); + return (node.parserContextFlags & 64) !== 0; + } + ts.containsParseError = containsParseError; + function aggregateChildData(node) { + if (!(node.parserContextFlags & 128)) { + var thisNodeOrAnySubNodesHasError = ((node.parserContextFlags & 32) !== 0) || + ts.forEachChild(node, containsParseError); + if (thisNodeOrAnySubNodesHasError) { + node.parserContextFlags |= 64; + } + node.parserContextFlags |= 128; + } + } + function getSourceFileOfNode(node) { + while (node && node.kind !== 227) { + node = node.parent; + } + return node; + } + ts.getSourceFileOfNode = getSourceFileOfNode; + function getStartPositionOfLine(line, sourceFile) { + ts.Debug.assert(line >= 0); + return ts.getLineStarts(sourceFile)[line]; + } + ts.getStartPositionOfLine = getStartPositionOfLine; + function nodePosToString(node) { + var file = getSourceFileOfNode(node); + var loc = ts.getLineAndCharacterOfPosition(file, node.pos); + return file.fileName + "(" + (loc.line + 1) + "," + (loc.character + 1) + ")"; + } + ts.nodePosToString = nodePosToString; + function getStartPosOfNode(node) { + return node.pos; + } + ts.getStartPosOfNode = getStartPosOfNode; + function nodeIsMissing(node) { + if (!node) { + return true; + } + return node.pos === node.end && node.kind !== 1; + } + ts.nodeIsMissing = nodeIsMissing; + function nodeIsPresent(node) { + return !nodeIsMissing(node); + } + ts.nodeIsPresent = nodeIsPresent; + function getTokenPosOfNode(node, sourceFile) { + if (nodeIsMissing(node)) { + return node.pos; + } + return ts.skipTrivia((sourceFile || getSourceFileOfNode(node)).text, node.pos); + } + ts.getTokenPosOfNode = getTokenPosOfNode; + function getSourceTextOfNodeFromSourceFile(sourceFile, node) { + if (nodeIsMissing(node)) { + return ""; + } + var text = sourceFile.text; + return text.substring(ts.skipTrivia(text, node.pos), node.end); + } + ts.getSourceTextOfNodeFromSourceFile = getSourceTextOfNodeFromSourceFile; + function getTextOfNodeFromSourceText(sourceText, node) { + if (nodeIsMissing(node)) { + return ""; + } + return sourceText.substring(ts.skipTrivia(sourceText, node.pos), node.end); + } + ts.getTextOfNodeFromSourceText = getTextOfNodeFromSourceText; + function getTextOfNode(node) { + return getSourceTextOfNodeFromSourceFile(getSourceFileOfNode(node), node); + } + ts.getTextOfNode = getTextOfNode; + function escapeIdentifier(identifier) { + return identifier.length >= 2 && identifier.charCodeAt(0) === 95 && identifier.charCodeAt(1) === 95 ? "_" + identifier : identifier; + } + ts.escapeIdentifier = escapeIdentifier; + function unescapeIdentifier(identifier) { + return identifier.length >= 3 && identifier.charCodeAt(0) === 95 && identifier.charCodeAt(1) === 95 && identifier.charCodeAt(2) === 95 ? identifier.substr(1) : identifier; + } + ts.unescapeIdentifier = unescapeIdentifier; + function makeIdentifierFromModuleName(moduleName) { + return ts.getBaseFileName(moduleName).replace(/\W/g, "_"); + } + ts.makeIdentifierFromModuleName = makeIdentifierFromModuleName; + function isBlockOrCatchScoped(declaration) { + return (getCombinedNodeFlags(declaration) & 12288) !== 0 || + isCatchClauseVariableDeclaration(declaration); + } + ts.isBlockOrCatchScoped = isBlockOrCatchScoped; + function getEnclosingBlockScopeContainer(node) { + var current = node; + while (current) { + if (isFunctionLike(current)) { + return current; + } + switch (current.kind) { + case 227: + case 207: + case 223: + case 205: + case 186: + case 187: + case 188: + return current; + case 179: + if (!isFunctionLike(current.parent)) { + return current; + } + } + current = current.parent; + } + } + ts.getEnclosingBlockScopeContainer = getEnclosingBlockScopeContainer; + function isCatchClauseVariableDeclaration(declaration) { + return declaration && + declaration.kind === 198 && + declaration.parent && + declaration.parent.kind === 223; + } + ts.isCatchClauseVariableDeclaration = isCatchClauseVariableDeclaration; + function declarationNameToString(name) { + return getFullWidth(name) === 0 ? "(Missing)" : getTextOfNode(name); + } + ts.declarationNameToString = declarationNameToString; + function createDiagnosticForNode(node, message, arg0, arg1, arg2) { + var sourceFile = getSourceFileOfNode(node); + var span = getErrorSpanForNode(sourceFile, node); + return ts.createFileDiagnostic(sourceFile, span.start, span.length, message, arg0, arg1, arg2); + } + ts.createDiagnosticForNode = createDiagnosticForNode; + function createDiagnosticForNodeFromMessageChain(node, messageChain) { + var sourceFile = getSourceFileOfNode(node); + var span = getErrorSpanForNode(sourceFile, node); + return { + file: sourceFile, + start: span.start, + length: span.length, + code: messageChain.code, + category: messageChain.category, + messageText: messageChain.next ? messageChain : messageChain.messageText + }; + } + ts.createDiagnosticForNodeFromMessageChain = createDiagnosticForNodeFromMessageChain; + function getSpanOfTokenAtPosition(sourceFile, pos) { + var scanner = ts.createScanner(sourceFile.languageVersion, true, sourceFile.text); + scanner.setTextPos(pos); + scanner.scan(); + var start = scanner.getTokenPos(); + return createTextSpanFromBounds(start, scanner.getTextPos()); + } + ts.getSpanOfTokenAtPosition = getSpanOfTokenAtPosition; + function getErrorSpanForNode(sourceFile, node) { + var errorNode = node; + switch (node.kind) { + case 227: + var pos_1 = ts.skipTrivia(sourceFile.text, 0, false); + if (pos_1 === sourceFile.text.length) { + return createTextSpan(0, 0); + } + return getSpanOfTokenAtPosition(sourceFile, pos_1); + case 198: + case 152: + case 201: + case 174: + case 202: + case 205: + case 204: + case 226: + case 200: + case 162: + errorNode = node.name; + break; + } + if (errorNode === undefined) { + return getSpanOfTokenAtPosition(sourceFile, node.pos); + } + var pos = nodeIsMissing(errorNode) + ? errorNode.pos + : ts.skipTrivia(sourceFile.text, errorNode.pos); + return createTextSpanFromBounds(pos, errorNode.end); + } + ts.getErrorSpanForNode = getErrorSpanForNode; + function isExternalModule(file) { + return file.externalModuleIndicator !== undefined; + } + ts.isExternalModule = isExternalModule; + function isDeclarationFile(file) { + return (file.flags & 2048) !== 0; + } + ts.isDeclarationFile = isDeclarationFile; + function isConstEnumDeclaration(node) { + return node.kind === 204 && isConst(node); + } + ts.isConstEnumDeclaration = isConstEnumDeclaration; + function walkUpBindingElementsAndPatterns(node) { + while (node && (node.kind === 152 || isBindingPattern(node))) { + node = node.parent; + } + return node; + } + function getCombinedNodeFlags(node) { + node = walkUpBindingElementsAndPatterns(node); + var flags = node.flags; + if (node.kind === 198) { + node = node.parent; + } + if (node && node.kind === 199) { + flags |= node.flags; + node = node.parent; + } + if (node && node.kind === 180) { + flags |= node.flags; + } + return flags; + } + ts.getCombinedNodeFlags = getCombinedNodeFlags; + function isConst(node) { + return !!(getCombinedNodeFlags(node) & 8192); + } + ts.isConst = isConst; + function isLet(node) { + return !!(getCombinedNodeFlags(node) & 4096); + } + ts.isLet = isLet; + function isPrologueDirective(node) { + return node.kind === 182 && node.expression.kind === 8; + } + ts.isPrologueDirective = isPrologueDirective; + function getLeadingCommentRangesOfNode(node, sourceFileOfNode) { + if (node.kind === 129 || node.kind === 128) { + return ts.concatenate(ts.getTrailingCommentRanges(sourceFileOfNode.text, node.pos), ts.getLeadingCommentRanges(sourceFileOfNode.text, node.pos)); + } + else { + return ts.getLeadingCommentRanges(sourceFileOfNode.text, node.pos); + } + } + ts.getLeadingCommentRangesOfNode = getLeadingCommentRangesOfNode; + function getJsDocComments(node, sourceFileOfNode) { + return ts.filter(getLeadingCommentRangesOfNode(node, sourceFileOfNode), isJsDocComment); + function isJsDocComment(comment) { + return sourceFileOfNode.text.charCodeAt(comment.pos + 1) === 42 && + sourceFileOfNode.text.charCodeAt(comment.pos + 2) === 42 && + sourceFileOfNode.text.charCodeAt(comment.pos + 3) !== 47; + } + } + ts.getJsDocComments = getJsDocComments; + ts.fullTripleSlashReferencePathRegEx = /^(\/\/\/\s*/; + function forEachReturnStatement(body, visitor) { + return traverse(body); + function traverse(node) { + switch (node.kind) { + case 191: + return visitor(node); + case 207: + case 179: + case 183: + case 184: + case 185: + case 186: + case 187: + case 188: + case 192: + case 193: + case 220: + case 221: + case 194: + case 196: + case 223: + return ts.forEachChild(node, traverse); + } + } + } + ts.forEachReturnStatement = forEachReturnStatement; + function isVariableLike(node) { + if (node) { + switch (node.kind) { + case 152: + case 226: + case 129: + case 224: + case 132: + case 131: + case 225: + case 198: + return true; + } + } + return false; + } + ts.isVariableLike = isVariableLike; + function isFunctionLike(node) { + if (node) { + switch (node.kind) { + case 135: + case 162: + case 200: + case 163: + case 134: + case 133: + case 136: + case 137: + case 138: + case 139: + case 140: + case 142: + case 143: + case 162: + case 163: + case 200: + return true; + } + } + return false; + } + ts.isFunctionLike = isFunctionLike; + function isFunctionBlock(node) { + return node && node.kind === 179 && isFunctionLike(node.parent); + } + ts.isFunctionBlock = isFunctionBlock; + function isObjectLiteralMethod(node) { + return node && node.kind === 134 && node.parent.kind === 154; + } + ts.isObjectLiteralMethod = isObjectLiteralMethod; + function getContainingFunction(node) { + while (true) { + node = node.parent; + if (!node || isFunctionLike(node)) { + return node; + } + } + } + ts.getContainingFunction = getContainingFunction; + function getThisContainer(node, includeArrowFunctions) { + while (true) { + node = node.parent; + if (!node) { + return undefined; + } + switch (node.kind) { + case 127: + if (node.parent.parent.kind === 201) { + return node; + } + node = node.parent; + break; + case 163: + if (!includeArrowFunctions) { + continue; + } + case 200: + case 162: + case 205: + case 132: + case 131: + case 134: + case 133: + case 135: + case 136: + case 137: + case 204: + case 227: + return node; + } + } + } + ts.getThisContainer = getThisContainer; + function getSuperContainer(node, includeFunctions) { + while (true) { + node = node.parent; + if (!node) + return node; + switch (node.kind) { + case 127: + if (node.parent.parent.kind === 201) { + return node; + } + node = node.parent; + break; + case 200: + case 162: + case 163: + if (!includeFunctions) { + continue; + } + case 132: + case 131: + case 134: + case 133: + case 135: + case 136: + case 137: + return node; + } + } + } + ts.getSuperContainer = getSuperContainer; + function getInvokedExpression(node) { + if (node.kind === 159) { + return node.tag; + } + return node.expression; + } + ts.getInvokedExpression = getInvokedExpression; + function nodeCanBeDecorated(node) { + switch (node.kind) { + case 201: + return true; + case 132: + return node.parent.kind === 201; + case 129: + return node.parent.body && node.parent.parent.kind === 201; + case 136: + case 137: + case 134: + return node.body && node.parent.kind === 201; + } + return false; + } + ts.nodeCanBeDecorated = nodeCanBeDecorated; + function nodeIsDecorated(node) { + switch (node.kind) { + case 201: + if (node.decorators) { + return true; + } + return false; + case 132: + case 129: + if (node.decorators) { + return true; + } + return false; + case 136: + if (node.body && node.decorators) { + return true; + } + return false; + case 134: + case 137: + if (node.body && node.decorators) { + return true; + } + return false; + } + return false; + } + ts.nodeIsDecorated = nodeIsDecorated; + function childIsDecorated(node) { + switch (node.kind) { + case 201: + return ts.forEach(node.members, nodeOrChildIsDecorated); + case 134: + case 137: + return ts.forEach(node.parameters, nodeIsDecorated); + } + return false; + } + ts.childIsDecorated = childIsDecorated; + function nodeOrChildIsDecorated(node) { + return nodeIsDecorated(node) || childIsDecorated(node); + } + ts.nodeOrChildIsDecorated = nodeOrChildIsDecorated; + function isExpression(node) { + switch (node.kind) { + case 93: + case 91: + case 89: + case 95: + case 80: + case 9: + case 153: + case 154: + case 155: + case 156: + case 157: + case 158: + case 159: + case 160: + case 161: + case 162: + case 174: + case 163: + case 166: + case 164: + case 165: + case 167: + case 168: + case 169: + case 170: + case 173: + case 171: + case 10: + case 175: + return true; + case 126: + while (node.parent.kind === 126) { + node = node.parent; + } + return node.parent.kind === 144; + case 65: + if (node.parent.kind === 144) { + return true; + } + case 7: + case 8: + var parent_1 = node.parent; + switch (parent_1.kind) { + case 198: + case 129: + case 132: + case 131: + case 226: + case 224: + case 152: + return parent_1.initializer === node; + case 182: + case 183: + case 184: + case 185: + case 191: + case 192: + case 193: + case 220: + case 195: + case 193: + return parent_1.expression === node; + case 186: + var forStatement = parent_1; + return (forStatement.initializer === node && forStatement.initializer.kind !== 199) || + forStatement.condition === node || + forStatement.iterator === node; + case 187: + case 188: + var forInStatement = parent_1; + return (forInStatement.initializer === node && forInStatement.initializer.kind !== 199) || + forInStatement.expression === node; + case 160: + return node === parent_1.expression; + case 176: + return node === parent_1.expression; + case 127: + return node === parent_1.expression; + default: + if (isExpression(parent_1)) { + return true; + } + } + } + return false; + } + ts.isExpression = isExpression; + function isInstantiatedModule(node, preserveConstEnums) { + var moduleState = ts.getModuleInstanceState(node); + return moduleState === 1 || + (preserveConstEnums && moduleState === 2); + } + ts.isInstantiatedModule = isInstantiatedModule; + function isExternalModuleImportEqualsDeclaration(node) { + return node.kind === 208 && node.moduleReference.kind === 219; + } + ts.isExternalModuleImportEqualsDeclaration = isExternalModuleImportEqualsDeclaration; + function getExternalModuleImportEqualsDeclarationExpression(node) { + ts.Debug.assert(isExternalModuleImportEqualsDeclaration(node)); + return node.moduleReference.expression; + } + ts.getExternalModuleImportEqualsDeclarationExpression = getExternalModuleImportEqualsDeclarationExpression; + function isInternalModuleImportEqualsDeclaration(node) { + return node.kind === 208 && node.moduleReference.kind !== 219; + } + ts.isInternalModuleImportEqualsDeclaration = isInternalModuleImportEqualsDeclaration; + function getExternalModuleName(node) { + if (node.kind === 209) { + return node.moduleSpecifier; + } + if (node.kind === 208) { + var reference = node.moduleReference; + if (reference.kind === 219) { + return reference.expression; + } + } + if (node.kind === 215) { + return node.moduleSpecifier; + } + } + ts.getExternalModuleName = getExternalModuleName; + function hasDotDotDotToken(node) { + return node && node.kind === 129 && node.dotDotDotToken !== undefined; + } + ts.hasDotDotDotToken = hasDotDotDotToken; + function hasQuestionToken(node) { + if (node) { + switch (node.kind) { + case 129: + return node.questionToken !== undefined; + case 134: + case 133: + return node.questionToken !== undefined; + case 225: + case 224: + case 132: + case 131: + return node.questionToken !== undefined; + } + } + return false; + } + ts.hasQuestionToken = hasQuestionToken; + function hasRestParameters(s) { + return s.parameters.length > 0 && s.parameters[s.parameters.length - 1].dotDotDotToken !== undefined; + } + ts.hasRestParameters = hasRestParameters; + function isLiteralKind(kind) { + return 7 <= kind && kind <= 10; + } + ts.isLiteralKind = isLiteralKind; + function isTextualLiteralKind(kind) { + return kind === 8 || kind === 10; + } + ts.isTextualLiteralKind = isTextualLiteralKind; + function isTemplateLiteralKind(kind) { + return 10 <= kind && kind <= 13; + } + ts.isTemplateLiteralKind = isTemplateLiteralKind; + function isBindingPattern(node) { + return !!node && (node.kind === 151 || node.kind === 150); + } + ts.isBindingPattern = isBindingPattern; + function isInAmbientContext(node) { + while (node) { + if (node.flags & (2 | 2048)) { + return true; + } + node = node.parent; + } + return false; + } + ts.isInAmbientContext = isInAmbientContext; + function isDeclaration(node) { + switch (node.kind) { + case 163: + case 152: + case 201: + case 135: + case 204: + case 226: + case 217: + case 200: + case 162: + case 136: + case 210: + case 208: + case 213: + case 202: + case 134: + case 133: + case 205: + case 211: + case 129: + case 224: + case 132: + case 131: + case 137: + case 225: + case 203: + case 128: + case 198: + return true; + } + return false; + } + ts.isDeclaration = isDeclaration; + function isStatement(n) { + switch (n.kind) { + case 190: + case 189: + case 197: + case 184: + case 182: + case 181: + case 187: + case 188: + case 186: + case 183: + case 194: + case 191: + case 193: + case 94: + case 196: + case 180: + case 185: + case 192: + case 214: + return true; + default: + return false; + } + } + ts.isStatement = isStatement; + function isClassElement(n) { + switch (n.kind) { + case 135: + case 132: + case 134: + case 136: + case 137: + case 140: + return true; + default: + return false; + } + } + ts.isClassElement = isClassElement; + function isDeclarationName(name) { + if (name.kind !== 65 && name.kind !== 8 && name.kind !== 7) { + return false; + } + var parent = name.parent; + if (parent.kind === 213 || parent.kind === 217) { + if (parent.propertyName) { + return true; + } + } + if (isDeclaration(parent)) { + return parent.name === name; + } + return false; + } + ts.isDeclarationName = isDeclarationName; + function isAliasSymbolDeclaration(node) { + return node.kind === 208 || + node.kind === 210 && !!node.name || + node.kind === 211 || + node.kind === 213 || + node.kind === 217 || + node.kind === 214 && node.expression.kind === 65; + } + ts.isAliasSymbolDeclaration = isAliasSymbolDeclaration; + function getClassExtendsHeritageClauseElement(node) { + var heritageClause = getHeritageClause(node.heritageClauses, 79); + return heritageClause && heritageClause.types.length > 0 ? heritageClause.types[0] : undefined; + } + ts.getClassExtendsHeritageClauseElement = getClassExtendsHeritageClauseElement; + function getClassImplementsHeritageClauseElements(node) { + var heritageClause = getHeritageClause(node.heritageClauses, 103); + return heritageClause ? heritageClause.types : undefined; + } + ts.getClassImplementsHeritageClauseElements = getClassImplementsHeritageClauseElements; + function getInterfaceBaseTypeNodes(node) { + var heritageClause = getHeritageClause(node.heritageClauses, 79); + return heritageClause ? heritageClause.types : undefined; + } + ts.getInterfaceBaseTypeNodes = getInterfaceBaseTypeNodes; + function getHeritageClause(clauses, kind) { + if (clauses) { + for (var _i = 0; _i < clauses.length; _i++) { + var clause = clauses[_i]; + if (clause.token === kind) { + return clause; + } + } + } + return undefined; + } + ts.getHeritageClause = getHeritageClause; + function tryResolveScriptReference(host, sourceFile, reference) { + if (!host.getCompilerOptions().noResolve) { + var referenceFileName = ts.isRootedDiskPath(reference.fileName) ? reference.fileName : ts.combinePaths(ts.getDirectoryPath(sourceFile.fileName), reference.fileName); + referenceFileName = ts.getNormalizedAbsolutePath(referenceFileName, host.getCurrentDirectory()); + return host.getSourceFile(referenceFileName); + } + } + ts.tryResolveScriptReference = tryResolveScriptReference; + function getAncestor(node, kind) { + while (node) { + if (node.kind === kind) { + return node; + } + node = node.parent; + } + return undefined; + } + ts.getAncestor = getAncestor; + function getFileReferenceFromReferencePath(comment, commentRange) { + var simpleReferenceRegEx = /^\/\/\/\s*/gim; + if (simpleReferenceRegEx.exec(comment)) { + if (isNoDefaultLibRegEx.exec(comment)) { + return { + isNoDefaultLib: true + }; + } + else { + var matchResult = ts.fullTripleSlashReferencePathRegEx.exec(comment); + if (matchResult) { + var start = commentRange.pos; + var end = commentRange.end; + return { + fileReference: { + pos: start, + end: end, + fileName: matchResult[3] + }, + isNoDefaultLib: false + }; + } + else { + return { + diagnosticMessage: ts.Diagnostics.Invalid_reference_directive_syntax, + isNoDefaultLib: false + }; + } + } + } + return undefined; + } + ts.getFileReferenceFromReferencePath = getFileReferenceFromReferencePath; + function isKeyword(token) { + return 66 <= token && token <= 125; + } + ts.isKeyword = isKeyword; + function isTrivia(token) { + return 2 <= token && token <= 6; + } + ts.isTrivia = isTrivia; + function hasDynamicName(declaration) { + return declaration.name && + declaration.name.kind === 127 && + !isWellKnownSymbolSyntactically(declaration.name.expression); + } + ts.hasDynamicName = hasDynamicName; + function isWellKnownSymbolSyntactically(node) { + return node.kind === 155 && isESSymbolIdentifier(node.expression); + } + ts.isWellKnownSymbolSyntactically = isWellKnownSymbolSyntactically; + function getPropertyNameForPropertyNameNode(name) { + if (name.kind === 65 || name.kind === 8 || name.kind === 7) { + return name.text; + } + if (name.kind === 127) { + var nameExpression = name.expression; + if (isWellKnownSymbolSyntactically(nameExpression)) { + var rightHandSideName = nameExpression.name.text; + return getPropertyNameForKnownSymbolName(rightHandSideName); + } + } + return undefined; + } + ts.getPropertyNameForPropertyNameNode = getPropertyNameForPropertyNameNode; + function getPropertyNameForKnownSymbolName(symbolName) { + return "__@" + symbolName; + } + ts.getPropertyNameForKnownSymbolName = getPropertyNameForKnownSymbolName; + function isESSymbolIdentifier(node) { + return node.kind === 65 && node.text === "Symbol"; + } + ts.isESSymbolIdentifier = isESSymbolIdentifier; + function isModifier(token) { + switch (token) { + case 109: + case 107: + case 108: + case 110: + case 78: + case 115: + case 70: + case 73: + return true; + } + return false; + } + ts.isModifier = isModifier; + function textSpanEnd(span) { + return span.start + span.length; + } + ts.textSpanEnd = textSpanEnd; + function textSpanIsEmpty(span) { + return span.length === 0; + } + ts.textSpanIsEmpty = textSpanIsEmpty; + function textSpanContainsPosition(span, position) { + return position >= span.start && position < textSpanEnd(span); + } + ts.textSpanContainsPosition = textSpanContainsPosition; + function textSpanContainsTextSpan(span, other) { + return other.start >= span.start && textSpanEnd(other) <= textSpanEnd(span); + } + ts.textSpanContainsTextSpan = textSpanContainsTextSpan; + function textSpanOverlapsWith(span, other) { + var overlapStart = Math.max(span.start, other.start); + var overlapEnd = Math.min(textSpanEnd(span), textSpanEnd(other)); + return overlapStart < overlapEnd; + } + ts.textSpanOverlapsWith = textSpanOverlapsWith; + function textSpanOverlap(span1, span2) { + var overlapStart = Math.max(span1.start, span2.start); + var overlapEnd = Math.min(textSpanEnd(span1), textSpanEnd(span2)); + if (overlapStart < overlapEnd) { + return createTextSpanFromBounds(overlapStart, overlapEnd); + } + return undefined; + } + ts.textSpanOverlap = textSpanOverlap; + function textSpanIntersectsWithTextSpan(span, other) { + return other.start <= textSpanEnd(span) && textSpanEnd(other) >= span.start; + } + ts.textSpanIntersectsWithTextSpan = textSpanIntersectsWithTextSpan; + function textSpanIntersectsWith(span, start, length) { + var end = start + length; + return start <= textSpanEnd(span) && end >= span.start; + } + ts.textSpanIntersectsWith = textSpanIntersectsWith; + function textSpanIntersectsWithPosition(span, position) { + return position <= textSpanEnd(span) && position >= span.start; + } + ts.textSpanIntersectsWithPosition = textSpanIntersectsWithPosition; + function textSpanIntersection(span1, span2) { + var intersectStart = Math.max(span1.start, span2.start); + var intersectEnd = Math.min(textSpanEnd(span1), textSpanEnd(span2)); + if (intersectStart <= intersectEnd) { + return createTextSpanFromBounds(intersectStart, intersectEnd); + } + return undefined; + } + ts.textSpanIntersection = textSpanIntersection; + function createTextSpan(start, length) { + if (start < 0) { + throw new Error("start < 0"); + } + if (length < 0) { + throw new Error("length < 0"); + } + return { start: start, length: length }; + } + ts.createTextSpan = createTextSpan; + function createTextSpanFromBounds(start, end) { + return createTextSpan(start, end - start); + } + ts.createTextSpanFromBounds = createTextSpanFromBounds; + function textChangeRangeNewSpan(range) { + return createTextSpan(range.span.start, range.newLength); + } + ts.textChangeRangeNewSpan = textChangeRangeNewSpan; + function textChangeRangeIsUnchanged(range) { + return textSpanIsEmpty(range.span) && range.newLength === 0; + } + ts.textChangeRangeIsUnchanged = textChangeRangeIsUnchanged; + function createTextChangeRange(span, newLength) { + if (newLength < 0) { + throw new Error("newLength < 0"); + } + return { span: span, newLength: newLength }; + } + ts.createTextChangeRange = createTextChangeRange; + ts.unchangedTextChangeRange = createTextChangeRange(createTextSpan(0, 0), 0); + function collapseTextChangeRangesAcrossMultipleVersions(changes) { + if (changes.length === 0) { + return ts.unchangedTextChangeRange; + } + if (changes.length === 1) { + return changes[0]; + } + var change0 = changes[0]; + var oldStartN = change0.span.start; + var oldEndN = textSpanEnd(change0.span); + var newEndN = oldStartN + change0.newLength; + for (var i = 1; i < changes.length; i++) { + var nextChange = changes[i]; + var oldStart1 = oldStartN; + var oldEnd1 = oldEndN; + var newEnd1 = newEndN; + var oldStart2 = nextChange.span.start; + var oldEnd2 = textSpanEnd(nextChange.span); + var newEnd2 = oldStart2 + nextChange.newLength; + oldStartN = Math.min(oldStart1, oldStart2); + oldEndN = Math.max(oldEnd1, oldEnd1 + (oldEnd2 - newEnd1)); + newEndN = Math.max(newEnd2, newEnd2 + (newEnd1 - oldEnd2)); + } + return createTextChangeRange(createTextSpanFromBounds(oldStartN, oldEndN), newEndN - oldStartN); + } + ts.collapseTextChangeRangesAcrossMultipleVersions = collapseTextChangeRangesAcrossMultipleVersions; + function nodeStartsNewLexicalEnvironment(n) { + return isFunctionLike(n) || n.kind === 205 || n.kind === 227; + } + ts.nodeStartsNewLexicalEnvironment = nodeStartsNewLexicalEnvironment; + function nodeIsSynthesized(node) { + return node.pos === -1; + } + ts.nodeIsSynthesized = nodeIsSynthesized; + function createSynthesizedNode(kind, startsOnNewLine) { + var node = ts.createNode(kind); + node.pos = -1; + node.end = -1; + node.startsOnNewLine = startsOnNewLine; + return node; + } + ts.createSynthesizedNode = createSynthesizedNode; + function createDiagnosticCollection() { + var nonFileDiagnostics = []; + var fileDiagnostics = {}; + var diagnosticsModified = false; + var modificationCount = 0; + return { + add: add, + getGlobalDiagnostics: getGlobalDiagnostics, + getDiagnostics: getDiagnostics, + getModificationCount: getModificationCount + }; + function getModificationCount() { + return modificationCount; + } + function add(diagnostic) { + var diagnostics; + if (diagnostic.file) { + diagnostics = fileDiagnostics[diagnostic.file.fileName]; + if (!diagnostics) { + diagnostics = []; + fileDiagnostics[diagnostic.file.fileName] = diagnostics; + } + } + else { + diagnostics = nonFileDiagnostics; + } + diagnostics.push(diagnostic); + diagnosticsModified = true; + modificationCount++; + } + function getGlobalDiagnostics() { + sortAndDeduplicate(); + return nonFileDiagnostics; + } + function getDiagnostics(fileName) { + sortAndDeduplicate(); + if (fileName) { + return fileDiagnostics[fileName] || []; + } + var allDiagnostics = []; + function pushDiagnostic(d) { + allDiagnostics.push(d); + } + ts.forEach(nonFileDiagnostics, pushDiagnostic); + for (var key in fileDiagnostics) { + if (ts.hasProperty(fileDiagnostics, key)) { + ts.forEach(fileDiagnostics[key], pushDiagnostic); + } + } + return ts.sortAndDeduplicateDiagnostics(allDiagnostics); + } + function sortAndDeduplicate() { + if (!diagnosticsModified) { + return; + } + diagnosticsModified = false; + nonFileDiagnostics = ts.sortAndDeduplicateDiagnostics(nonFileDiagnostics); + for (var key in fileDiagnostics) { + if (ts.hasProperty(fileDiagnostics, key)) { + fileDiagnostics[key] = ts.sortAndDeduplicateDiagnostics(fileDiagnostics[key]); + } + } + } + } + ts.createDiagnosticCollection = createDiagnosticCollection; + var escapedCharsRegExp = /[\\\"\u0000-\u001f\t\v\f\b\r\n\u2028\u2029\u0085]/g; + var escapedCharsMap = { + "\0": "\\0", + "\t": "\\t", + "\v": "\\v", + "\f": "\\f", + "\b": "\\b", + "\r": "\\r", + "\n": "\\n", + "\\": "\\\\", + "\"": "\\\"", + "\u2028": "\\u2028", + "\u2029": "\\u2029", + "\u0085": "\\u0085" + }; + function escapeString(s) { + s = escapedCharsRegExp.test(s) ? s.replace(escapedCharsRegExp, getReplacement) : s; + return s; + function getReplacement(c) { + return escapedCharsMap[c] || get16BitUnicodeEscapeSequence(c.charCodeAt(0)); + } + } + ts.escapeString = escapeString; + function get16BitUnicodeEscapeSequence(charCode) { + var hexCharCode = charCode.toString(16).toUpperCase(); + var paddedHexCode = ("0000" + hexCharCode).slice(-4); + return "\\u" + paddedHexCode; + } + var nonAsciiCharacters = /[^\u0000-\u007F]/g; + function escapeNonAsciiCharacters(s) { + return nonAsciiCharacters.test(s) ? + s.replace(nonAsciiCharacters, function (c) { return get16BitUnicodeEscapeSequence(c.charCodeAt(0)); }) : + s; + } + ts.escapeNonAsciiCharacters = escapeNonAsciiCharacters; + var indentStrings = ["", " "]; + function getIndentString(level) { + if (indentStrings[level] === undefined) { + indentStrings[level] = getIndentString(level - 1) + indentStrings[1]; + } + return indentStrings[level]; + } + ts.getIndentString = getIndentString; + function getIndentSize() { + return indentStrings[1].length; + } + ts.getIndentSize = getIndentSize; + function createTextWriter(newLine) { + var output = ""; + var indent = 0; + var lineStart = true; + var lineCount = 0; + var linePos = 0; + function write(s) { + if (s && s.length) { + if (lineStart) { + output += getIndentString(indent); + lineStart = false; + } + output += s; + } + } + function rawWrite(s) { + if (s !== undefined) { + if (lineStart) { + lineStart = false; + } + output += s; + } + } + function writeLiteral(s) { + if (s && s.length) { + write(s); + var lineStartsOfS = ts.computeLineStarts(s); + if (lineStartsOfS.length > 1) { + lineCount = lineCount + lineStartsOfS.length - 1; + linePos = output.length - s.length + lineStartsOfS[lineStartsOfS.length - 1]; + } + } + } + function writeLine() { + if (!lineStart) { + output += newLine; + lineCount++; + linePos = output.length; + lineStart = true; + } + } + function writeTextOfNode(sourceFile, node) { + write(getSourceTextOfNodeFromSourceFile(sourceFile, node)); + } + return { + write: write, + rawWrite: rawWrite, + writeTextOfNode: writeTextOfNode, + writeLiteral: writeLiteral, + writeLine: writeLine, + increaseIndent: function () { return indent++; }, + decreaseIndent: function () { return indent--; }, + getIndent: function () { return indent; }, + getTextPos: function () { return output.length; }, + getLine: function () { return lineCount + 1; }, + getColumn: function () { return lineStart ? indent * getIndentSize() + 1 : output.length - linePos + 1; }, + getText: function () { return output; } + }; + } + ts.createTextWriter = createTextWriter; + function getOwnEmitOutputFilePath(sourceFile, host, extension) { + var compilerOptions = host.getCompilerOptions(); + var emitOutputFilePathWithoutExtension; + if (compilerOptions.outDir) { + emitOutputFilePathWithoutExtension = ts.removeFileExtension(getSourceFilePathInNewDir(sourceFile, host, compilerOptions.outDir)); + } + else { + emitOutputFilePathWithoutExtension = ts.removeFileExtension(sourceFile.fileName); + } + return emitOutputFilePathWithoutExtension + extension; + } + ts.getOwnEmitOutputFilePath = getOwnEmitOutputFilePath; + function getSourceFilePathInNewDir(sourceFile, host, newDirPath) { + var sourceFilePath = ts.getNormalizedAbsolutePath(sourceFile.fileName, host.getCurrentDirectory()); + sourceFilePath = sourceFilePath.replace(host.getCommonSourceDirectory(), ""); + return ts.combinePaths(newDirPath, sourceFilePath); + } + ts.getSourceFilePathInNewDir = getSourceFilePathInNewDir; + function writeFile(host, diagnostics, fileName, data, writeByteOrderMark) { + host.writeFile(fileName, data, writeByteOrderMark, function (hostErrorMessage) { + diagnostics.push(ts.createCompilerDiagnostic(ts.Diagnostics.Could_not_write_file_0_Colon_1, fileName, hostErrorMessage)); + }); + } + ts.writeFile = writeFile; + function getLineOfLocalPosition(currentSourceFile, pos) { + return ts.getLineAndCharacterOfPosition(currentSourceFile, pos).line; + } + ts.getLineOfLocalPosition = getLineOfLocalPosition; + function getFirstConstructorWithBody(node) { + return ts.forEach(node.members, function (member) { + if (member.kind === 135 && nodeIsPresent(member.body)) { + return member; + } + }); + } + ts.getFirstConstructorWithBody = getFirstConstructorWithBody; + function shouldEmitToOwnFile(sourceFile, compilerOptions) { + if (!isDeclarationFile(sourceFile)) { + if ((isExternalModule(sourceFile) || !compilerOptions.out) && !ts.fileExtensionIs(sourceFile.fileName, ".js")) { + return true; + } + return false; + } + return false; + } + ts.shouldEmitToOwnFile = shouldEmitToOwnFile; + function getAllAccessorDeclarations(declarations, accessor) { + var firstAccessor; + var secondAccessor; + var getAccessor; + var setAccessor; + if (hasDynamicName(accessor)) { + firstAccessor = accessor; + if (accessor.kind === 136) { + getAccessor = accessor; + } + else if (accessor.kind === 137) { + setAccessor = accessor; + } + else { + ts.Debug.fail("Accessor has wrong kind"); + } + } + else { + ts.forEach(declarations, function (member) { + if ((member.kind === 136 || member.kind === 137) + && (member.flags & 128) === (accessor.flags & 128)) { + var memberName = getPropertyNameForPropertyNameNode(member.name); + var accessorName = getPropertyNameForPropertyNameNode(accessor.name); + if (memberName === accessorName) { + if (!firstAccessor) { + firstAccessor = member; + } + else if (!secondAccessor) { + secondAccessor = member; + } + if (member.kind === 136 && !getAccessor) { + getAccessor = member; + } + if (member.kind === 137 && !setAccessor) { + setAccessor = member; + } + } + } + }); + } + return { + firstAccessor: firstAccessor, + secondAccessor: secondAccessor, + getAccessor: getAccessor, + setAccessor: setAccessor + }; + } + ts.getAllAccessorDeclarations = getAllAccessorDeclarations; + function emitNewLineBeforeLeadingComments(currentSourceFile, writer, node, leadingComments) { + if (leadingComments && leadingComments.length && node.pos !== leadingComments[0].pos && + getLineOfLocalPosition(currentSourceFile, node.pos) !== getLineOfLocalPosition(currentSourceFile, leadingComments[0].pos)) { + writer.writeLine(); + } + } + ts.emitNewLineBeforeLeadingComments = emitNewLineBeforeLeadingComments; + function emitComments(currentSourceFile, writer, comments, trailingSeparator, newLine, writeComment) { + var emitLeadingSpace = !trailingSeparator; + ts.forEach(comments, function (comment) { + if (emitLeadingSpace) { + writer.write(" "); + emitLeadingSpace = false; + } + writeComment(currentSourceFile, writer, comment, newLine); + if (comment.hasTrailingNewLine) { + writer.writeLine(); + } + else if (trailingSeparator) { + writer.write(" "); + } + else { + emitLeadingSpace = true; + } + }); + } + ts.emitComments = emitComments; + function writeCommentRange(currentSourceFile, writer, comment, newLine) { + if (currentSourceFile.text.charCodeAt(comment.pos + 1) === 42) { + var firstCommentLineAndCharacter = ts.getLineAndCharacterOfPosition(currentSourceFile, comment.pos); + var lineCount = ts.getLineStarts(currentSourceFile).length; + var firstCommentLineIndent; + for (var pos = comment.pos, currentLine = firstCommentLineAndCharacter.line; pos < comment.end; currentLine++) { + var nextLineStart = (currentLine + 1) === lineCount + ? currentSourceFile.text.length + 1 + : getStartPositionOfLine(currentLine + 1, currentSourceFile); + if (pos !== comment.pos) { + if (firstCommentLineIndent === undefined) { + firstCommentLineIndent = calculateIndent(getStartPositionOfLine(firstCommentLineAndCharacter.line, currentSourceFile), comment.pos); + } + var currentWriterIndentSpacing = writer.getIndent() * getIndentSize(); + var spacesToEmit = currentWriterIndentSpacing - firstCommentLineIndent + calculateIndent(pos, nextLineStart); + if (spacesToEmit > 0) { + var numberOfSingleSpacesToEmit = spacesToEmit % getIndentSize(); + var indentSizeSpaceString = getIndentString((spacesToEmit - numberOfSingleSpacesToEmit) / getIndentSize()); + writer.rawWrite(indentSizeSpaceString); + while (numberOfSingleSpacesToEmit) { + writer.rawWrite(" "); + numberOfSingleSpacesToEmit--; + } + } + else { + writer.rawWrite(""); + } + } + writeTrimmedCurrentLine(pos, nextLineStart); + pos = nextLineStart; + } + } + else { + writer.write(currentSourceFile.text.substring(comment.pos, comment.end)); + } + function writeTrimmedCurrentLine(pos, nextLineStart) { + var end = Math.min(comment.end, nextLineStart - 1); + var currentLineText = currentSourceFile.text.substring(pos, end).replace(/^\s+|\s+$/g, ''); + if (currentLineText) { + writer.write(currentLineText); + if (end !== comment.end) { + writer.writeLine(); + } + } + else { + writer.writeLiteral(newLine); + } + } + function calculateIndent(pos, end) { + var currentLineIndent = 0; + for (; pos < end && ts.isWhiteSpace(currentSourceFile.text.charCodeAt(pos)); pos++) { + if (currentSourceFile.text.charCodeAt(pos) === 9) { + currentLineIndent += getIndentSize() - (currentLineIndent % getIndentSize()); + } + else { + currentLineIndent++; + } + } + return currentLineIndent; + } + } + ts.writeCommentRange = writeCommentRange; + function isSupportedHeritageClauseElement(node) { + return isSupportedHeritageClauseElementExpression(node.expression); + } + ts.isSupportedHeritageClauseElement = isSupportedHeritageClauseElement; + function isSupportedHeritageClauseElementExpression(node) { + if (node.kind === 65) { + return true; + } + else if (node.kind === 155) { + return isSupportedHeritageClauseElementExpression(node.expression); + } + else { + return false; + } + } + function isRightSideOfQualifiedNameOrPropertyAccess(node) { + return (node.parent.kind === 126 && node.parent.right === node) || + (node.parent.kind === 155 && node.parent.name === node); + } + ts.isRightSideOfQualifiedNameOrPropertyAccess = isRightSideOfQualifiedNameOrPropertyAccess; + function getLocalSymbolForExportDefault(symbol) { + return symbol && symbol.valueDeclaration && (symbol.valueDeclaration.flags & 256) ? symbol.valueDeclaration.localSymbol : undefined; + } + ts.getLocalSymbolForExportDefault = getLocalSymbolForExportDefault; +})(ts || (ts = {})); +/// +/// +var ts; +(function (ts) { + var nodeConstructors = new Array(229); + ts.parseTime = 0; + function getNodeConstructor(kind) { + return nodeConstructors[kind] || (nodeConstructors[kind] = ts.objectAllocator.getNodeConstructor(kind)); + } + ts.getNodeConstructor = getNodeConstructor; + function createNode(kind) { + return new (getNodeConstructor(kind))(); + } + ts.createNode = createNode; + function visitNode(cbNode, node) { + if (node) { + return cbNode(node); + } + } + function visitNodeArray(cbNodes, nodes) { + if (nodes) { + return cbNodes(nodes); + } + } + function visitEachNode(cbNode, nodes) { + if (nodes) { + for (var _i = 0; _i < nodes.length; _i++) { + var node = nodes[_i]; + var result = cbNode(node); + if (result) { + return result; + } + } + } + } + function forEachChild(node, cbNode, cbNodeArray) { + if (!node) { + return; + } + var visitNodes = cbNodeArray ? visitNodeArray : visitEachNode; + var cbNodes = cbNodeArray || cbNode; + switch (node.kind) { + case 126: + return visitNode(cbNode, node.left) || + visitNode(cbNode, node.right); + case 128: + return visitNode(cbNode, node.name) || + visitNode(cbNode, node.constraint) || + visitNode(cbNode, node.expression); + case 129: + case 132: + case 131: + case 224: + case 225: + case 198: + case 152: + return visitNodes(cbNodes, node.decorators) || + visitNodes(cbNodes, node.modifiers) || + visitNode(cbNode, node.propertyName) || + visitNode(cbNode, node.dotDotDotToken) || + visitNode(cbNode, node.name) || + visitNode(cbNode, node.questionToken) || + visitNode(cbNode, node.type) || + visitNode(cbNode, node.initializer); + case 142: + case 143: + case 138: + case 139: + case 140: + return visitNodes(cbNodes, node.decorators) || + visitNodes(cbNodes, node.modifiers) || + visitNodes(cbNodes, node.typeParameters) || + visitNodes(cbNodes, node.parameters) || + visitNode(cbNode, node.type); + case 134: + case 133: + case 135: + case 136: + case 137: + case 162: + case 200: + case 163: + return visitNodes(cbNodes, node.decorators) || + visitNodes(cbNodes, node.modifiers) || + visitNode(cbNode, node.asteriskToken) || + visitNode(cbNode, node.name) || + visitNode(cbNode, node.questionToken) || + visitNodes(cbNodes, node.typeParameters) || + visitNodes(cbNodes, node.parameters) || + visitNode(cbNode, node.type) || + visitNode(cbNode, node.equalsGreaterThanToken) || + visitNode(cbNode, node.body); + case 141: + return visitNode(cbNode, node.typeName) || + visitNodes(cbNodes, node.typeArguments); + case 144: + return visitNode(cbNode, node.exprName); + case 145: + return visitNodes(cbNodes, node.members); + case 146: + return visitNode(cbNode, node.elementType); + case 147: + return visitNodes(cbNodes, node.elementTypes); + case 148: + return visitNodes(cbNodes, node.types); + case 149: + return visitNode(cbNode, node.type); + case 150: + case 151: + return visitNodes(cbNodes, node.elements); + case 153: + return visitNodes(cbNodes, node.elements); + case 154: + return visitNodes(cbNodes, node.properties); + case 155: + return visitNode(cbNode, node.expression) || + visitNode(cbNode, node.dotToken) || + visitNode(cbNode, node.name); + case 156: + return visitNode(cbNode, node.expression) || + visitNode(cbNode, node.argumentExpression); + case 157: + case 158: + return visitNode(cbNode, node.expression) || + visitNodes(cbNodes, node.typeArguments) || + visitNodes(cbNodes, node.arguments); + case 159: + return visitNode(cbNode, node.tag) || + visitNode(cbNode, node.template); + case 160: + return visitNode(cbNode, node.type) || + visitNode(cbNode, node.expression); + case 161: + return visitNode(cbNode, node.expression); + case 164: + return visitNode(cbNode, node.expression); + case 165: + return visitNode(cbNode, node.expression); + case 166: + return visitNode(cbNode, node.expression); + case 167: + return visitNode(cbNode, node.operand); + case 172: + return visitNode(cbNode, node.asteriskToken) || + visitNode(cbNode, node.expression); + case 168: + return visitNode(cbNode, node.operand); + case 169: + return visitNode(cbNode, node.left) || + visitNode(cbNode, node.operatorToken) || + visitNode(cbNode, node.right); + case 170: + return visitNode(cbNode, node.condition) || + visitNode(cbNode, node.questionToken) || + visitNode(cbNode, node.whenTrue) || + visitNode(cbNode, node.colonToken) || + visitNode(cbNode, node.whenFalse); + case 173: + return visitNode(cbNode, node.expression); + case 179: + case 206: + return visitNodes(cbNodes, node.statements); + case 227: + return visitNodes(cbNodes, node.statements) || + visitNode(cbNode, node.endOfFileToken); + case 180: + return visitNodes(cbNodes, node.decorators) || + visitNodes(cbNodes, node.modifiers) || + visitNode(cbNode, node.declarationList); + case 199: + return visitNodes(cbNodes, node.declarations); + case 182: + return visitNode(cbNode, node.expression); + case 183: + return visitNode(cbNode, node.expression) || + visitNode(cbNode, node.thenStatement) || + visitNode(cbNode, node.elseStatement); + case 184: + return visitNode(cbNode, node.statement) || + visitNode(cbNode, node.expression); + case 185: + return visitNode(cbNode, node.expression) || + visitNode(cbNode, node.statement); + case 186: + return visitNode(cbNode, node.initializer) || + visitNode(cbNode, node.condition) || + visitNode(cbNode, node.iterator) || + visitNode(cbNode, node.statement); + case 187: + return visitNode(cbNode, node.initializer) || + visitNode(cbNode, node.expression) || + visitNode(cbNode, node.statement); + case 188: + return visitNode(cbNode, node.initializer) || + visitNode(cbNode, node.expression) || + visitNode(cbNode, node.statement); + case 189: + case 190: + return visitNode(cbNode, node.label); + case 191: + return visitNode(cbNode, node.expression); + case 192: + return visitNode(cbNode, node.expression) || + visitNode(cbNode, node.statement); + case 193: + return visitNode(cbNode, node.expression) || + visitNode(cbNode, node.caseBlock); + case 207: + return visitNodes(cbNodes, node.clauses); + case 220: + return visitNode(cbNode, node.expression) || + visitNodes(cbNodes, node.statements); + case 221: + return visitNodes(cbNodes, node.statements); + case 194: + return visitNode(cbNode, node.label) || + visitNode(cbNode, node.statement); + case 195: + return visitNode(cbNode, node.expression); + case 196: + return visitNode(cbNode, node.tryBlock) || + visitNode(cbNode, node.catchClause) || + visitNode(cbNode, node.finallyBlock); + case 223: + return visitNode(cbNode, node.variableDeclaration) || + visitNode(cbNode, node.block); + case 130: + return visitNode(cbNode, node.expression); + case 201: + case 174: + return visitNodes(cbNodes, node.decorators) || + visitNodes(cbNodes, node.modifiers) || + visitNode(cbNode, node.name) || + visitNodes(cbNodes, node.typeParameters) || + visitNodes(cbNodes, node.heritageClauses) || + visitNodes(cbNodes, node.members); + case 202: + return visitNodes(cbNodes, node.decorators) || + visitNodes(cbNodes, node.modifiers) || + visitNode(cbNode, node.name) || + visitNodes(cbNodes, node.typeParameters) || + visitNodes(cbNodes, node.heritageClauses) || + visitNodes(cbNodes, node.members); + case 203: + return visitNodes(cbNodes, node.decorators) || + visitNodes(cbNodes, node.modifiers) || + visitNode(cbNode, node.name) || + visitNode(cbNode, node.type); + case 204: + return visitNodes(cbNodes, node.decorators) || + visitNodes(cbNodes, node.modifiers) || + visitNode(cbNode, node.name) || + visitNodes(cbNodes, node.members); + case 226: + return visitNode(cbNode, node.name) || + visitNode(cbNode, node.initializer); + case 205: + return visitNodes(cbNodes, node.decorators) || + visitNodes(cbNodes, node.modifiers) || + visitNode(cbNode, node.name) || + visitNode(cbNode, node.body); + case 208: + return visitNodes(cbNodes, node.decorators) || + visitNodes(cbNodes, node.modifiers) || + visitNode(cbNode, node.name) || + visitNode(cbNode, node.moduleReference); + case 209: + return visitNodes(cbNodes, node.decorators) || + visitNodes(cbNodes, node.modifiers) || + visitNode(cbNode, node.importClause) || + visitNode(cbNode, node.moduleSpecifier); + case 210: + return visitNode(cbNode, node.name) || + visitNode(cbNode, node.namedBindings); + case 211: + return visitNode(cbNode, node.name); + case 212: + case 216: + return visitNodes(cbNodes, node.elements); + case 215: + return visitNodes(cbNodes, node.decorators) || + visitNodes(cbNodes, node.modifiers) || + visitNode(cbNode, node.exportClause) || + visitNode(cbNode, node.moduleSpecifier); + case 213: + case 217: + return visitNode(cbNode, node.propertyName) || + visitNode(cbNode, node.name); + case 214: + return visitNodes(cbNodes, node.decorators) || + visitNodes(cbNodes, node.modifiers) || + visitNode(cbNode, node.expression) || + visitNode(cbNode, node.type); + case 171: + return visitNode(cbNode, node.head) || visitNodes(cbNodes, node.templateSpans); + case 176: + return visitNode(cbNode, node.expression) || visitNode(cbNode, node.literal); + case 127: + return visitNode(cbNode, node.expression); + case 222: + return visitNodes(cbNodes, node.types); + case 177: + return visitNode(cbNode, node.expression) || + visitNodes(cbNodes, node.typeArguments); + case 219: + return visitNode(cbNode, node.expression); + case 218: + return visitNodes(cbNodes, node.decorators); + } + } + ts.forEachChild = forEachChild; + function parsingContextErrors(context) { + switch (context) { + case 0: return ts.Diagnostics.Declaration_or_statement_expected; + case 1: return ts.Diagnostics.Declaration_or_statement_expected; + case 2: return ts.Diagnostics.Statement_expected; + case 3: return ts.Diagnostics.case_or_default_expected; + case 4: return ts.Diagnostics.Statement_expected; + case 5: return ts.Diagnostics.Property_or_signature_expected; + case 6: return ts.Diagnostics.Unexpected_token_A_constructor_method_accessor_or_property_was_expected; + case 7: return ts.Diagnostics.Enum_member_expected; + case 8: return ts.Diagnostics.Expression_expected; + case 9: return ts.Diagnostics.Variable_declaration_expected; + case 10: return ts.Diagnostics.Property_destructuring_pattern_expected; + case 11: return ts.Diagnostics.Array_element_destructuring_pattern_expected; + case 12: return ts.Diagnostics.Argument_expression_expected; + case 13: return ts.Diagnostics.Property_assignment_expected; + case 14: return ts.Diagnostics.Expression_or_comma_expected; + case 15: return ts.Diagnostics.Parameter_declaration_expected; + case 16: return ts.Diagnostics.Type_parameter_declaration_expected; + case 17: return ts.Diagnostics.Type_argument_expected; + case 18: return ts.Diagnostics.Type_expected; + case 19: return ts.Diagnostics.Unexpected_token_expected; + case 20: return ts.Diagnostics.Identifier_expected; + } + } + ; + function modifierToFlag(token) { + switch (token) { + case 110: return 128; + case 109: return 16; + case 108: return 64; + case 107: return 32; + case 78: return 1; + case 115: return 2; + case 70: return 8192; + case 73: return 256; + } + return 0; + } + ts.modifierToFlag = modifierToFlag; + function fixupParentReferences(sourceFile) { + // normally parent references are set during binding. However, for clients that only need + // a syntax tree, and no semantic features, then the binding process is an unnecessary + // overhead. This functions allows us to set all the parents, without all the expense of + // binding. + var parent = sourceFile; + forEachChild(sourceFile, visitNode); + return; + function visitNode(n) { + if (n.parent !== parent) { + n.parent = parent; + var saveParent = parent; + parent = n; + forEachChild(n, visitNode); + parent = saveParent; + } + } + } + function shouldCheckNode(node) { + switch (node.kind) { + case 8: + case 7: + case 65: + return true; + } + return false; + } + function moveElementEntirelyPastChangeRange(element, isArray, delta, oldText, newText, aggressiveChecks) { + if (isArray) { + visitArray(element); + } + else { + visitNode(element); + } + return; + function visitNode(node) { + if (aggressiveChecks && shouldCheckNode(node)) { + var text = oldText.substring(node.pos, node.end); + } + node._children = undefined; + node.pos += delta; + node.end += delta; + if (aggressiveChecks && shouldCheckNode(node)) { + ts.Debug.assert(text === newText.substring(node.pos, node.end)); + } + forEachChild(node, visitNode, visitArray); + checkNodePositions(node, aggressiveChecks); + } + function visitArray(array) { + array._children = undefined; + array.pos += delta; + array.end += delta; + for (var _i = 0; _i < array.length; _i++) { + var node = array[_i]; + visitNode(node); + } + } + } + function adjustIntersectingElement(element, changeStart, changeRangeOldEnd, changeRangeNewEnd, delta) { + ts.Debug.assert(element.end >= changeStart, "Adjusting an element that was entirely before the change range"); + ts.Debug.assert(element.pos <= changeRangeOldEnd, "Adjusting an element that was entirely after the change range"); + ts.Debug.assert(element.pos <= element.end); + element.pos = Math.min(element.pos, changeRangeNewEnd); + if (element.end >= changeRangeOldEnd) { + element.end += delta; + } + else { + element.end = Math.min(element.end, changeRangeNewEnd); + } + ts.Debug.assert(element.pos <= element.end); + if (element.parent) { + ts.Debug.assert(element.pos >= element.parent.pos); + ts.Debug.assert(element.end <= element.parent.end); + } + } + function checkNodePositions(node, aggressiveChecks) { + if (aggressiveChecks) { + var pos = node.pos; + forEachChild(node, function (child) { + ts.Debug.assert(child.pos >= pos); + pos = child.end; + }); + ts.Debug.assert(pos <= node.end); + } + } + function updateTokenPositionsAndMarkElements(sourceFile, changeStart, changeRangeOldEnd, changeRangeNewEnd, delta, oldText, newText, aggressiveChecks) { + visitNode(sourceFile); + return; + function visitNode(child) { + ts.Debug.assert(child.pos <= child.end); + if (child.pos > changeRangeOldEnd) { + moveElementEntirelyPastChangeRange(child, false, delta, oldText, newText, aggressiveChecks); + return; + } + var fullEnd = child.end; + if (fullEnd >= changeStart) { + child.intersectsChange = true; + child._children = undefined; + adjustIntersectingElement(child, changeStart, changeRangeOldEnd, changeRangeNewEnd, delta); + forEachChild(child, visitNode, visitArray); + checkNodePositions(child, aggressiveChecks); + return; + } + ts.Debug.assert(fullEnd < changeStart); + } + function visitArray(array) { + ts.Debug.assert(array.pos <= array.end); + if (array.pos > changeRangeOldEnd) { + moveElementEntirelyPastChangeRange(array, true, delta, oldText, newText, aggressiveChecks); + return; + } + var fullEnd = array.end; + if (fullEnd >= changeStart) { + array.intersectsChange = true; + array._children = undefined; + adjustIntersectingElement(array, changeStart, changeRangeOldEnd, changeRangeNewEnd, delta); + for (var _i = 0; _i < array.length; _i++) { + var node = array[_i]; + visitNode(node); + } + return; + } + ts.Debug.assert(fullEnd < changeStart); + } + } + function extendToAffectedRange(sourceFile, changeRange) { + var maxLookahead = 1; + var start = changeRange.span.start; + for (var i = 0; start > 0 && i <= maxLookahead; i++) { + var nearestNode = findNearestNodeStartingBeforeOrAtPosition(sourceFile, start); + ts.Debug.assert(nearestNode.pos <= start); + var position = nearestNode.pos; + start = Math.max(0, position - 1); + } + var finalSpan = ts.createTextSpanFromBounds(start, ts.textSpanEnd(changeRange.span)); + var finalLength = changeRange.newLength + (changeRange.span.start - start); + return ts.createTextChangeRange(finalSpan, finalLength); + } + function findNearestNodeStartingBeforeOrAtPosition(sourceFile, position) { + var bestResult = sourceFile; + var lastNodeEntirelyBeforePosition; + forEachChild(sourceFile, visit); + if (lastNodeEntirelyBeforePosition) { + var lastChildOfLastEntireNodeBeforePosition = getLastChild(lastNodeEntirelyBeforePosition); + if (lastChildOfLastEntireNodeBeforePosition.pos > bestResult.pos) { + bestResult = lastChildOfLastEntireNodeBeforePosition; + } + } + return bestResult; + function getLastChild(node) { + while (true) { + var lastChild = getLastChildWorker(node); + if (lastChild) { + node = lastChild; + } + else { + return node; + } + } + } + function getLastChildWorker(node) { + var last = undefined; + forEachChild(node, function (child) { + if (ts.nodeIsPresent(child)) { + last = child; + } + }); + return last; + } + function visit(child) { + if (ts.nodeIsMissing(child)) { + return; + } + if (child.pos <= position) { + if (child.pos >= bestResult.pos) { + bestResult = child; + } + if (position < child.end) { + forEachChild(child, visit); + return true; + } + else { + ts.Debug.assert(child.end <= position); + lastNodeEntirelyBeforePosition = child; + } + } + else { + ts.Debug.assert(child.pos > position); + return true; + } + } + } + function checkChangeRange(sourceFile, newText, textChangeRange, aggressiveChecks) { + var oldText = sourceFile.text; + if (textChangeRange) { + ts.Debug.assert((oldText.length - textChangeRange.span.length + textChangeRange.newLength) === newText.length); + if (aggressiveChecks || ts.Debug.shouldAssert(3)) { + var oldTextPrefix = oldText.substr(0, textChangeRange.span.start); + var newTextPrefix = newText.substr(0, textChangeRange.span.start); + ts.Debug.assert(oldTextPrefix === newTextPrefix); + var oldTextSuffix = oldText.substring(ts.textSpanEnd(textChangeRange.span), oldText.length); + var newTextSuffix = newText.substring(ts.textSpanEnd(ts.textChangeRangeNewSpan(textChangeRange)), newText.length); + ts.Debug.assert(oldTextSuffix === newTextSuffix); + } + } + } + function updateSourceFile(sourceFile, newText, textChangeRange, aggressiveChecks) { + aggressiveChecks = aggressiveChecks || ts.Debug.shouldAssert(2); + checkChangeRange(sourceFile, newText, textChangeRange, aggressiveChecks); + if (ts.textChangeRangeIsUnchanged(textChangeRange)) { + return sourceFile; + } + if (sourceFile.statements.length === 0) { + return parseSourceFile(sourceFile.fileName, newText, sourceFile.languageVersion, undefined, true); + } + var incrementalSourceFile = sourceFile; + ts.Debug.assert(!incrementalSourceFile.hasBeenIncrementallyParsed); + incrementalSourceFile.hasBeenIncrementallyParsed = true; + var oldText = sourceFile.text; + var syntaxCursor = createSyntaxCursor(sourceFile); + var changeRange = extendToAffectedRange(sourceFile, textChangeRange); + checkChangeRange(sourceFile, newText, changeRange, aggressiveChecks); + ts.Debug.assert(changeRange.span.start <= textChangeRange.span.start); + ts.Debug.assert(ts.textSpanEnd(changeRange.span) === ts.textSpanEnd(textChangeRange.span)); + ts.Debug.assert(ts.textSpanEnd(ts.textChangeRangeNewSpan(changeRange)) === ts.textSpanEnd(ts.textChangeRangeNewSpan(textChangeRange))); + var delta = ts.textChangeRangeNewSpan(changeRange).length - changeRange.span.length; + updateTokenPositionsAndMarkElements(incrementalSourceFile, changeRange.span.start, ts.textSpanEnd(changeRange.span), ts.textSpanEnd(ts.textChangeRangeNewSpan(changeRange)), delta, oldText, newText, aggressiveChecks); + var result = parseSourceFile(sourceFile.fileName, newText, sourceFile.languageVersion, syntaxCursor, true); + return result; + } + ts.updateSourceFile = updateSourceFile; + function isEvalOrArgumentsIdentifier(node) { + return node.kind === 65 && + (node.text === "eval" || node.text === "arguments"); + } + ts.isEvalOrArgumentsIdentifier = isEvalOrArgumentsIdentifier; + function isUseStrictPrologueDirective(sourceFile, node) { + ts.Debug.assert(ts.isPrologueDirective(node)); + var nodeText = ts.getSourceTextOfNodeFromSourceFile(sourceFile, node.expression); + return nodeText === '"use strict"' || nodeText === "'use strict'"; + } + function createSyntaxCursor(sourceFile) { + var currentArray = sourceFile.statements; + var currentArrayIndex = 0; + ts.Debug.assert(currentArrayIndex < currentArray.length); + var current = currentArray[currentArrayIndex]; + var lastQueriedPosition = -1; + return { + currentNode: function (position) { + if (position !== lastQueriedPosition) { + if (current && current.end === position && currentArrayIndex < (currentArray.length - 1)) { + currentArrayIndex++; + current = currentArray[currentArrayIndex]; + } + if (!current || current.pos !== position) { + findHighestListElementThatStartsAtPosition(position); + } + } + lastQueriedPosition = position; + ts.Debug.assert(!current || current.pos === position); + return current; + } + }; + function findHighestListElementThatStartsAtPosition(position) { + currentArray = undefined; + currentArrayIndex = -1; + current = undefined; + forEachChild(sourceFile, visitNode, visitArray); + return; + function visitNode(node) { + if (position >= node.pos && position < node.end) { + forEachChild(node, visitNode, visitArray); + return true; + } + return false; + } + function visitArray(array) { + if (position >= array.pos && position < array.end) { + for (var i = 0, n = array.length; i < n; i++) { + var child = array[i]; + if (child) { + if (child.pos === position) { + currentArray = array; + currentArrayIndex = i; + current = child; + return true; + } + else { + if (child.pos < position && position < child.end) { + forEachChild(child, visitNode, visitArray); + return true; + } + } + } + } + } + return false; + } + } + } + function createSourceFile(fileName, sourceText, languageVersion, setParentNodes) { + if (setParentNodes === void 0) { setParentNodes = false; } + var start = new Date().getTime(); + var result = parseSourceFile(fileName, sourceText, languageVersion, undefined, setParentNodes); + ts.parseTime += new Date().getTime() - start; + return result; + } + ts.createSourceFile = createSourceFile; + function parseSourceFile(fileName, sourceText, languageVersion, syntaxCursor, setParentNodes) { + if (setParentNodes === void 0) { setParentNodes = false; } + var disallowInAndDecoratorContext = 2 | 16; + var parsingContext = 0; + var identifiers = {}; + var identifierCount = 0; + var nodeCount = 0; + var token; + var sourceFile = createNode(227, 0); + sourceFile.pos = 0; + sourceFile.end = sourceText.length; + sourceFile.text = sourceText; + sourceFile.parseDiagnostics = []; + sourceFile.bindDiagnostics = []; + sourceFile.languageVersion = languageVersion; + sourceFile.fileName = ts.normalizePath(fileName); + sourceFile.flags = ts.fileExtensionIs(sourceFile.fileName, ".d.ts") ? 2048 : 0; + var contextFlags = 0; + var parseErrorBeforeNextFinishedNode = false; + var scanner = ts.createScanner(languageVersion, true, sourceText, scanError); + token = nextToken(); + processReferenceComments(sourceFile); + sourceFile.statements = parseList(0, true, parseSourceElement); + ts.Debug.assert(token === 1); + sourceFile.endOfFileToken = parseTokenNode(); + setExternalModuleIndicator(sourceFile); + sourceFile.nodeCount = nodeCount; + sourceFile.identifierCount = identifierCount; + sourceFile.identifiers = identifiers; + if (setParentNodes) { + fixupParentReferences(sourceFile); + } + syntaxCursor = undefined; + return sourceFile; + function setContextFlag(val, flag) { + if (val) { + contextFlags |= flag; + } + else { + contextFlags &= ~flag; + } + } + function setStrictModeContext(val) { + setContextFlag(val, 1); + } + function setDisallowInContext(val) { + setContextFlag(val, 2); + } + function setYieldContext(val) { + setContextFlag(val, 4); + } + function setGeneratorParameterContext(val) { + setContextFlag(val, 8); + } + function setDecoratorContext(val) { + setContextFlag(val, 16); + } + function doOutsideOfContext(flags, func) { + var currentContextFlags = contextFlags & flags; + if (currentContextFlags) { + setContextFlag(false, currentContextFlags); + var result = func(); + setContextFlag(true, currentContextFlags); + return result; + } + return func(); + } + function allowInAnd(func) { + if (contextFlags & 2) { + setDisallowInContext(false); + var result = func(); + setDisallowInContext(true); + return result; + } + return func(); + } + function disallowInAnd(func) { + if (contextFlags & 2) { + return func(); + } + setDisallowInContext(true); + var result = func(); + setDisallowInContext(false); + return result; + } + function doInYieldContext(func) { + if (contextFlags & 4) { + return func(); + } + setYieldContext(true); + var result = func(); + setYieldContext(false); + return result; + } + function doOutsideOfYieldContext(func) { + if (contextFlags & 4) { + setYieldContext(false); + var result = func(); + setYieldContext(true); + return result; + } + return func(); + } + function doInDecoratorContext(func) { + if (contextFlags & 16) { + return func(); + } + setDecoratorContext(true); + var result = func(); + setDecoratorContext(false); + return result; + } + function inYieldContext() { + return (contextFlags & 4) !== 0; + } + function inStrictModeContext() { + return (contextFlags & 1) !== 0; + } + function inGeneratorParameterContext() { + return (contextFlags & 8) !== 0; + } + function inDisallowInContext() { + return (contextFlags & 2) !== 0; + } + function inDecoratorContext() { + return (contextFlags & 16) !== 0; + } + function parseErrorAtCurrentToken(message, arg0) { + var start = scanner.getTokenPos(); + var length = scanner.getTextPos() - start; + parseErrorAtPosition(start, length, message, arg0); + } + function parseErrorAtPosition(start, length, message, arg0) { + var lastError = ts.lastOrUndefined(sourceFile.parseDiagnostics); + if (!lastError || start !== lastError.start) { + sourceFile.parseDiagnostics.push(ts.createFileDiagnostic(sourceFile, start, length, message, arg0)); + } + parseErrorBeforeNextFinishedNode = true; + } + function scanError(message, length) { + var pos = scanner.getTextPos(); + parseErrorAtPosition(pos, length || 0, message); + } + function getNodePos() { + return scanner.getStartPos(); + } + function getNodeEnd() { + return scanner.getStartPos(); + } + function nextToken() { + return token = scanner.scan(); + } + function getTokenPos(pos) { + return ts.skipTrivia(sourceText, pos); + } + function reScanGreaterToken() { + return token = scanner.reScanGreaterToken(); + } + function reScanSlashToken() { + return token = scanner.reScanSlashToken(); + } + function reScanTemplateToken() { + return token = scanner.reScanTemplateToken(); + } + function speculationHelper(callback, isLookAhead) { + var saveToken = token; + var saveParseDiagnosticsLength = sourceFile.parseDiagnostics.length; + var saveParseErrorBeforeNextFinishedNode = parseErrorBeforeNextFinishedNode; + var saveContextFlags = contextFlags; + var result = isLookAhead + ? scanner.lookAhead(callback) + : scanner.tryScan(callback); + ts.Debug.assert(saveContextFlags === contextFlags); + if (!result || isLookAhead) { + token = saveToken; + sourceFile.parseDiagnostics.length = saveParseDiagnosticsLength; + parseErrorBeforeNextFinishedNode = saveParseErrorBeforeNextFinishedNode; + } + return result; + } + function lookAhead(callback) { + return speculationHelper(callback, true); + } + function tryParse(callback) { + return speculationHelper(callback, false); + } + function isIdentifier() { + if (token === 65) { + return true; + } + if (token === 111 && inYieldContext()) { + return false; + } + return inStrictModeContext() ? token > 111 : token > 101; + } + function parseExpected(kind, diagnosticMessage) { + if (token === kind) { + nextToken(); + return true; + } + if (diagnosticMessage) { + parseErrorAtCurrentToken(diagnosticMessage); + } + else { + parseErrorAtCurrentToken(ts.Diagnostics._0_expected, ts.tokenToString(kind)); + } + return false; + } + function parseOptional(t) { + if (token === t) { + nextToken(); + return true; + } + return false; + } + function parseOptionalToken(t) { + if (token === t) { + return parseTokenNode(); + } + return undefined; + } + function parseExpectedToken(t, reportAtCurrentPosition, diagnosticMessage, arg0) { + return parseOptionalToken(t) || + createMissingNode(t, reportAtCurrentPosition, diagnosticMessage, arg0); + } + function parseTokenNode() { + var node = createNode(token); + nextToken(); + return finishNode(node); + } + function canParseSemicolon() { + if (token === 22) { + return true; + } + return token === 15 || token === 1 || scanner.hasPrecedingLineBreak(); + } + function parseSemicolon() { + if (canParseSemicolon()) { + if (token === 22) { + nextToken(); + } + return true; + } + else { + return parseExpected(22); + } + } + function createNode(kind, pos) { + nodeCount++; + var node = new (nodeConstructors[kind] || (nodeConstructors[kind] = ts.objectAllocator.getNodeConstructor(kind)))(); + if (!(pos >= 0)) { + pos = scanner.getStartPos(); + } + node.pos = pos; + node.end = pos; + return node; + } + function finishNode(node) { + node.end = scanner.getStartPos(); + if (contextFlags) { + node.parserContextFlags = contextFlags; + } + if (parseErrorBeforeNextFinishedNode) { + parseErrorBeforeNextFinishedNode = false; + node.parserContextFlags |= 32; + } + return node; + } + function createMissingNode(kind, reportAtCurrentPosition, diagnosticMessage, arg0) { + if (reportAtCurrentPosition) { + parseErrorAtPosition(scanner.getStartPos(), 0, diagnosticMessage, arg0); + } + else { + parseErrorAtCurrentToken(diagnosticMessage, arg0); + } + var result = createNode(kind, scanner.getStartPos()); + result.text = ""; + return finishNode(result); + } + function internIdentifier(text) { + text = ts.escapeIdentifier(text); + return ts.hasProperty(identifiers, text) ? identifiers[text] : (identifiers[text] = text); + } + function createIdentifier(isIdentifier, diagnosticMessage) { + identifierCount++; + if (isIdentifier) { + var node = createNode(65); + node.text = internIdentifier(scanner.getTokenValue()); + nextToken(); + return finishNode(node); + } + return createMissingNode(65, false, diagnosticMessage || ts.Diagnostics.Identifier_expected); + } + function parseIdentifier(diagnosticMessage) { + return createIdentifier(isIdentifier(), diagnosticMessage); + } + function parseIdentifierName() { + return createIdentifier(isIdentifierOrKeyword()); + } + function isLiteralPropertyName() { + return isIdentifierOrKeyword() || + token === 8 || + token === 7; + } + function parsePropertyName() { + if (token === 8 || token === 7) { + return parseLiteralNode(true); + } + if (token === 18) { + return parseComputedPropertyName(); + } + return parseIdentifierName(); + } + function parseComputedPropertyName() { + var node = createNode(127); + parseExpected(18); + var yieldContext = inYieldContext(); + if (inGeneratorParameterContext()) { + setYieldContext(false); + } + node.expression = allowInAnd(parseExpression); + if (inGeneratorParameterContext()) { + setYieldContext(yieldContext); + } + parseExpected(19); + return finishNode(node); + } + function parseContextualModifier(t) { + return token === t && tryParse(nextTokenCanFollowModifier); + } + function nextTokenCanFollowModifier() { + nextToken(); + return canFollowModifier(); + } + function parseAnyContextualModifier() { + return ts.isModifier(token) && tryParse(nextTokenCanFollowContextualModifier); + } + function nextTokenCanFollowContextualModifier() { + if (token === 70) { + return nextToken() === 77; + } + if (token === 78) { + nextToken(); + if (token === 73) { + return lookAhead(nextTokenIsClassOrFunction); + } + return token !== 35 && token !== 14 && canFollowModifier(); + } + if (token === 73) { + return nextTokenIsClassOrFunction(); + } + nextToken(); + return canFollowModifier(); + } + function canFollowModifier() { + return token === 18 + || token === 14 + || token === 35 + || isLiteralPropertyName(); + } + function nextTokenIsClassOrFunction() { + nextToken(); + return token === 69 || token === 83; + } + function isListElement(parsingContext, inErrorRecovery) { + var node = currentNode(parsingContext); + if (node) { + return true; + } + switch (parsingContext) { + case 0: + case 1: + return isSourceElement(inErrorRecovery); + case 2: + case 4: + return isStartOfStatement(inErrorRecovery); + case 3: + return token === 67 || token === 73; + case 5: + return isStartOfTypeMember(); + case 6: + return lookAhead(isClassMemberStart) || (token === 22 && !inErrorRecovery); + case 7: + return token === 18 || isLiteralPropertyName(); + case 13: + return token === 18 || token === 35 || isLiteralPropertyName(); + case 10: + return isLiteralPropertyName(); + case 8: + if (token === 14) { + return lookAhead(isValidHeritageClauseObjectLiteral); + } + if (!inErrorRecovery) { + return isStartOfLeftHandSideExpression() && !isHeritageClauseExtendsOrImplementsKeyword(); + } + else { + return isIdentifier() && !isHeritageClauseExtendsOrImplementsKeyword(); + } + case 9: + return isIdentifierOrPattern(); + case 11: + return token === 23 || token === 21 || isIdentifierOrPattern(); + case 16: + return isIdentifier(); + case 12: + case 14: + return token === 23 || token === 21 || isStartOfExpression(); + case 15: + return isStartOfParameter(); + case 17: + case 18: + return token === 23 || isStartOfType(); + case 19: + return isHeritageClause(); + case 20: + return isIdentifierOrKeyword(); + } + ts.Debug.fail("Non-exhaustive case in 'isListElement'."); + } + function isValidHeritageClauseObjectLiteral() { + ts.Debug.assert(token === 14); + if (nextToken() === 15) { + var next = nextToken(); + return next === 23 || next === 14 || next === 79 || next === 103; + } + return true; + } + function nextTokenIsIdentifier() { + nextToken(); + return isIdentifier(); + } + function isHeritageClauseExtendsOrImplementsKeyword() { + if (token === 103 || + token === 79) { + return lookAhead(nextTokenIsStartOfExpression); + } + return false; + } + function nextTokenIsStartOfExpression() { + nextToken(); + return isStartOfExpression(); + } + function isListTerminator(kind) { + if (token === 1) { + return true; + } + switch (kind) { + case 1: + case 2: + case 3: + case 5: + case 6: + case 7: + case 13: + case 10: + case 20: + return token === 15; + case 4: + return token === 15 || token === 67 || token === 73; + case 8: + return token === 14 || token === 79 || token === 103; + case 9: + return isVariableDeclaratorListTerminator(); + case 16: + return token === 25 || token === 16 || token === 14 || token === 79 || token === 103; + case 12: + return token === 17 || token === 22; + case 14: + case 18: + case 11: + return token === 19; + case 15: + return token === 17 || token === 19; + case 17: + return token === 25 || token === 16; + case 19: + return token === 14 || token === 15; + } + } + function isVariableDeclaratorListTerminator() { + if (canParseSemicolon()) { + return true; + } + if (isInOrOfKeyword(token)) { + return true; + } + if (token === 32) { + return true; + } + return false; + } + function isInSomeParsingContext() { + for (var kind = 0; kind < 21; kind++) { + if (parsingContext & (1 << kind)) { + if (isListElement(kind, true) || isListTerminator(kind)) { + return true; + } + } + } + return false; + } + function parseList(kind, checkForStrictMode, parseElement) { + var saveParsingContext = parsingContext; + parsingContext |= 1 << kind; + var result = []; + result.pos = getNodePos(); + var savedStrictModeContext = inStrictModeContext(); + while (!isListTerminator(kind)) { + if (isListElement(kind, false)) { + var element = parseListElement(kind, parseElement); + result.push(element); + if (checkForStrictMode && !inStrictModeContext()) { + if (ts.isPrologueDirective(element)) { + if (isUseStrictPrologueDirective(sourceFile, element)) { + setStrictModeContext(true); + checkForStrictMode = false; + } + } + else { + checkForStrictMode = false; + } + } + continue; + } + if (abortParsingListOrMoveToNextToken(kind)) { + break; + } + } + setStrictModeContext(savedStrictModeContext); + result.end = getNodeEnd(); + parsingContext = saveParsingContext; + return result; + } + function parseListElement(parsingContext, parseElement) { + var node = currentNode(parsingContext); + if (node) { + return consumeNode(node); + } + return parseElement(); + } + function currentNode(parsingContext) { + if (parseErrorBeforeNextFinishedNode) { + return undefined; + } + if (!syntaxCursor) { + return undefined; + } + var node = syntaxCursor.currentNode(scanner.getStartPos()); + if (ts.nodeIsMissing(node)) { + return undefined; + } + if (node.intersectsChange) { + return undefined; + } + if (ts.containsParseError(node)) { + return undefined; + } + var nodeContextFlags = node.parserContextFlags & 63; + if (nodeContextFlags !== contextFlags) { + return undefined; + } + if (!canReuseNode(node, parsingContext)) { + return undefined; + } + return node; + } + function consumeNode(node) { + scanner.setTextPos(node.end); + nextToken(); + return node; + } + function canReuseNode(node, parsingContext) { + switch (parsingContext) { + case 1: + return isReusableModuleElement(node); + case 6: + return isReusableClassMember(node); + case 3: + return isReusableSwitchClause(node); + case 2: + case 4: + return isReusableStatement(node); + case 7: + return isReusableEnumMember(node); + case 5: + return isReusableTypeMember(node); + case 9: + return isReusableVariableDeclaration(node); + case 15: + return isReusableParameter(node); + case 19: + case 16: + case 18: + case 17: + case 12: + case 13: + case 8: + } + return false; + } + function isReusableModuleElement(node) { + if (node) { + switch (node.kind) { + case 209: + case 208: + case 215: + case 214: + case 201: + case 202: + case 205: + case 204: + return true; + } + return isReusableStatement(node); + } + return false; + } + function isReusableClassMember(node) { + if (node) { + switch (node.kind) { + case 135: + case 140: + case 134: + case 136: + case 137: + case 132: + case 178: + return true; + } + } + return false; + } + function isReusableSwitchClause(node) { + if (node) { + switch (node.kind) { + case 220: + case 221: + return true; + } + } + return false; + } + function isReusableStatement(node) { + if (node) { + switch (node.kind) { + case 200: + case 180: + case 179: + case 183: + case 182: + case 195: + case 191: + case 193: + case 190: + case 189: + case 187: + case 188: + case 186: + case 185: + case 192: + case 181: + case 196: + case 194: + case 184: + case 197: + return true; + } + } + return false; + } + function isReusableEnumMember(node) { + return node.kind === 226; + } + function isReusableTypeMember(node) { + if (node) { + switch (node.kind) { + case 139: + case 133: + case 140: + case 131: + case 138: + return true; + } + } + return false; + } + function isReusableVariableDeclaration(node) { + if (node.kind !== 198) { + return false; + } + var variableDeclarator = node; + return variableDeclarator.initializer === undefined; + } + function isReusableParameter(node) { + if (node.kind !== 129) { + return false; + } + var parameter = node; + return parameter.initializer === undefined; + } + function abortParsingListOrMoveToNextToken(kind) { + parseErrorAtCurrentToken(parsingContextErrors(kind)); + if (isInSomeParsingContext()) { + return true; + } + nextToken(); + return false; + } + function parseDelimitedList(kind, parseElement, considerSemicolonAsDelimeter) { + var saveParsingContext = parsingContext; + parsingContext |= 1 << kind; + var result = []; + result.pos = getNodePos(); + var commaStart = -1; + while (true) { + if (isListElement(kind, false)) { + result.push(parseListElement(kind, parseElement)); + commaStart = scanner.getTokenPos(); + if (parseOptional(23)) { + continue; + } + commaStart = -1; + if (isListTerminator(kind)) { + break; + } + parseExpected(23); + if (considerSemicolonAsDelimeter && token === 22 && !scanner.hasPrecedingLineBreak()) { + nextToken(); + } + continue; + } + if (isListTerminator(kind)) { + break; + } + if (abortParsingListOrMoveToNextToken(kind)) { + break; + } + } + if (commaStart >= 0) { + result.hasTrailingComma = true; + } + result.end = getNodeEnd(); + parsingContext = saveParsingContext; + return result; + } + function createMissingList() { + var pos = getNodePos(); + var result = []; + result.pos = pos; + result.end = pos; + return result; + } + function parseBracketedList(kind, parseElement, open, close) { + if (parseExpected(open)) { + var result = parseDelimitedList(kind, parseElement); + parseExpected(close); + return result; + } + return createMissingList(); + } + function parseEntityName(allowReservedWords, diagnosticMessage) { + var entity = parseIdentifier(diagnosticMessage); + while (parseOptional(20)) { + var node = createNode(126, entity.pos); + node.left = entity; + node.right = parseRightSideOfDot(allowReservedWords); + entity = finishNode(node); + } + return entity; + } + function parseRightSideOfDot(allowIdentifierNames) { + if (scanner.hasPrecedingLineBreak() && scanner.isReservedWord()) { + var matchesPattern = lookAhead(nextTokenIsIdentifierOrKeywordOnSameLine); + if (matchesPattern) { + return createMissingNode(65, true, ts.Diagnostics.Identifier_expected); + } + } + return allowIdentifierNames ? parseIdentifierName() : parseIdentifier(); + } + function parseTemplateExpression() { + var template = createNode(171); + template.head = parseLiteralNode(); + ts.Debug.assert(template.head.kind === 11, "Template head has wrong token kind"); + var templateSpans = []; + templateSpans.pos = getNodePos(); + do { + templateSpans.push(parseTemplateSpan()); + } while (templateSpans[templateSpans.length - 1].literal.kind === 12); + templateSpans.end = getNodeEnd(); + template.templateSpans = templateSpans; + return finishNode(template); + } + function parseTemplateSpan() { + var span = createNode(176); + span.expression = allowInAnd(parseExpression); + var literal; + if (token === 15) { + reScanTemplateToken(); + literal = parseLiteralNode(); + } + else { + literal = parseExpectedToken(13, false, ts.Diagnostics._0_expected, ts.tokenToString(15)); + } + span.literal = literal; + return finishNode(span); + } + function parseLiteralNode(internName) { + var node = createNode(token); + var text = scanner.getTokenValue(); + node.text = internName ? internIdentifier(text) : text; + if (scanner.hasExtendedUnicodeEscape()) { + node.hasExtendedUnicodeEscape = true; + } + if (scanner.isUnterminated()) { + node.isUnterminated = true; + } + var tokenPos = scanner.getTokenPos(); + nextToken(); + finishNode(node); + if (node.kind === 7 + && sourceText.charCodeAt(tokenPos) === 48 + && ts.isOctalDigit(sourceText.charCodeAt(tokenPos + 1))) { + node.flags |= 16384; + } + return node; + } + function parseTypeReference() { + var node = createNode(141); + node.typeName = parseEntityName(false, ts.Diagnostics.Type_expected); + if (!scanner.hasPrecedingLineBreak() && token === 24) { + node.typeArguments = parseBracketedList(17, parseType, 24, 25); + } + return finishNode(node); + } + function parseTypeQuery() { + var node = createNode(144); + parseExpected(97); + node.exprName = parseEntityName(true); + return finishNode(node); + } + function parseTypeParameter() { + var node = createNode(128); + node.name = parseIdentifier(); + if (parseOptional(79)) { + if (isStartOfType() || !isStartOfExpression()) { + node.constraint = parseType(); + } + else { + node.expression = parseUnaryExpressionOrHigher(); + } + } + return finishNode(node); + } + function parseTypeParameters() { + if (token === 24) { + return parseBracketedList(16, parseTypeParameter, 24, 25); + } + } + function parseParameterType() { + if (parseOptional(51)) { + return token === 8 + ? parseLiteralNode(true) + : parseType(); + } + return undefined; + } + function isStartOfParameter() { + return token === 21 || isIdentifierOrPattern() || ts.isModifier(token) || token === 52; + } + function setModifiers(node, modifiers) { + if (modifiers) { + node.flags |= modifiers.flags; + node.modifiers = modifiers; + } + } + function parseParameter() { + var node = createNode(129); + node.decorators = parseDecorators(); + setModifiers(node, parseModifiers()); + node.dotDotDotToken = parseOptionalToken(21); + node.name = inGeneratorParameterContext() ? doInYieldContext(parseIdentifierOrPattern) : parseIdentifierOrPattern(); + if (ts.getFullWidth(node.name) === 0 && node.flags === 0 && ts.isModifier(token)) { + nextToken(); + } + node.questionToken = parseOptionalToken(50); + node.type = parseParameterType(); + node.initializer = inGeneratorParameterContext() ? doOutsideOfYieldContext(parseParameterInitializer) : parseParameterInitializer(); + return finishNode(node); + } + function parseParameterInitializer() { + return parseInitializer(true); + } + function fillSignature(returnToken, yieldAndGeneratorParameterContext, requireCompleteParameterList, signature) { + var returnTokenRequired = returnToken === 32; + signature.typeParameters = parseTypeParameters(); + signature.parameters = parseParameterList(yieldAndGeneratorParameterContext, requireCompleteParameterList); + if (returnTokenRequired) { + parseExpected(returnToken); + signature.type = parseType(); + } + else if (parseOptional(returnToken)) { + signature.type = parseType(); + } + } + function parseParameterList(yieldAndGeneratorParameterContext, requireCompleteParameterList) { + if (parseExpected(16)) { + var savedYieldContext = inYieldContext(); + var savedGeneratorParameterContext = inGeneratorParameterContext(); + setYieldContext(yieldAndGeneratorParameterContext); + setGeneratorParameterContext(yieldAndGeneratorParameterContext); + var result = parseDelimitedList(15, parseParameter); + setYieldContext(savedYieldContext); + setGeneratorParameterContext(savedGeneratorParameterContext); + if (!parseExpected(17) && requireCompleteParameterList) { + return undefined; + } + return result; + } + return requireCompleteParameterList ? undefined : createMissingList(); + } + function parseTypeMemberSemicolon() { + if (parseOptional(23)) { + return; + } + parseSemicolon(); + } + function parseSignatureMember(kind) { + var node = createNode(kind); + if (kind === 139) { + parseExpected(88); + } + fillSignature(51, false, false, node); + parseTypeMemberSemicolon(); + return finishNode(node); + } + function isIndexSignature() { + if (token !== 18) { + return false; + } + return lookAhead(isUnambiguouslyIndexSignature); + } + function isUnambiguouslyIndexSignature() { + nextToken(); + if (token === 21 || token === 19) { + return true; + } + if (ts.isModifier(token)) { + nextToken(); + if (isIdentifier()) { + return true; + } + } + else if (!isIdentifier()) { + return false; + } + else { + nextToken(); + } + if (token === 51 || token === 23) { + return true; + } + if (token !== 50) { + return false; + } + nextToken(); + return token === 51 || token === 23 || token === 19; + } + function parseIndexSignatureDeclaration(fullStart, decorators, modifiers) { + var node = createNode(140, fullStart); + node.decorators = decorators; + setModifiers(node, modifiers); + node.parameters = parseBracketedList(15, parseParameter, 18, 19); + node.type = parseTypeAnnotation(); + parseTypeMemberSemicolon(); + return finishNode(node); + } + function parsePropertyOrMethodSignature() { + var fullStart = scanner.getStartPos(); + var name = parsePropertyName(); + var questionToken = parseOptionalToken(50); + if (token === 16 || token === 24) { + var method = createNode(133, fullStart); + method.name = name; + method.questionToken = questionToken; + fillSignature(51, false, false, method); + parseTypeMemberSemicolon(); + return finishNode(method); + } + else { + var property = createNode(131, fullStart); + property.name = name; + property.questionToken = questionToken; + property.type = parseTypeAnnotation(); + parseTypeMemberSemicolon(); + return finishNode(property); + } + } + function isStartOfTypeMember() { + switch (token) { + case 16: + case 24: + case 18: + return true; + default: + if (ts.isModifier(token)) { + var result = lookAhead(isStartOfIndexSignatureDeclaration); + if (result) { + return result; + } + } + return isLiteralPropertyName() && lookAhead(isTypeMemberWithLiteralPropertyName); + } + } + function isStartOfIndexSignatureDeclaration() { + while (ts.isModifier(token)) { + nextToken(); + } + return isIndexSignature(); + } + function isTypeMemberWithLiteralPropertyName() { + nextToken(); + return token === 16 || + token === 24 || + token === 50 || + token === 51 || + canParseSemicolon(); + } + function parseTypeMember() { + switch (token) { + case 16: + case 24: + return parseSignatureMember(138); + case 18: + return isIndexSignature() + ? parseIndexSignatureDeclaration(scanner.getStartPos(), undefined, undefined) + : parsePropertyOrMethodSignature(); + case 88: + if (lookAhead(isStartOfConstructSignature)) { + return parseSignatureMember(139); + } + case 8: + case 7: + return parsePropertyOrMethodSignature(); + default: + if (ts.isModifier(token)) { + var result = tryParse(parseIndexSignatureWithModifiers); + if (result) { + return result; + } + } + if (isIdentifierOrKeyword()) { + return parsePropertyOrMethodSignature(); + } + } + } + function parseIndexSignatureWithModifiers() { + var fullStart = scanner.getStartPos(); + var decorators = parseDecorators(); + var modifiers = parseModifiers(); + return isIndexSignature() + ? parseIndexSignatureDeclaration(fullStart, decorators, modifiers) + : undefined; + } + function isStartOfConstructSignature() { + nextToken(); + return token === 16 || token === 24; + } + function parseTypeLiteral() { + var node = createNode(145); + node.members = parseObjectTypeMembers(); + return finishNode(node); + } + function parseObjectTypeMembers() { + var members; + if (parseExpected(14)) { + members = parseList(5, false, parseTypeMember); + parseExpected(15); + } + else { + members = createMissingList(); + } + return members; + } + function parseTupleType() { + var node = createNode(147); + node.elementTypes = parseBracketedList(18, parseType, 18, 19); + return finishNode(node); + } + function parseParenthesizedType() { + var node = createNode(149); + parseExpected(16); + node.type = parseType(); + parseExpected(17); + return finishNode(node); + } + function parseFunctionOrConstructorType(kind) { + var node = createNode(kind); + if (kind === 143) { + parseExpected(88); + } + fillSignature(32, false, false, node); + return finishNode(node); + } + function parseKeywordAndNoDot() { + var node = parseTokenNode(); + return token === 20 ? undefined : node; + } + function parseNonArrayType() { + switch (token) { + case 112: + case 121: + case 119: + case 113: + case 122: + var node = tryParse(parseKeywordAndNoDot); + return node || parseTypeReference(); + case 99: + return parseTokenNode(); + case 97: + return parseTypeQuery(); + case 14: + return parseTypeLiteral(); + case 18: + return parseTupleType(); + case 16: + return parseParenthesizedType(); + default: + return parseTypeReference(); + } + } + function isStartOfType() { + switch (token) { + case 112: + case 121: + case 119: + case 113: + case 122: + case 99: + case 97: + case 14: + case 18: + case 24: + case 88: + return true; + case 16: + return lookAhead(isStartOfParenthesizedOrFunctionType); + default: + return isIdentifier(); + } + } + function isStartOfParenthesizedOrFunctionType() { + nextToken(); + return token === 17 || isStartOfParameter() || isStartOfType(); + } + function parseArrayTypeOrHigher() { + var type = parseNonArrayType(); + while (!scanner.hasPrecedingLineBreak() && parseOptional(18)) { + parseExpected(19); + var node = createNode(146, type.pos); + node.elementType = type; + type = finishNode(node); + } + return type; + } + function parseUnionTypeOrHigher() { + var type = parseArrayTypeOrHigher(); + if (token === 44) { + var types = [type]; + types.pos = type.pos; + while (parseOptional(44)) { + types.push(parseArrayTypeOrHigher()); + } + types.end = getNodeEnd(); + var node = createNode(148, type.pos); + node.types = types; + type = finishNode(node); + } + return type; + } + function isStartOfFunctionType() { + if (token === 24) { + return true; + } + return token === 16 && lookAhead(isUnambiguouslyStartOfFunctionType); + } + function isUnambiguouslyStartOfFunctionType() { + nextToken(); + if (token === 17 || token === 21) { + return true; + } + if (isIdentifier() || ts.isModifier(token)) { + nextToken(); + if (token === 51 || token === 23 || + token === 50 || token === 53 || + isIdentifier() || ts.isModifier(token)) { + return true; + } + if (token === 17) { + nextToken(); + if (token === 32) { + return true; + } + } + } + return false; + } + function parseType() { + var savedYieldContext = inYieldContext(); + var savedGeneratorParameterContext = inGeneratorParameterContext(); + setYieldContext(false); + setGeneratorParameterContext(false); + var result = parseTypeWorker(); + setYieldContext(savedYieldContext); + setGeneratorParameterContext(savedGeneratorParameterContext); + return result; + } + function parseTypeWorker() { + if (isStartOfFunctionType()) { + return parseFunctionOrConstructorType(142); + } + if (token === 88) { + return parseFunctionOrConstructorType(143); + } + return parseUnionTypeOrHigher(); + } + function parseTypeAnnotation() { + return parseOptional(51) ? parseType() : undefined; + } + function isStartOfLeftHandSideExpression() { + switch (token) { + case 93: + case 91: + case 89: + case 95: + case 80: + case 7: + case 8: + case 10: + case 11: + case 16: + case 18: + case 14: + case 83: + case 69: + case 88: + case 36: + case 57: + case 65: + return true; + default: + return isIdentifier(); + } + } + function isStartOfExpression() { + if (isStartOfLeftHandSideExpression()) { + return true; + } + switch (token) { + case 33: + case 34: + case 47: + case 46: + case 74: + case 97: + case 99: + case 38: + case 39: + case 24: + case 111: + return true; + default: + if (isBinaryOperator()) { + return true; + } + return isIdentifier(); + } + } + function isStartOfExpressionStatement() { + return token !== 14 && + token !== 83 && + token !== 69 && + token !== 52 && + isStartOfExpression(); + } + function parseExpression() { + // Expression[in]: + // AssignmentExpression[in] + // Expression[in] , AssignmentExpression[in] + var saveDecoratorContext = inDecoratorContext(); + if (saveDecoratorContext) { + setDecoratorContext(false); + } + var expr = parseAssignmentExpressionOrHigher(); + var operatorToken; + while ((operatorToken = parseOptionalToken(23))) { + expr = makeBinaryExpression(expr, operatorToken, parseAssignmentExpressionOrHigher()); + } + if (saveDecoratorContext) { + setDecoratorContext(true); + } + return expr; + } + function parseInitializer(inParameter) { + if (token !== 53) { + if (scanner.hasPrecedingLineBreak() || (inParameter && token === 14) || !isStartOfExpression()) { + return undefined; + } + } + parseExpected(53); + return parseAssignmentExpressionOrHigher(); + } + function parseAssignmentExpressionOrHigher() { + // AssignmentExpression[in,yield]: + // 1) ConditionalExpression[?in,?yield] + // 2) LeftHandSideExpression = AssignmentExpression[?in,?yield] + // 3) LeftHandSideExpression AssignmentOperator AssignmentExpression[?in,?yield] + // 4) ArrowFunctionExpression[?in,?yield] + // 5) [+Yield] YieldExpression[?In] + // + // Note: for ease of implementation we treat productions '2' and '3' as the same thing. + // (i.e. they're both BinaryExpressions with an assignment operator in it). + if (isYieldExpression()) { + return parseYieldExpression(); + } + var arrowExpression = tryParseParenthesizedArrowFunctionExpression(); + if (arrowExpression) { + return arrowExpression; + } + var expr = parseBinaryExpressionOrHigher(0); + if (expr.kind === 65 && token === 32) { + return parseSimpleArrowFunctionExpression(expr); + } + if (isLeftHandSideExpression(expr) && isAssignmentOperator(reScanGreaterToken())) { + return makeBinaryExpression(expr, parseTokenNode(), parseAssignmentExpressionOrHigher()); + } + return parseConditionalExpressionRest(expr); + } + function isYieldExpression() { + if (token === 111) { + if (inYieldContext()) { + return true; + } + if (inStrictModeContext()) { + return true; + } + return lookAhead(nextTokenIsIdentifierOnSameLine); + } + return false; + } + function nextTokenIsIdentifierOnSameLine() { + nextToken(); + return !scanner.hasPrecedingLineBreak() && isIdentifier(); + } + function nextTokenIsIdentifierOrStartOfDestructuringOnTheSameLine() { + nextToken(); + return !scanner.hasPrecedingLineBreak() && + (isIdentifier() || token === 14 || token === 18); + } + function parseYieldExpression() { + var node = createNode(172); + nextToken(); + if (!scanner.hasPrecedingLineBreak() && + (token === 35 || isStartOfExpression())) { + node.asteriskToken = parseOptionalToken(35); + node.expression = parseAssignmentExpressionOrHigher(); + return finishNode(node); + } + else { + return finishNode(node); + } + } + function parseSimpleArrowFunctionExpression(identifier) { + ts.Debug.assert(token === 32, "parseSimpleArrowFunctionExpression should only have been called if we had a =>"); + var node = createNode(163, identifier.pos); + var parameter = createNode(129, identifier.pos); + parameter.name = identifier; + finishNode(parameter); + node.parameters = [parameter]; + node.parameters.pos = parameter.pos; + node.parameters.end = parameter.end; + node.equalsGreaterThanToken = parseExpectedToken(32, false, ts.Diagnostics._0_expected, "=>"); + node.body = parseArrowFunctionExpressionBody(); + return finishNode(node); + } + function tryParseParenthesizedArrowFunctionExpression() { + var triState = isParenthesizedArrowFunctionExpression(); + if (triState === 0) { + return undefined; + } + var arrowFunction = triState === 1 + ? parseParenthesizedArrowFunctionExpressionHead(true) + : tryParse(parsePossibleParenthesizedArrowFunctionExpressionHead); + if (!arrowFunction) { + return undefined; + } + var lastToken = token; + arrowFunction.equalsGreaterThanToken = parseExpectedToken(32, false, ts.Diagnostics._0_expected, "=>"); + arrowFunction.body = (lastToken === 32 || lastToken === 14) + ? parseArrowFunctionExpressionBody() + : parseIdentifier(); + return finishNode(arrowFunction); + } + function isParenthesizedArrowFunctionExpression() { + if (token === 16 || token === 24) { + return lookAhead(isParenthesizedArrowFunctionExpressionWorker); + } + if (token === 32) { + return 1; + } + return 0; + } + function isParenthesizedArrowFunctionExpressionWorker() { + var first = token; + var second = nextToken(); + if (first === 16) { + if (second === 17) { + var third = nextToken(); + switch (third) { + case 32: + case 51: + case 14: + return 1; + default: + return 0; + } + } + if (second === 21) { + return 1; + } + if (!isIdentifier()) { + return 0; + } + if (nextToken() === 51) { + return 1; + } + return 2; + } + else { + ts.Debug.assert(first === 24); + if (!isIdentifier()) { + return 0; + } + return 2; + } + } + function parsePossibleParenthesizedArrowFunctionExpressionHead() { + return parseParenthesizedArrowFunctionExpressionHead(false); + } + function parseParenthesizedArrowFunctionExpressionHead(allowAmbiguity) { + var node = createNode(163); + fillSignature(51, false, !allowAmbiguity, node); + if (!node.parameters) { + return undefined; + } + if (!allowAmbiguity && token !== 32 && token !== 14) { + return undefined; + } + return node; + } + function parseArrowFunctionExpressionBody() { + if (token === 14) { + return parseFunctionBlock(false, false); + } + if (isStartOfStatement(true) && + !isStartOfExpressionStatement() && + token !== 83 && + token !== 69) { + return parseFunctionBlock(false, true); + } + return parseAssignmentExpressionOrHigher(); + } + function parseConditionalExpressionRest(leftOperand) { + var questionToken = parseOptionalToken(50); + if (!questionToken) { + return leftOperand; + } + var node = createNode(170, leftOperand.pos); + node.condition = leftOperand; + node.questionToken = questionToken; + node.whenTrue = doOutsideOfContext(disallowInAndDecoratorContext, parseAssignmentExpressionOrHigher); + node.colonToken = parseExpectedToken(51, false, ts.Diagnostics._0_expected, ts.tokenToString(51)); + node.whenFalse = parseAssignmentExpressionOrHigher(); + return finishNode(node); + } + function parseBinaryExpressionOrHigher(precedence) { + var leftOperand = parseUnaryExpressionOrHigher(); + return parseBinaryExpressionRest(precedence, leftOperand); + } + function isInOrOfKeyword(t) { + return t === 86 || t === 125; + } + function parseBinaryExpressionRest(precedence, leftOperand) { + while (true) { + reScanGreaterToken(); + var newPrecedence = getBinaryOperatorPrecedence(); + if (newPrecedence <= precedence) { + break; + } + if (token === 86 && inDisallowInContext()) { + break; + } + leftOperand = makeBinaryExpression(leftOperand, parseTokenNode(), parseBinaryExpressionOrHigher(newPrecedence)); + } + return leftOperand; + } + function isBinaryOperator() { + if (inDisallowInContext() && token === 86) { + return false; + } + return getBinaryOperatorPrecedence() > 0; + } + function getBinaryOperatorPrecedence() { + switch (token) { + case 49: + return 1; + case 48: + return 2; + case 44: + return 3; + case 45: + return 4; + case 43: + return 5; + case 28: + case 29: + case 30: + case 31: + return 6; + case 24: + case 25: + case 26: + case 27: + case 87: + case 86: + return 7; + case 40: + case 41: + case 42: + return 8; + case 33: + case 34: + return 9; + case 35: + case 36: + case 37: + return 10; + } + return -1; + } + function makeBinaryExpression(left, operatorToken, right) { + var node = createNode(169, left.pos); + node.left = left; + node.operatorToken = operatorToken; + node.right = right; + return finishNode(node); + } + function parsePrefixUnaryExpression() { + var node = createNode(167); + node.operator = token; + nextToken(); + node.operand = parseUnaryExpressionOrHigher(); + return finishNode(node); + } + function parseDeleteExpression() { + var node = createNode(164); + nextToken(); + node.expression = parseUnaryExpressionOrHigher(); + return finishNode(node); + } + function parseTypeOfExpression() { + var node = createNode(165); + nextToken(); + node.expression = parseUnaryExpressionOrHigher(); + return finishNode(node); + } + function parseVoidExpression() { + var node = createNode(166); + nextToken(); + node.expression = parseUnaryExpressionOrHigher(); + return finishNode(node); + } + function parseUnaryExpressionOrHigher() { + switch (token) { + case 33: + case 34: + case 47: + case 46: + case 38: + case 39: + return parsePrefixUnaryExpression(); + case 74: + return parseDeleteExpression(); + case 97: + return parseTypeOfExpression(); + case 99: + return parseVoidExpression(); + case 24: + return parseTypeAssertion(); + default: + return parsePostfixExpressionOrHigher(); + } + } + function parsePostfixExpressionOrHigher() { + var expression = parseLeftHandSideExpressionOrHigher(); + ts.Debug.assert(isLeftHandSideExpression(expression)); + if ((token === 38 || token === 39) && !scanner.hasPrecedingLineBreak()) { + var node = createNode(168, expression.pos); + node.operand = expression; + node.operator = token; + nextToken(); + return finishNode(node); + } + return expression; + } + function parseLeftHandSideExpressionOrHigher() { + var expression = token === 91 + ? parseSuperExpression() + : parseMemberExpressionOrHigher(); + return parseCallExpressionRest(expression); + } + function parseMemberExpressionOrHigher() { + var expression = parsePrimaryExpression(); + return parseMemberExpressionRest(expression); + } + function parseSuperExpression() { + var expression = parseTokenNode(); + if (token === 16 || token === 20) { + return expression; + } + var node = createNode(155, expression.pos); + node.expression = expression; + node.dotToken = parseExpectedToken(20, false, ts.Diagnostics.super_must_be_followed_by_an_argument_list_or_member_access); + node.name = parseRightSideOfDot(true); + return finishNode(node); + } + function parseTypeAssertion() { + var node = createNode(160); + parseExpected(24); + node.type = parseType(); + parseExpected(25); + node.expression = parseUnaryExpressionOrHigher(); + return finishNode(node); + } + function parseMemberExpressionRest(expression) { + while (true) { + var dotToken = parseOptionalToken(20); + if (dotToken) { + var propertyAccess = createNode(155, expression.pos); + propertyAccess.expression = expression; + propertyAccess.dotToken = dotToken; + propertyAccess.name = parseRightSideOfDot(true); + expression = finishNode(propertyAccess); + continue; + } + if (!inDecoratorContext() && parseOptional(18)) { + var indexedAccess = createNode(156, expression.pos); + indexedAccess.expression = expression; + if (token !== 19) { + indexedAccess.argumentExpression = allowInAnd(parseExpression); + if (indexedAccess.argumentExpression.kind === 8 || indexedAccess.argumentExpression.kind === 7) { + var literal = indexedAccess.argumentExpression; + literal.text = internIdentifier(literal.text); + } + } + parseExpected(19); + expression = finishNode(indexedAccess); + continue; + } + if (token === 10 || token === 11) { + var tagExpression = createNode(159, expression.pos); + tagExpression.tag = expression; + tagExpression.template = token === 10 + ? parseLiteralNode() + : parseTemplateExpression(); + expression = finishNode(tagExpression); + continue; + } + return expression; + } + } + function parseCallExpressionRest(expression) { + while (true) { + expression = parseMemberExpressionRest(expression); + if (token === 24) { + var typeArguments = tryParse(parseTypeArgumentsInExpression); + if (!typeArguments) { + return expression; + } + var callExpr = createNode(157, expression.pos); + callExpr.expression = expression; + callExpr.typeArguments = typeArguments; + callExpr.arguments = parseArgumentList(); + expression = finishNode(callExpr); + continue; + } + else if (token === 16) { + var callExpr = createNode(157, expression.pos); + callExpr.expression = expression; + callExpr.arguments = parseArgumentList(); + expression = finishNode(callExpr); + continue; + } + return expression; + } + } + function parseArgumentList() { + parseExpected(16); + var result = parseDelimitedList(12, parseArgumentExpression); + parseExpected(17); + return result; + } + function parseTypeArgumentsInExpression() { + if (!parseOptional(24)) { + return undefined; + } + var typeArguments = parseDelimitedList(17, parseType); + if (!parseExpected(25)) { + return undefined; + } + return typeArguments && canFollowTypeArgumentsInExpression() + ? typeArguments + : undefined; + } + function canFollowTypeArgumentsInExpression() { + switch (token) { + case 16: + case 20: + case 17: + case 19: + case 51: + case 22: + case 50: + case 28: + case 30: + case 29: + case 31: + case 48: + case 49: + case 45: + case 43: + case 44: + case 15: + case 1: + return true; + case 23: + case 14: + default: + return false; + } + } + function parsePrimaryExpression() { + switch (token) { + case 7: + case 8: + case 10: + return parseLiteralNode(); + case 93: + case 91: + case 89: + case 95: + case 80: + return parseTokenNode(); + case 16: + return parseParenthesizedExpression(); + case 18: + return parseArrayLiteralExpression(); + case 14: + return parseObjectLiteralExpression(); + case 69: + return parseClassExpression(); + case 83: + return parseFunctionExpression(); + case 88: + return parseNewExpression(); + case 36: + case 57: + if (reScanSlashToken() === 9) { + return parseLiteralNode(); + } + break; + case 11: + return parseTemplateExpression(); + } + return parseIdentifier(ts.Diagnostics.Expression_expected); + } + function parseParenthesizedExpression() { + var node = createNode(161); + parseExpected(16); + node.expression = allowInAnd(parseExpression); + parseExpected(17); + return finishNode(node); + } + function parseSpreadElement() { + var node = createNode(173); + parseExpected(21); + node.expression = parseAssignmentExpressionOrHigher(); + return finishNode(node); + } + function parseArgumentOrArrayLiteralElement() { + return token === 21 ? parseSpreadElement() : + token === 23 ? createNode(175) : + parseAssignmentExpressionOrHigher(); + } + function parseArgumentExpression() { + return doOutsideOfContext(disallowInAndDecoratorContext, parseArgumentOrArrayLiteralElement); + } + function parseArrayLiteralExpression() { + var node = createNode(153); + parseExpected(18); + if (scanner.hasPrecedingLineBreak()) + node.flags |= 512; + node.elements = parseDelimitedList(14, parseArgumentOrArrayLiteralElement); + parseExpected(19); + return finishNode(node); + } + function tryParseAccessorDeclaration(fullStart, decorators, modifiers) { + if (parseContextualModifier(116)) { + return parseAccessorDeclaration(136, fullStart, decorators, modifiers); + } + else if (parseContextualModifier(120)) { + return parseAccessorDeclaration(137, fullStart, decorators, modifiers); + } + return undefined; + } + function parseObjectLiteralElement() { + var fullStart = scanner.getStartPos(); + var decorators = parseDecorators(); + var modifiers = parseModifiers(); + var accessor = tryParseAccessorDeclaration(fullStart, decorators, modifiers); + if (accessor) { + return accessor; + } + var asteriskToken = parseOptionalToken(35); + var tokenIsIdentifier = isIdentifier(); + var nameToken = token; + var propertyName = parsePropertyName(); + var questionToken = parseOptionalToken(50); + if (asteriskToken || token === 16 || token === 24) { + return parseMethodDeclaration(fullStart, decorators, modifiers, asteriskToken, propertyName, questionToken); + } + if ((token === 23 || token === 15) && tokenIsIdentifier) { + var shorthandDeclaration = createNode(225, fullStart); + shorthandDeclaration.name = propertyName; + shorthandDeclaration.questionToken = questionToken; + return finishNode(shorthandDeclaration); + } + else { + var propertyAssignment = createNode(224, fullStart); + propertyAssignment.name = propertyName; + propertyAssignment.questionToken = questionToken; + parseExpected(51); + propertyAssignment.initializer = allowInAnd(parseAssignmentExpressionOrHigher); + return finishNode(propertyAssignment); + } + } + function parseObjectLiteralExpression() { + var node = createNode(154); + parseExpected(14); + if (scanner.hasPrecedingLineBreak()) { + node.flags |= 512; + } + node.properties = parseDelimitedList(13, parseObjectLiteralElement, true); + parseExpected(15); + return finishNode(node); + } + function parseFunctionExpression() { + var saveDecoratorContext = inDecoratorContext(); + if (saveDecoratorContext) { + setDecoratorContext(false); + } + var node = createNode(162); + parseExpected(83); + node.asteriskToken = parseOptionalToken(35); + node.name = node.asteriskToken ? doInYieldContext(parseOptionalIdentifier) : parseOptionalIdentifier(); + fillSignature(51, !!node.asteriskToken, false, node); + node.body = parseFunctionBlock(!!node.asteriskToken, false); + if (saveDecoratorContext) { + setDecoratorContext(true); + } + return finishNode(node); + } + function parseOptionalIdentifier() { + return isIdentifier() ? parseIdentifier() : undefined; + } + function parseNewExpression() { + var node = createNode(158); + parseExpected(88); + node.expression = parseMemberExpressionOrHigher(); + node.typeArguments = tryParse(parseTypeArgumentsInExpression); + if (node.typeArguments || token === 16) { + node.arguments = parseArgumentList(); + } + return finishNode(node); + } + function parseBlock(ignoreMissingOpenBrace, checkForStrictMode, diagnosticMessage) { + var node = createNode(179); + if (parseExpected(14, diagnosticMessage) || ignoreMissingOpenBrace) { + node.statements = parseList(2, checkForStrictMode, parseStatement); + parseExpected(15); + } + else { + node.statements = createMissingList(); + } + return finishNode(node); + } + function parseFunctionBlock(allowYield, ignoreMissingOpenBrace, diagnosticMessage) { + var savedYieldContext = inYieldContext(); + setYieldContext(allowYield); + var saveDecoratorContext = inDecoratorContext(); + if (saveDecoratorContext) { + setDecoratorContext(false); + } + var block = parseBlock(ignoreMissingOpenBrace, true, diagnosticMessage); + if (saveDecoratorContext) { + setDecoratorContext(true); + } + setYieldContext(savedYieldContext); + return block; + } + function parseEmptyStatement() { + var node = createNode(181); + parseExpected(22); + return finishNode(node); + } + function parseIfStatement() { + var node = createNode(183); + parseExpected(84); + parseExpected(16); + node.expression = allowInAnd(parseExpression); + parseExpected(17); + node.thenStatement = parseStatement(); + node.elseStatement = parseOptional(76) ? parseStatement() : undefined; + return finishNode(node); + } + function parseDoStatement() { + var node = createNode(184); + parseExpected(75); + node.statement = parseStatement(); + parseExpected(100); + parseExpected(16); + node.expression = allowInAnd(parseExpression); + parseExpected(17); + parseOptional(22); + return finishNode(node); + } + function parseWhileStatement() { + var node = createNode(185); + parseExpected(100); + parseExpected(16); + node.expression = allowInAnd(parseExpression); + parseExpected(17); + node.statement = parseStatement(); + return finishNode(node); + } + function parseForOrForInOrForOfStatement() { + var pos = getNodePos(); + parseExpected(82); + parseExpected(16); + var initializer = undefined; + if (token !== 22) { + if (token === 98 || token === 105 || token === 70) { + initializer = parseVariableDeclarationList(true); + } + else { + initializer = disallowInAnd(parseExpression); + } + } + var forOrForInOrForOfStatement; + if (parseOptional(86)) { + var forInStatement = createNode(187, pos); + forInStatement.initializer = initializer; + forInStatement.expression = allowInAnd(parseExpression); + parseExpected(17); + forOrForInOrForOfStatement = forInStatement; + } + else if (parseOptional(125)) { + var forOfStatement = createNode(188, pos); + forOfStatement.initializer = initializer; + forOfStatement.expression = allowInAnd(parseAssignmentExpressionOrHigher); + parseExpected(17); + forOrForInOrForOfStatement = forOfStatement; + } + else { + var forStatement = createNode(186, pos); + forStatement.initializer = initializer; + parseExpected(22); + if (token !== 22 && token !== 17) { + forStatement.condition = allowInAnd(parseExpression); + } + parseExpected(22); + if (token !== 17) { + forStatement.iterator = allowInAnd(parseExpression); + } + parseExpected(17); + forOrForInOrForOfStatement = forStatement; + } + forOrForInOrForOfStatement.statement = parseStatement(); + return finishNode(forOrForInOrForOfStatement); + } + function parseBreakOrContinueStatement(kind) { + var node = createNode(kind); + parseExpected(kind === 190 ? 66 : 71); + if (!canParseSemicolon()) { + node.label = parseIdentifier(); + } + parseSemicolon(); + return finishNode(node); + } + function parseReturnStatement() { + var node = createNode(191); + parseExpected(90); + if (!canParseSemicolon()) { + node.expression = allowInAnd(parseExpression); + } + parseSemicolon(); + return finishNode(node); + } + function parseWithStatement() { + var node = createNode(192); + parseExpected(101); + parseExpected(16); + node.expression = allowInAnd(parseExpression); + parseExpected(17); + node.statement = parseStatement(); + return finishNode(node); + } + function parseCaseClause() { + var node = createNode(220); + parseExpected(67); + node.expression = allowInAnd(parseExpression); + parseExpected(51); + node.statements = parseList(4, false, parseStatement); + return finishNode(node); + } + function parseDefaultClause() { + var node = createNode(221); + parseExpected(73); + parseExpected(51); + node.statements = parseList(4, false, parseStatement); + return finishNode(node); + } + function parseCaseOrDefaultClause() { + return token === 67 ? parseCaseClause() : parseDefaultClause(); + } + function parseSwitchStatement() { + var node = createNode(193); + parseExpected(92); + parseExpected(16); + node.expression = allowInAnd(parseExpression); + parseExpected(17); + var caseBlock = createNode(207, scanner.getStartPos()); + parseExpected(14); + caseBlock.clauses = parseList(3, false, parseCaseOrDefaultClause); + parseExpected(15); + node.caseBlock = finishNode(caseBlock); + return finishNode(node); + } + function parseThrowStatement() { + // ThrowStatement[Yield] : + // throw [no LineTerminator here]Expression[In, ?Yield]; + var node = createNode(195); + parseExpected(94); + node.expression = scanner.hasPrecedingLineBreak() ? undefined : allowInAnd(parseExpression); + parseSemicolon(); + return finishNode(node); + } + function parseTryStatement() { + var node = createNode(196); + parseExpected(96); + node.tryBlock = parseBlock(false, false); + node.catchClause = token === 68 ? parseCatchClause() : undefined; + if (!node.catchClause || token === 81) { + parseExpected(81); + node.finallyBlock = parseBlock(false, false); + } + return finishNode(node); + } + function parseCatchClause() { + var result = createNode(223); + parseExpected(68); + if (parseExpected(16)) { + result.variableDeclaration = parseVariableDeclaration(); + } + parseExpected(17); + result.block = parseBlock(false, false); + return finishNode(result); + } + function parseDebuggerStatement() { + var node = createNode(197); + parseExpected(72); + parseSemicolon(); + return finishNode(node); + } + function parseExpressionOrLabeledStatement() { + var fullStart = scanner.getStartPos(); + var expression = allowInAnd(parseExpression); + if (expression.kind === 65 && parseOptional(51)) { + var labeledStatement = createNode(194, fullStart); + labeledStatement.label = expression; + labeledStatement.statement = parseStatement(); + return finishNode(labeledStatement); + } + else { + var expressionStatement = createNode(182, fullStart); + expressionStatement.expression = expression; + parseSemicolon(); + return finishNode(expressionStatement); + } + } + function isStartOfStatement(inErrorRecovery) { + if (ts.isModifier(token)) { + var result = lookAhead(parseVariableStatementOrFunctionDeclarationOrClassDeclarationWithDecoratorsOrModifiers); + if (result) { + return true; + } + } + switch (token) { + case 22: + return !inErrorRecovery; + case 14: + case 98: + case 105: + case 83: + case 69: + case 84: + case 75: + case 100: + case 82: + case 71: + case 66: + case 90: + case 101: + case 92: + case 94: + case 96: + case 72: + case 68: + case 81: + return true; + case 70: + var isConstEnum = lookAhead(nextTokenIsEnumKeyword); + return !isConstEnum; + case 104: + case 117: + case 77: + case 123: + if (isDeclarationStart()) { + return false; + } + case 109: + case 107: + case 108: + case 110: + if (lookAhead(nextTokenIsIdentifierOrKeywordOnSameLine)) { + return false; + } + default: + return isStartOfExpression(); + } + } + function nextTokenIsEnumKeyword() { + nextToken(); + return token === 77; + } + function nextTokenIsIdentifierOrKeywordOnSameLine() { + nextToken(); + return isIdentifierOrKeyword() && !scanner.hasPrecedingLineBreak(); + } + function parseStatement() { + switch (token) { + case 14: + return parseBlock(false, false); + case 98: + case 70: + return parseVariableStatement(scanner.getStartPos(), undefined, undefined); + case 83: + return parseFunctionDeclaration(scanner.getStartPos(), undefined, undefined); + case 69: + return parseClassDeclaration(scanner.getStartPos(), undefined, undefined); + case 22: + return parseEmptyStatement(); + case 84: + return parseIfStatement(); + case 75: + return parseDoStatement(); + case 100: + return parseWhileStatement(); + case 82: + return parseForOrForInOrForOfStatement(); + case 71: + return parseBreakOrContinueStatement(189); + case 66: + return parseBreakOrContinueStatement(190); + case 90: + return parseReturnStatement(); + case 101: + return parseWithStatement(); + case 92: + return parseSwitchStatement(); + case 94: + return parseThrowStatement(); + case 96: + case 68: + case 81: + return parseTryStatement(); + case 72: + return parseDebuggerStatement(); + case 105: + if (isLetDeclaration()) { + return parseVariableStatement(scanner.getStartPos(), undefined, undefined); + } + default: + if (ts.isModifier(token) || token === 52) { + var result = tryParse(parseVariableStatementOrFunctionDeclarationOrClassDeclarationWithDecoratorsOrModifiers); + if (result) { + return result; + } + } + return parseExpressionOrLabeledStatement(); + } + } + function parseVariableStatementOrFunctionDeclarationOrClassDeclarationWithDecoratorsOrModifiers() { + var start = scanner.getStartPos(); + var decorators = parseDecorators(); + var modifiers = parseModifiers(); + switch (token) { + case 70: + var nextTokenIsEnum = lookAhead(nextTokenIsEnumKeyword); + if (nextTokenIsEnum) { + return undefined; + } + return parseVariableStatement(start, decorators, modifiers); + case 105: + if (!isLetDeclaration()) { + return undefined; + } + return parseVariableStatement(start, decorators, modifiers); + case 98: + return parseVariableStatement(start, decorators, modifiers); + case 83: + return parseFunctionDeclaration(start, decorators, modifiers); + case 69: + return parseClassDeclaration(start, decorators, modifiers); + } + return undefined; + } + function parseFunctionBlockOrSemicolon(isGenerator, diagnosticMessage) { + if (token !== 14 && canParseSemicolon()) { + parseSemicolon(); + return; + } + return parseFunctionBlock(isGenerator, false, diagnosticMessage); + } + function parseArrayBindingElement() { + if (token === 23) { + return createNode(175); + } + var node = createNode(152); + node.dotDotDotToken = parseOptionalToken(21); + node.name = parseIdentifierOrPattern(); + node.initializer = parseInitializer(false); + return finishNode(node); + } + function parseObjectBindingElement() { + var node = createNode(152); + var id = parsePropertyName(); + if (id.kind === 65 && token !== 51) { + node.name = id; + } + else { + parseExpected(51); + node.propertyName = id; + node.name = parseIdentifierOrPattern(); + } + node.initializer = parseInitializer(false); + return finishNode(node); + } + function parseObjectBindingPattern() { + var node = createNode(150); + parseExpected(14); + node.elements = parseDelimitedList(10, parseObjectBindingElement); + parseExpected(15); + return finishNode(node); + } + function parseArrayBindingPattern() { + var node = createNode(151); + parseExpected(18); + node.elements = parseDelimitedList(11, parseArrayBindingElement); + parseExpected(19); + return finishNode(node); + } + function isIdentifierOrPattern() { + return token === 14 || token === 18 || isIdentifier(); + } + function parseIdentifierOrPattern() { + if (token === 18) { + return parseArrayBindingPattern(); + } + if (token === 14) { + return parseObjectBindingPattern(); + } + return parseIdentifier(); + } + function parseVariableDeclaration() { + var node = createNode(198); + node.name = parseIdentifierOrPattern(); + node.type = parseTypeAnnotation(); + if (!isInOrOfKeyword(token)) { + node.initializer = parseInitializer(false); + } + return finishNode(node); + } + function parseVariableDeclarationList(inForStatementInitializer) { + var node = createNode(199); + switch (token) { + case 98: + break; + case 105: + node.flags |= 4096; + break; + case 70: + node.flags |= 8192; + break; + default: + ts.Debug.fail(); + } + nextToken(); + if (token === 125 && lookAhead(canFollowContextualOfKeyword)) { + node.declarations = createMissingList(); + } + else { + var savedDisallowIn = inDisallowInContext(); + setDisallowInContext(inForStatementInitializer); + node.declarations = parseDelimitedList(9, parseVariableDeclaration); + setDisallowInContext(savedDisallowIn); + } + return finishNode(node); + } + function canFollowContextualOfKeyword() { + return nextTokenIsIdentifier() && nextToken() === 17; + } + function parseVariableStatement(fullStart, decorators, modifiers) { + var node = createNode(180, fullStart); + node.decorators = decorators; + setModifiers(node, modifiers); + node.declarationList = parseVariableDeclarationList(false); + parseSemicolon(); + return finishNode(node); + } + function parseFunctionDeclaration(fullStart, decorators, modifiers) { + var node = createNode(200, fullStart); + node.decorators = decorators; + setModifiers(node, modifiers); + parseExpected(83); + node.asteriskToken = parseOptionalToken(35); + node.name = node.flags & 256 ? parseOptionalIdentifier() : parseIdentifier(); + fillSignature(51, !!node.asteriskToken, false, node); + node.body = parseFunctionBlockOrSemicolon(!!node.asteriskToken, ts.Diagnostics.or_expected); + return finishNode(node); + } + function parseConstructorDeclaration(pos, decorators, modifiers) { + var node = createNode(135, pos); + node.decorators = decorators; + setModifiers(node, modifiers); + parseExpected(114); + fillSignature(51, false, false, node); + node.body = parseFunctionBlockOrSemicolon(false, ts.Diagnostics.or_expected); + return finishNode(node); + } + function parseMethodDeclaration(fullStart, decorators, modifiers, asteriskToken, name, questionToken, diagnosticMessage) { + var method = createNode(134, fullStart); + method.decorators = decorators; + setModifiers(method, modifiers); + method.asteriskToken = asteriskToken; + method.name = name; + method.questionToken = questionToken; + fillSignature(51, !!asteriskToken, false, method); + method.body = parseFunctionBlockOrSemicolon(!!asteriskToken, diagnosticMessage); + return finishNode(method); + } + function parsePropertyDeclaration(fullStart, decorators, modifiers, name, questionToken) { + var property = createNode(132, fullStart); + property.decorators = decorators; + setModifiers(property, modifiers); + property.name = name; + property.questionToken = questionToken; + property.type = parseTypeAnnotation(); + property.initializer = allowInAnd(parseNonParameterInitializer); + parseSemicolon(); + return finishNode(property); + } + function parsePropertyOrMethodDeclaration(fullStart, decorators, modifiers) { + var asteriskToken = parseOptionalToken(35); + var name = parsePropertyName(); + var questionToken = parseOptionalToken(50); + if (asteriskToken || token === 16 || token === 24) { + return parseMethodDeclaration(fullStart, decorators, modifiers, asteriskToken, name, questionToken, ts.Diagnostics.or_expected); + } + else { + return parsePropertyDeclaration(fullStart, decorators, modifiers, name, questionToken); + } + } + function parseNonParameterInitializer() { + return parseInitializer(false); + } + function parseAccessorDeclaration(kind, fullStart, decorators, modifiers) { + var node = createNode(kind, fullStart); + node.decorators = decorators; + setModifiers(node, modifiers); + node.name = parsePropertyName(); + fillSignature(51, false, false, node); + node.body = parseFunctionBlockOrSemicolon(false); + return finishNode(node); + } + function isClassMemberStart() { + var idToken; + if (token === 52) { + return true; + } + while (ts.isModifier(token)) { + idToken = token; + nextToken(); + } + if (token === 35) { + return true; + } + if (isLiteralPropertyName()) { + idToken = token; + nextToken(); + } + if (token === 18) { + return true; + } + if (idToken !== undefined) { + if (!ts.isKeyword(idToken) || idToken === 120 || idToken === 116) { + return true; + } + switch (token) { + case 16: + case 24: + case 51: + case 53: + case 50: + return true; + default: + return canParseSemicolon(); + } + } + return false; + } + function parseDecorators() { + var decorators; + while (true) { + var decoratorStart = getNodePos(); + if (!parseOptional(52)) { + break; + } + if (!decorators) { + decorators = []; + decorators.pos = scanner.getStartPos(); + } + var decorator = createNode(130, decoratorStart); + decorator.expression = doInDecoratorContext(parseLeftHandSideExpressionOrHigher); + decorators.push(finishNode(decorator)); + } + if (decorators) { + decorators.end = getNodeEnd(); + } + return decorators; + } + function parseModifiers() { + var flags = 0; + var modifiers; + while (true) { + var modifierStart = scanner.getStartPos(); + var modifierKind = token; + if (!parseAnyContextualModifier()) { + break; + } + if (!modifiers) { + modifiers = []; + modifiers.pos = modifierStart; + } + flags |= modifierToFlag(modifierKind); + modifiers.push(finishNode(createNode(modifierKind, modifierStart))); + } + if (modifiers) { + modifiers.flags = flags; + modifiers.end = scanner.getStartPos(); + } + return modifiers; + } + function parseClassElement() { + if (token === 22) { + var result = createNode(178); + nextToken(); + return finishNode(result); + } + var fullStart = getNodePos(); + var decorators = parseDecorators(); + var modifiers = parseModifiers(); + var accessor = tryParseAccessorDeclaration(fullStart, decorators, modifiers); + if (accessor) { + return accessor; + } + if (token === 114) { + return parseConstructorDeclaration(fullStart, decorators, modifiers); + } + if (isIndexSignature()) { + return parseIndexSignatureDeclaration(fullStart, decorators, modifiers); + } + if (isIdentifierOrKeyword() || + token === 8 || + token === 7 || + token === 35 || + token === 18) { + return parsePropertyOrMethodDeclaration(fullStart, decorators, modifiers); + } + if (decorators) { + var name_3 = createMissingNode(65, true, ts.Diagnostics.Declaration_expected); + return parsePropertyDeclaration(fullStart, decorators, modifiers, name_3, undefined); + } + ts.Debug.fail("Should not have attempted to parse class member declaration."); + } + function parseClassExpression() { + return parseClassDeclarationOrExpression(scanner.getStartPos(), undefined, undefined, 174); + } + function parseClassDeclaration(fullStart, decorators, modifiers) { + return parseClassDeclarationOrExpression(fullStart, decorators, modifiers, 201); + } + function parseClassDeclarationOrExpression(fullStart, decorators, modifiers, kind) { + var savedStrictModeContext = inStrictModeContext(); + if (languageVersion >= 2) { + setStrictModeContext(true); + } + var node = createNode(kind, fullStart); + node.decorators = decorators; + setModifiers(node, modifiers); + parseExpected(69); + node.name = node.flags & 256 ? parseOptionalIdentifier() : parseIdentifier(); + node.typeParameters = parseTypeParameters(); + node.heritageClauses = parseHeritageClauses(true); + if (parseExpected(14)) { + node.members = inGeneratorParameterContext() + ? doOutsideOfYieldContext(parseClassMembers) + : parseClassMembers(); + parseExpected(15); + } + else { + node.members = createMissingList(); + } + var finishedNode = finishNode(node); + setStrictModeContext(savedStrictModeContext); + return finishedNode; + } + function parseHeritageClauses(isClassHeritageClause) { + // ClassTail[Yield,GeneratorParameter] : See 14.5 + // [~GeneratorParameter]ClassHeritage[?Yield]opt { ClassBody[?Yield]opt } + // [+GeneratorParameter] ClassHeritageopt { ClassBodyopt } + if (isHeritageClause()) { + return isClassHeritageClause && inGeneratorParameterContext() + ? doOutsideOfYieldContext(parseHeritageClausesWorker) + : parseHeritageClausesWorker(); + } + return undefined; + } + function parseHeritageClausesWorker() { + return parseList(19, false, parseHeritageClause); + } + function parseHeritageClause() { + if (token === 79 || token === 103) { + var node = createNode(222); + node.token = token; + nextToken(); + node.types = parseDelimitedList(8, parseHeritageClauseElement); + return finishNode(node); + } + return undefined; + } + function parseHeritageClauseElement() { + var node = createNode(177); + node.expression = parseLeftHandSideExpressionOrHigher(); + if (token === 24) { + node.typeArguments = parseBracketedList(17, parseType, 24, 25); + } + return finishNode(node); + } + function isHeritageClause() { + return token === 79 || token === 103; + } + function parseClassMembers() { + return parseList(6, false, parseClassElement); + } + function parseInterfaceDeclaration(fullStart, decorators, modifiers) { + var node = createNode(202, fullStart); + node.decorators = decorators; + setModifiers(node, modifiers); + parseExpected(104); + node.name = parseIdentifier(); + node.typeParameters = parseTypeParameters(); + node.heritageClauses = parseHeritageClauses(false); + node.members = parseObjectTypeMembers(); + return finishNode(node); + } + function parseTypeAliasDeclaration(fullStart, decorators, modifiers) { + var node = createNode(203, fullStart); + node.decorators = decorators; + setModifiers(node, modifiers); + parseExpected(123); + node.name = parseIdentifier(); + parseExpected(53); + node.type = parseType(); + parseSemicolon(); + return finishNode(node); + } + function parseEnumMember() { + var node = createNode(226, scanner.getStartPos()); + node.name = parsePropertyName(); + node.initializer = allowInAnd(parseNonParameterInitializer); + return finishNode(node); + } + function parseEnumDeclaration(fullStart, decorators, modifiers) { + var node = createNode(204, fullStart); + node.decorators = decorators; + setModifiers(node, modifiers); + parseExpected(77); + node.name = parseIdentifier(); + if (parseExpected(14)) { + node.members = parseDelimitedList(7, parseEnumMember); + parseExpected(15); + } + else { + node.members = createMissingList(); + } + return finishNode(node); + } + function parseModuleBlock() { + var node = createNode(206, scanner.getStartPos()); + if (parseExpected(14)) { + node.statements = parseList(1, false, parseModuleElement); + parseExpected(15); + } + else { + node.statements = createMissingList(); + } + return finishNode(node); + } + function parseInternalModuleTail(fullStart, decorators, modifiers, flags) { + var node = createNode(205, fullStart); + node.decorators = decorators; + setModifiers(node, modifiers); + node.flags |= flags; + node.name = parseIdentifier(); + node.body = parseOptional(20) + ? parseInternalModuleTail(getNodePos(), undefined, undefined, 1) + : parseModuleBlock(); + return finishNode(node); + } + function parseAmbientExternalModuleDeclaration(fullStart, decorators, modifiers) { + var node = createNode(205, fullStart); + node.decorators = decorators; + setModifiers(node, modifiers); + node.name = parseLiteralNode(true); + node.body = parseModuleBlock(); + return finishNode(node); + } + function parseModuleDeclaration(fullStart, decorators, modifiers) { + parseExpected(117); + return token === 8 + ? parseAmbientExternalModuleDeclaration(fullStart, decorators, modifiers) + : parseInternalModuleTail(fullStart, decorators, modifiers, modifiers ? modifiers.flags : 0); + } + function isExternalModuleReference() { + return token === 118 && + lookAhead(nextTokenIsOpenParen); + } + function nextTokenIsOpenParen() { + return nextToken() === 16; + } + function nextTokenIsCommaOrFromKeyword() { + nextToken(); + return token === 23 || + token === 124; + } + function parseImportDeclarationOrImportEqualsDeclaration(fullStart, decorators, modifiers) { + parseExpected(85); + var afterImportPos = scanner.getStartPos(); + var identifier; + if (isIdentifier()) { + identifier = parseIdentifier(); + if (token !== 23 && token !== 124) { + var importEqualsDeclaration = createNode(208, fullStart); + importEqualsDeclaration.decorators = decorators; + setModifiers(importEqualsDeclaration, modifiers); + importEqualsDeclaration.name = identifier; + parseExpected(53); + importEqualsDeclaration.moduleReference = parseModuleReference(); + parseSemicolon(); + return finishNode(importEqualsDeclaration); + } + } + var importDeclaration = createNode(209, fullStart); + importDeclaration.decorators = decorators; + setModifiers(importDeclaration, modifiers); + if (identifier || + token === 35 || + token === 14) { + importDeclaration.importClause = parseImportClause(identifier, afterImportPos); + parseExpected(124); + } + importDeclaration.moduleSpecifier = parseModuleSpecifier(); + parseSemicolon(); + return finishNode(importDeclaration); + } + function parseImportClause(identifier, fullStart) { + //ImportClause: + // ImportedDefaultBinding + // NameSpaceImport + // NamedImports + // ImportedDefaultBinding, NameSpaceImport + // ImportedDefaultBinding, NamedImports + var importClause = createNode(210, fullStart); + if (identifier) { + importClause.name = identifier; + } + if (!importClause.name || + parseOptional(23)) { + importClause.namedBindings = token === 35 ? parseNamespaceImport() : parseNamedImportsOrExports(212); + } + return finishNode(importClause); + } + function parseModuleReference() { + return isExternalModuleReference() + ? parseExternalModuleReference() + : parseEntityName(false); + } + function parseExternalModuleReference() { + var node = createNode(219); + parseExpected(118); + parseExpected(16); + node.expression = parseModuleSpecifier(); + parseExpected(17); + return finishNode(node); + } + function parseModuleSpecifier() { + var result = parseExpression(); + if (result.kind === 8) { + internIdentifier(result.text); + } + return result; + } + function parseNamespaceImport() { + var namespaceImport = createNode(211); + parseExpected(35); + parseExpected(102); + namespaceImport.name = parseIdentifier(); + return finishNode(namespaceImport); + } + function parseNamedImportsOrExports(kind) { + var node = createNode(kind); + node.elements = parseBracketedList(20, kind === 212 ? parseImportSpecifier : parseExportSpecifier, 14, 15); + return finishNode(node); + } + function parseExportSpecifier() { + return parseImportOrExportSpecifier(217); + } + function parseImportSpecifier() { + return parseImportOrExportSpecifier(213); + } + function parseImportOrExportSpecifier(kind) { + var node = createNode(kind); + var checkIdentifierIsKeyword = ts.isKeyword(token) && !isIdentifier(); + var checkIdentifierStart = scanner.getTokenPos(); + var checkIdentifierEnd = scanner.getTextPos(); + var identifierName = parseIdentifierName(); + if (token === 102) { + node.propertyName = identifierName; + parseExpected(102); + checkIdentifierIsKeyword = ts.isKeyword(token) && !isIdentifier(); + checkIdentifierStart = scanner.getTokenPos(); + checkIdentifierEnd = scanner.getTextPos(); + node.name = parseIdentifierName(); + } + else { + node.name = identifierName; + } + if (kind === 213 && checkIdentifierIsKeyword) { + parseErrorAtPosition(checkIdentifierStart, checkIdentifierEnd - checkIdentifierStart, ts.Diagnostics.Identifier_expected); + } + return finishNode(node); + } + function parseExportDeclaration(fullStart, decorators, modifiers) { + var node = createNode(215, fullStart); + node.decorators = decorators; + setModifiers(node, modifiers); + if (parseOptional(35)) { + parseExpected(124); + node.moduleSpecifier = parseModuleSpecifier(); + } + else { + node.exportClause = parseNamedImportsOrExports(216); + if (parseOptional(124)) { + node.moduleSpecifier = parseModuleSpecifier(); + } + } + parseSemicolon(); + return finishNode(node); + } + function parseExportAssignment(fullStart, decorators, modifiers) { + var node = createNode(214, fullStart); + node.decorators = decorators; + setModifiers(node, modifiers); + if (parseOptional(53)) { + node.isExportEquals = true; + node.expression = parseAssignmentExpressionOrHigher(); + } + else { + parseExpected(73); + if (parseOptional(51)) { + node.type = parseType(); + } + else { + node.expression = parseAssignmentExpressionOrHigher(); + } + } + parseSemicolon(); + return finishNode(node); + } + function isLetDeclaration() { + return inStrictModeContext() || lookAhead(nextTokenIsIdentifierOrStartOfDestructuringOnTheSameLine); + } + function isDeclarationStart(followsModifier) { + switch (token) { + case 98: + case 70: + case 83: + return true; + case 105: + return isLetDeclaration(); + case 69: + case 104: + case 77: + case 123: + return lookAhead(nextTokenIsIdentifierOrKeyword); + case 85: + return lookAhead(nextTokenCanFollowImportKeyword); + case 117: + return lookAhead(nextTokenIsIdentifierOrKeywordOrStringLiteral); + case 78: + return lookAhead(nextTokenCanFollowExportKeyword); + case 115: + case 109: + case 107: + case 108: + case 110: + return lookAhead(nextTokenIsDeclarationStart); + case 52: + return !followsModifier; + } + } + function isIdentifierOrKeyword() { + return token >= 65; + } + function nextTokenIsIdentifierOrKeyword() { + nextToken(); + return isIdentifierOrKeyword(); + } + function nextTokenIsIdentifierOrKeywordOrStringLiteral() { + nextToken(); + return isIdentifierOrKeyword() || token === 8; + } + function nextTokenCanFollowImportKeyword() { + nextToken(); + return isIdentifierOrKeyword() || token === 8 || + token === 35 || token === 14; + } + function nextTokenCanFollowExportKeyword() { + nextToken(); + return token === 53 || token === 35 || + token === 14 || token === 73 || isDeclarationStart(true); + } + function nextTokenIsDeclarationStart() { + nextToken(); + return isDeclarationStart(true); + } + function nextTokenIsAsKeyword() { + return nextToken() === 102; + } + function parseDeclaration() { + var fullStart = getNodePos(); + var decorators = parseDecorators(); + var modifiers = parseModifiers(); + if (token === 78) { + nextToken(); + if (token === 73 || token === 53) { + return parseExportAssignment(fullStart, decorators, modifiers); + } + if (token === 35 || token === 14) { + return parseExportDeclaration(fullStart, decorators, modifiers); + } + } + switch (token) { + case 98: + case 105: + case 70: + return parseVariableStatement(fullStart, decorators, modifiers); + case 83: + return parseFunctionDeclaration(fullStart, decorators, modifiers); + case 69: + return parseClassDeclaration(fullStart, decorators, modifiers); + case 104: + return parseInterfaceDeclaration(fullStart, decorators, modifiers); + case 123: + return parseTypeAliasDeclaration(fullStart, decorators, modifiers); + case 77: + return parseEnumDeclaration(fullStart, decorators, modifiers); + case 117: + return parseModuleDeclaration(fullStart, decorators, modifiers); + case 85: + return parseImportDeclarationOrImportEqualsDeclaration(fullStart, decorators, modifiers); + default: + if (decorators) { + var node = createMissingNode(218, true, ts.Diagnostics.Declaration_expected); + node.pos = fullStart; + node.decorators = decorators; + setModifiers(node, modifiers); + return finishNode(node); + } + ts.Debug.fail("Mismatch between isDeclarationStart and parseDeclaration"); + } + } + function isSourceElement(inErrorRecovery) { + return isDeclarationStart() || isStartOfStatement(inErrorRecovery); + } + function parseSourceElement() { + return parseSourceElementOrModuleElement(); + } + function parseModuleElement() { + return parseSourceElementOrModuleElement(); + } + function parseSourceElementOrModuleElement() { + return isDeclarationStart() + ? parseDeclaration() + : parseStatement(); + } + function processReferenceComments(sourceFile) { + var triviaScanner = ts.createScanner(sourceFile.languageVersion, false, sourceText); + var referencedFiles = []; + var amdDependencies = []; + var amdModuleName; + while (true) { + var kind = triviaScanner.scan(); + if (kind === 5 || kind === 4 || kind === 3) { + continue; + } + if (kind !== 2) { + break; + } + var range = { pos: triviaScanner.getTokenPos(), end: triviaScanner.getTextPos() }; + var comment = sourceText.substring(range.pos, range.end); + var referencePathMatchResult = ts.getFileReferenceFromReferencePath(comment, range); + if (referencePathMatchResult) { + var fileReference = referencePathMatchResult.fileReference; + sourceFile.hasNoDefaultLib = referencePathMatchResult.isNoDefaultLib; + var diagnosticMessage = referencePathMatchResult.diagnosticMessage; + if (fileReference) { + referencedFiles.push(fileReference); + } + if (diagnosticMessage) { + sourceFile.parseDiagnostics.push(ts.createFileDiagnostic(sourceFile, range.pos, range.end - range.pos, diagnosticMessage)); + } + } + else { + var amdModuleNameRegEx = /^\/\/\/\s*= 53 && token <= 64; + } + ts.isAssignmentOperator = isAssignmentOperator; +})(ts || (ts = {})); +/// +var ts; +(function (ts) { + ts.bindTime = 0; + function getModuleInstanceState(node) { + if (node.kind === 202 || node.kind === 203) { + return 0; + } + else if (ts.isConstEnumDeclaration(node)) { + return 2; + } + else if ((node.kind === 209 || node.kind === 208) && !(node.flags & 1)) { + return 0; + } + else if (node.kind === 206) { + var state = 0; + ts.forEachChild(node, function (n) { + switch (getModuleInstanceState(n)) { + case 0: + return false; + case 2: + state = 2; + return false; + case 1: + state = 1; + return true; + } + }); + return state; + } + else if (node.kind === 205) { + return getModuleInstanceState(node.body); + } + else { + return 1; + } + } + ts.getModuleInstanceState = getModuleInstanceState; + function bindSourceFile(file) { + var start = new Date().getTime(); + bindSourceFileWorker(file); + ts.bindTime += new Date().getTime() - start; + } + ts.bindSourceFile = bindSourceFile; + function bindSourceFileWorker(file) { + var parent; + var container; + var blockScopeContainer; + var lastContainer; + var symbolCount = 0; + var Symbol = ts.objectAllocator.getSymbolConstructor(); + if (!file.locals) { + file.locals = {}; + container = file; + setBlockScopeContainer(file, false); + bind(file); + file.symbolCount = symbolCount; + } + function createSymbol(flags, name) { + symbolCount++; + return new Symbol(flags, name); + } + function setBlockScopeContainer(node, cleanLocals) { + blockScopeContainer = node; + if (cleanLocals) { + blockScopeContainer.locals = undefined; + } + } + function addDeclarationToSymbol(symbol, node, symbolKind) { + symbol.flags |= symbolKind; + if (!symbol.declarations) + symbol.declarations = []; + symbol.declarations.push(node); + if (symbolKind & 1952 && !symbol.exports) + symbol.exports = {}; + if (symbolKind & 6240 && !symbol.members) + symbol.members = {}; + node.symbol = symbol; + if (symbolKind & 107455 && !symbol.valueDeclaration) + symbol.valueDeclaration = node; + } + function getDeclarationName(node) { + if (node.name) { + if (node.kind === 205 && node.name.kind === 8) { + return '"' + node.name.text + '"'; + } + if (node.name.kind === 127) { + var nameExpression = node.name.expression; + ts.Debug.assert(ts.isWellKnownSymbolSyntactically(nameExpression)); + return ts.getPropertyNameForKnownSymbolName(nameExpression.name.text); + } + return node.name.text; + } + switch (node.kind) { + case 143: + case 135: + return "__constructor"; + case 142: + case 138: + return "__call"; + case 139: + return "__new"; + case 140: + return "__index"; + case 215: + return "__export"; + case 214: + return node.isExportEquals ? "export=" : "default"; + case 200: + case 201: + return node.flags & 256 ? "default" : undefined; + } + } + function getDisplayName(node) { + return node.name ? ts.declarationNameToString(node.name) : getDeclarationName(node); + } + function declareSymbol(symbols, parent, node, includes, excludes) { + ts.Debug.assert(!ts.hasDynamicName(node)); + var name = node.flags & 256 && parent ? "default" : getDeclarationName(node); + var symbol; + if (name !== undefined) { + symbol = ts.hasProperty(symbols, name) ? symbols[name] : (symbols[name] = createSymbol(0, name)); + if (symbol.flags & excludes) { + if (node.name) { + node.name.parent = node; + } + var message = symbol.flags & 2 + ? ts.Diagnostics.Cannot_redeclare_block_scoped_variable_0 + : ts.Diagnostics.Duplicate_identifier_0; + ts.forEach(symbol.declarations, function (declaration) { + file.bindDiagnostics.push(ts.createDiagnosticForNode(declaration.name || declaration, message, getDisplayName(declaration))); + }); + file.bindDiagnostics.push(ts.createDiagnosticForNode(node.name || node, message, getDisplayName(node))); + symbol = createSymbol(0, name); + } + } + else { + symbol = createSymbol(0, "__missing"); + } + addDeclarationToSymbol(symbol, node, includes); + symbol.parent = parent; + if ((node.kind === 201 || node.kind === 174) && symbol.exports) { + var prototypeSymbol = createSymbol(4 | 134217728, "prototype"); + if (ts.hasProperty(symbol.exports, prototypeSymbol.name)) { + if (node.name) { + node.name.parent = node; + } + file.bindDiagnostics.push(ts.createDiagnosticForNode(symbol.exports[prototypeSymbol.name].declarations[0], ts.Diagnostics.Duplicate_identifier_0, prototypeSymbol.name)); + } + symbol.exports[prototypeSymbol.name] = prototypeSymbol; + prototypeSymbol.parent = symbol; + } + return symbol; + } + function declareModuleMember(node, symbolKind, symbolExcludes) { + var hasExportModifier = ts.getCombinedNodeFlags(node) & 1; + if (symbolKind & 8388608) { + if (node.kind === 217 || (node.kind === 208 && hasExportModifier)) { + declareSymbol(container.symbol.exports, container.symbol, node, symbolKind, symbolExcludes); + } + else { + declareSymbol(container.locals, undefined, node, symbolKind, symbolExcludes); + } + } + else { + if (hasExportModifier || container.flags & 32768) { + var exportKind = (symbolKind & 107455 ? 1048576 : 0) | + (symbolKind & 793056 ? 2097152 : 0) | + (symbolKind & 1536 ? 4194304 : 0); + var local = declareSymbol(container.locals, undefined, node, exportKind, symbolExcludes); + local.exportSymbol = declareSymbol(container.symbol.exports, container.symbol, node, symbolKind, symbolExcludes); + node.localSymbol = local; + } + else { + declareSymbol(container.locals, undefined, node, symbolKind, symbolExcludes); + } + } + } + function bindChildren(node, symbolKind, isBlockScopeContainer) { + if (symbolKind & 255504) { + node.locals = {}; + } + var saveParent = parent; + var saveContainer = container; + var savedBlockScopeContainer = blockScopeContainer; + parent = node; + if (symbolKind & 262128) { + container = node; + if (lastContainer) { + lastContainer.nextContainer = container; + } + lastContainer = container; + } + if (isBlockScopeContainer) { + setBlockScopeContainer(node, (symbolKind & 255504) === 0 && node.kind !== 227); + } + ts.forEachChild(node, bind); + container = saveContainer; + parent = saveParent; + blockScopeContainer = savedBlockScopeContainer; + } + function bindDeclaration(node, symbolKind, symbolExcludes, isBlockScopeContainer) { + switch (container.kind) { + case 205: + declareModuleMember(node, symbolKind, symbolExcludes); + break; + case 227: + if (ts.isExternalModule(container)) { + declareModuleMember(node, symbolKind, symbolExcludes); + break; + } + case 142: + case 143: + case 138: + case 139: + case 140: + case 134: + case 133: + case 135: + case 136: + case 137: + case 200: + case 162: + case 163: + declareSymbol(container.locals, undefined, node, symbolKind, symbolExcludes); + break; + case 174: + case 201: + if (node.flags & 128) { + declareSymbol(container.symbol.exports, container.symbol, node, symbolKind, symbolExcludes); + break; + } + case 145: + case 154: + case 202: + declareSymbol(container.symbol.members, container.symbol, node, symbolKind, symbolExcludes); + break; + case 204: + declareSymbol(container.symbol.exports, container.symbol, node, symbolKind, symbolExcludes); + break; + } + bindChildren(node, symbolKind, isBlockScopeContainer); + } + function isAmbientContext(node) { + while (node) { + if (node.flags & 2) + return true; + node = node.parent; + } + return false; + } + function hasExportDeclarations(node) { + var body = node.kind === 227 ? node : node.body; + if (body.kind === 227 || body.kind === 206) { + for (var _i = 0, _a = body.statements; _i < _a.length; _i++) { + var stat = _a[_i]; + if (stat.kind === 215 || stat.kind === 214) { + return true; + } + } + } + return false; + } + function setExportContextFlag(node) { + if (isAmbientContext(node) && !hasExportDeclarations(node)) { + node.flags |= 32768; + } + else { + node.flags &= ~32768; + } + } + function bindModuleDeclaration(node) { + setExportContextFlag(node); + if (node.name.kind === 8) { + bindDeclaration(node, 512, 106639, true); + } + else { + var state = getModuleInstanceState(node); + if (state === 0) { + bindDeclaration(node, 1024, 0, true); + } + else { + bindDeclaration(node, 512, 106639, true); + var currentModuleIsConstEnumOnly = state === 2; + if (node.symbol.constEnumOnlyModule === undefined) { + node.symbol.constEnumOnlyModule = currentModuleIsConstEnumOnly; + } + else { + node.symbol.constEnumOnlyModule = node.symbol.constEnumOnlyModule && currentModuleIsConstEnumOnly; + } + } + } + } + function bindFunctionOrConstructorType(node) { + // For a given function symbol "<...>(...) => T" we want to generate a symbol identical + // to the one we would get for: { <...>(...): T } + // + // We do that by making an anonymous type literal symbol, and then setting the function + // symbol as its sole member. To the rest of the system, this symbol will be indistinguishable + // from an actual type literal symbol you would have gotten had you used the long form. + var symbol = createSymbol(131072, getDeclarationName(node)); + addDeclarationToSymbol(symbol, node, 131072); + bindChildren(node, 131072, false); + var typeLiteralSymbol = createSymbol(2048, "__type"); + addDeclarationToSymbol(typeLiteralSymbol, node, 2048); + typeLiteralSymbol.members = {}; + typeLiteralSymbol.members[node.kind === 142 ? "__call" : "__new"] = symbol; + } + function bindAnonymousDeclaration(node, symbolKind, name, isBlockScopeContainer) { + var symbol = createSymbol(symbolKind, name); + addDeclarationToSymbol(symbol, node, symbolKind); + bindChildren(node, symbolKind, isBlockScopeContainer); + } + function bindCatchVariableDeclaration(node) { + bindChildren(node, 0, true); + } + function bindBlockScopedVariableDeclaration(node) { + switch (blockScopeContainer.kind) { + case 205: + declareModuleMember(node, 2, 107455); + break; + case 227: + if (ts.isExternalModule(container)) { + declareModuleMember(node, 2, 107455); + break; + } + default: + if (!blockScopeContainer.locals) { + blockScopeContainer.locals = {}; + } + declareSymbol(blockScopeContainer.locals, undefined, node, 2, 107455); + } + bindChildren(node, 2, false); + } + function getDestructuringParameterName(node) { + return "__" + ts.indexOf(node.parent.parameters, node); + } + function bind(node) { + node.parent = parent; + switch (node.kind) { + case 128: + bindDeclaration(node, 262144, 530912, false); + break; + case 129: + bindParameter(node); + break; + case 198: + case 152: + if (ts.isBindingPattern(node.name)) { + bindChildren(node, 0, false); + } + else if (ts.isBlockOrCatchScoped(node)) { + bindBlockScopedVariableDeclaration(node); + } + else { + bindDeclaration(node, 1, 107454, false); + } + break; + case 132: + case 131: + bindPropertyOrMethodOrAccessor(node, 4 | (node.questionToken ? 536870912 : 0), 107455, false); + break; + case 224: + case 225: + bindPropertyOrMethodOrAccessor(node, 4, 107455, false); + break; + case 226: + bindPropertyOrMethodOrAccessor(node, 8, 107455, false); + break; + case 138: + case 139: + case 140: + bindDeclaration(node, 131072, 0, false); + break; + case 134: + case 133: + bindPropertyOrMethodOrAccessor(node, 8192 | (node.questionToken ? 536870912 : 0), ts.isObjectLiteralMethod(node) ? 107455 : 99263, true); + break; + case 200: + bindDeclaration(node, 16, 106927, true); + break; + case 135: + bindDeclaration(node, 16384, 0, true); + break; + case 136: + bindPropertyOrMethodOrAccessor(node, 32768, 41919, true); + break; + case 137: + bindPropertyOrMethodOrAccessor(node, 65536, 74687, true); + break; + case 142: + case 143: + bindFunctionOrConstructorType(node); + break; + case 145: + bindAnonymousDeclaration(node, 2048, "__type", false); + break; + case 154: + bindAnonymousDeclaration(node, 4096, "__object", false); + break; + case 162: + case 163: + bindAnonymousDeclaration(node, 16, "__function", true); + break; + case 174: + bindAnonymousDeclaration(node, 32, "__class", false); + break; + case 223: + bindCatchVariableDeclaration(node); + break; + case 201: + bindDeclaration(node, 32, 899583, false); + break; + case 202: + bindDeclaration(node, 64, 792992, false); + break; + case 203: + bindDeclaration(node, 524288, 793056, false); + break; + case 204: + if (ts.isConst(node)) { + bindDeclaration(node, 128, 899967, false); + } + else { + bindDeclaration(node, 256, 899327, false); + } + break; + case 205: + bindModuleDeclaration(node); + break; + case 208: + case 211: + case 213: + case 217: + bindDeclaration(node, 8388608, 8388608, false); + break; + case 210: + if (node.name) { + bindDeclaration(node, 8388608, 8388608, false); + } + else { + bindChildren(node, 0, false); + } + break; + case 215: + if (!node.exportClause) { + declareSymbol(container.symbol.exports, container.symbol, node, 1073741824, 0); + } + bindChildren(node, 0, false); + break; + case 214: + if (node.expression && node.expression.kind === 65) { + declareSymbol(container.symbol.exports, container.symbol, node, 8388608, 107455 | 8388608); + } + else { + declareSymbol(container.symbol.exports, container.symbol, node, 4, 107455 | 8388608); + } + bindChildren(node, 0, false); + break; + case 227: + setExportContextFlag(node); + if (ts.isExternalModule(node)) { + bindAnonymousDeclaration(node, 512, '"' + ts.removeFileExtension(node.fileName) + '"', true); + break; + } + case 179: + bindChildren(node, 0, !ts.isFunctionLike(node.parent)); + break; + case 223: + case 186: + case 187: + case 188: + case 207: + bindChildren(node, 0, true); + break; + default: + var saveParent = parent; + parent = node; + ts.forEachChild(node, bind); + parent = saveParent; + } + } + function bindParameter(node) { + if (ts.isBindingPattern(node.name)) { + bindAnonymousDeclaration(node, 1, getDestructuringParameterName(node), false); + } + else { + bindDeclaration(node, 1, 107455, false); + } + if (node.flags & 112 && + node.parent.kind === 135 && + (node.parent.parent.kind === 201 || node.parent.parent.kind === 174)) { + var classDeclaration = node.parent.parent; + declareSymbol(classDeclaration.symbol.members, classDeclaration.symbol, node, 4, 107455); + } + } + function bindPropertyOrMethodOrAccessor(node, symbolKind, symbolExcludes, isBlockScopeContainer) { + if (ts.hasDynamicName(node)) { + bindAnonymousDeclaration(node, symbolKind, "__computed", isBlockScopeContainer); + } + else { + bindDeclaration(node, symbolKind, symbolExcludes, isBlockScopeContainer); + } + } + } +})(ts || (ts = {})); +/// +var ts; +(function (ts) { + var nextSymbolId = 1; + var nextNodeId = 1; + var nextMergeId = 1; + function getNodeId(node) { + if (!node.id) + node.id = nextNodeId++; + return node.id; + } + ts.getNodeId = getNodeId; + ts.checkTime = 0; + function getSymbolId(symbol) { + if (!symbol.id) { + symbol.id = nextSymbolId++; + } + return symbol.id; + } + ts.getSymbolId = getSymbolId; + function createTypeChecker(host, produceDiagnostics) { + var Symbol = ts.objectAllocator.getSymbolConstructor(); + var Type = ts.objectAllocator.getTypeConstructor(); + var Signature = ts.objectAllocator.getSignatureConstructor(); + var typeCount = 0; + var emptyArray = []; + var emptySymbols = {}; + var compilerOptions = host.getCompilerOptions(); + var languageVersion = compilerOptions.target || 0; + var emitResolver = createResolver(); + var undefinedSymbol = createSymbol(4 | 67108864, "undefined"); + var argumentsSymbol = createSymbol(4 | 67108864, "arguments"); + var checker = { + getNodeCount: function () { return ts.sum(host.getSourceFiles(), "nodeCount"); }, + getIdentifierCount: function () { return ts.sum(host.getSourceFiles(), "identifierCount"); }, + getSymbolCount: function () { return ts.sum(host.getSourceFiles(), "symbolCount"); }, + getTypeCount: function () { return typeCount; }, + isUndefinedSymbol: function (symbol) { return symbol === undefinedSymbol; }, + isArgumentsSymbol: function (symbol) { return symbol === argumentsSymbol; }, + getDiagnostics: getDiagnostics, + getGlobalDiagnostics: getGlobalDiagnostics, + getTypeOfSymbolAtLocation: getTypeOfSymbolAtLocation, + getDeclaredTypeOfSymbol: getDeclaredTypeOfSymbol, + getPropertiesOfType: getPropertiesOfType, + getPropertyOfType: getPropertyOfType, + getSignaturesOfType: getSignaturesOfType, + getIndexTypeOfType: getIndexTypeOfType, + getReturnTypeOfSignature: getReturnTypeOfSignature, + getSymbolsInScope: getSymbolsInScope, + getSymbolAtLocation: getSymbolAtLocation, + getShorthandAssignmentValueSymbol: getShorthandAssignmentValueSymbol, + getTypeAtLocation: getTypeAtLocation, + typeToString: typeToString, + getSymbolDisplayBuilder: getSymbolDisplayBuilder, + symbolToString: symbolToString, + getAugmentedPropertiesOfType: getAugmentedPropertiesOfType, + getRootSymbols: getRootSymbols, + getContextualType: getContextualType, + getFullyQualifiedName: getFullyQualifiedName, + getResolvedSignature: getResolvedSignature, + getConstantValue: getConstantValue, + isValidPropertyAccess: isValidPropertyAccess, + getSignatureFromDeclaration: getSignatureFromDeclaration, + isImplementationOfOverload: isImplementationOfOverload, + getAliasedSymbol: resolveAlias, + getEmitResolver: getEmitResolver, + getExportsOfExternalModule: getExportsOfExternalModule + }; + var unknownSymbol = createSymbol(4 | 67108864, "unknown"); + var resolvingSymbol = createSymbol(67108864, "__resolving__"); + var anyType = createIntrinsicType(1, "any"); + var stringType = createIntrinsicType(2, "string"); + var numberType = createIntrinsicType(4, "number"); + var booleanType = createIntrinsicType(8, "boolean"); + var esSymbolType = createIntrinsicType(1048576, "symbol"); + var voidType = createIntrinsicType(16, "void"); + var undefinedType = createIntrinsicType(32 | 262144, "undefined"); + var nullType = createIntrinsicType(64 | 262144, "null"); + var unknownType = createIntrinsicType(1, "unknown"); + var resolvingType = createIntrinsicType(1, "__resolving__"); + var emptyObjectType = createAnonymousType(undefined, emptySymbols, emptyArray, emptyArray, undefined, undefined); + var anyFunctionType = createAnonymousType(undefined, emptySymbols, emptyArray, emptyArray, undefined, undefined); + var noConstraintType = createAnonymousType(undefined, emptySymbols, emptyArray, emptyArray, undefined, undefined); + var anySignature = createSignature(undefined, undefined, emptyArray, anyType, 0, false, false); + var unknownSignature = createSignature(undefined, undefined, emptyArray, unknownType, 0, false, false); + var globals = {}; + var globalArraySymbol; + var globalESSymbolConstructorSymbol; + var globalObjectType; + var globalFunctionType; + var globalArrayType; + var globalStringType; + var globalNumberType; + var globalBooleanType; + var globalRegExpType; + var globalTemplateStringsArrayType; + var globalESSymbolType; + var globalIterableType; + var anyArrayType; + var globalTypedPropertyDescriptorType; + var globalClassDecoratorType; + var globalParameterDecoratorType; + var globalPropertyDecoratorType; + var globalMethodDecoratorType; + var tupleTypes = {}; + var unionTypes = {}; + var stringLiteralTypes = {}; + var emitExtends = false; + var emitDecorate = false; + var mergedSymbols = []; + var symbolLinks = []; + var nodeLinks = []; + var potentialThisCollisions = []; + var diagnostics = ts.createDiagnosticCollection(); + var primitiveTypeInfo = { + "string": { + type: stringType, + flags: 258 + }, + "number": { + type: numberType, + flags: 132 + }, + "boolean": { + type: booleanType, + flags: 8 + }, + "symbol": { + type: esSymbolType, + flags: 1048576 + } + }; + function getEmitResolver(sourceFile) { + getDiagnostics(sourceFile); + return emitResolver; + } + function error(location, message, arg0, arg1, arg2) { + var diagnostic = location + ? ts.createDiagnosticForNode(location, message, arg0, arg1, arg2) + : ts.createCompilerDiagnostic(message, arg0, arg1, arg2); + diagnostics.add(diagnostic); + } + function createSymbol(flags, name) { + return new Symbol(flags, name); + } + function getExcludedSymbolFlags(flags) { + var result = 0; + if (flags & 2) + result |= 107455; + if (flags & 1) + result |= 107454; + if (flags & 4) + result |= 107455; + if (flags & 8) + result |= 107455; + if (flags & 16) + result |= 106927; + if (flags & 32) + result |= 899583; + if (flags & 64) + result |= 792992; + if (flags & 256) + result |= 899327; + if (flags & 128) + result |= 899967; + if (flags & 512) + result |= 106639; + if (flags & 8192) + result |= 99263; + if (flags & 32768) + result |= 41919; + if (flags & 65536) + result |= 74687; + if (flags & 262144) + result |= 530912; + if (flags & 524288) + result |= 793056; + if (flags & 8388608) + result |= 8388608; + return result; + } + function recordMergedSymbol(target, source) { + if (!source.mergeId) + source.mergeId = nextMergeId++; + mergedSymbols[source.mergeId] = target; + } + function cloneSymbol(symbol) { + var result = createSymbol(symbol.flags | 33554432, symbol.name); + result.declarations = symbol.declarations.slice(0); + result.parent = symbol.parent; + if (symbol.valueDeclaration) + result.valueDeclaration = symbol.valueDeclaration; + if (symbol.constEnumOnlyModule) + result.constEnumOnlyModule = true; + if (symbol.members) + result.members = cloneSymbolTable(symbol.members); + if (symbol.exports) + result.exports = cloneSymbolTable(symbol.exports); + recordMergedSymbol(result, symbol); + return result; + } + function mergeSymbol(target, source) { + if (!(target.flags & getExcludedSymbolFlags(source.flags))) { + if (source.flags & 512 && target.flags & 512 && target.constEnumOnlyModule && !source.constEnumOnlyModule) { + target.constEnumOnlyModule = false; + } + target.flags |= source.flags; + if (!target.valueDeclaration && source.valueDeclaration) + target.valueDeclaration = source.valueDeclaration; + ts.forEach(source.declarations, function (node) { + target.declarations.push(node); + }); + if (source.members) { + if (!target.members) + target.members = {}; + mergeSymbolTable(target.members, source.members); + } + if (source.exports) { + if (!target.exports) + target.exports = {}; + mergeSymbolTable(target.exports, source.exports); + } + recordMergedSymbol(target, source); + } + else { + var message = target.flags & 2 || source.flags & 2 + ? ts.Diagnostics.Cannot_redeclare_block_scoped_variable_0 : ts.Diagnostics.Duplicate_identifier_0; + ts.forEach(source.declarations, function (node) { + error(node.name ? node.name : node, message, symbolToString(source)); + }); + ts.forEach(target.declarations, function (node) { + error(node.name ? node.name : node, message, symbolToString(source)); + }); + } + } + function cloneSymbolTable(symbolTable) { + var result = {}; + for (var id in symbolTable) { + if (ts.hasProperty(symbolTable, id)) { + result[id] = symbolTable[id]; + } + } + return result; + } + function mergeSymbolTable(target, source) { + for (var id in source) { + if (ts.hasProperty(source, id)) { + if (!ts.hasProperty(target, id)) { + target[id] = source[id]; + } + else { + var symbol = target[id]; + if (!(symbol.flags & 33554432)) { + target[id] = symbol = cloneSymbol(symbol); + } + mergeSymbol(symbol, source[id]); + } + } + } + } + function getSymbolLinks(symbol) { + if (symbol.flags & 67108864) + return symbol; + var id = getSymbolId(symbol); + return symbolLinks[id] || (symbolLinks[id] = {}); + } + function getNodeLinks(node) { + var nodeId = getNodeId(node); + return nodeLinks[nodeId] || (nodeLinks[nodeId] = {}); + } + function getSourceFile(node) { + return ts.getAncestor(node, 227); + } + function isGlobalSourceFile(node) { + return node.kind === 227 && !ts.isExternalModule(node); + } + function getSymbol(symbols, name, meaning) { + if (meaning && ts.hasProperty(symbols, name)) { + var symbol = symbols[name]; + ts.Debug.assert((symbol.flags & 16777216) === 0, "Should never get an instantiated symbol here."); + if (symbol.flags & meaning) { + return symbol; + } + if (symbol.flags & 8388608) { + var target = resolveAlias(symbol); + if (target === unknownSymbol || target.flags & meaning) { + return symbol; + } + } + } + } + function isDefinedBefore(node1, node2) { + var file1 = ts.getSourceFileOfNode(node1); + var file2 = ts.getSourceFileOfNode(node2); + if (file1 === file2) { + return node1.pos <= node2.pos; + } + if (!compilerOptions.out) { + return true; + } + var sourceFiles = host.getSourceFiles(); + return sourceFiles.indexOf(file1) <= sourceFiles.indexOf(file2); + } + function resolveName(location, name, meaning, nameNotFoundMessage, nameArg) { + var result; + var lastLocation; + var propertyWithInvalidInitializer; + var errorLocation = location; + var grandparent; + loop: while (location) { + if (location.locals && !isGlobalSourceFile(location)) { + if (result = getSymbol(location.locals, name, meaning)) { + break loop; + } + } + switch (location.kind) { + case 227: + if (!ts.isExternalModule(location)) + break; + case 205: + if (result = getSymbol(getSymbolOfNode(location).exports, name, meaning & 8914931)) { + if (result.flags & meaning || !(result.flags & 8388608 && getDeclarationOfAliasSymbol(result).kind === 217)) { + break loop; + } + result = undefined; + } + else if (location.kind === 227) { + result = getSymbol(getSymbolOfNode(location).exports, "default", meaning & 8914931); + var localSymbol = ts.getLocalSymbolForExportDefault(result); + if (result && (result.flags & meaning) && localSymbol && localSymbol.name === name) { + break loop; + } + result = undefined; + } + break; + case 204: + if (result = getSymbol(getSymbolOfNode(location).exports, name, meaning & 8)) { + break loop; + } + break; + case 132: + case 131: + if (location.parent.kind === 201 && !(location.flags & 128)) { + var ctor = findConstructorDeclaration(location.parent); + if (ctor && ctor.locals) { + if (getSymbol(ctor.locals, name, meaning & 107455)) { + propertyWithInvalidInitializer = location; + } + } + } + break; + case 201: + case 202: + if (result = getSymbol(getSymbolOfNode(location).members, name, meaning & 793056)) { + if (lastLocation && lastLocation.flags & 128) { + error(errorLocation, ts.Diagnostics.Static_members_cannot_reference_class_type_parameters); + return undefined; + } + break loop; + } + break; + case 127: + grandparent = location.parent.parent; + if (grandparent.kind === 201 || grandparent.kind === 202) { + if (result = getSymbol(getSymbolOfNode(grandparent).members, name, meaning & 793056)) { + error(errorLocation, ts.Diagnostics.A_computed_property_name_cannot_reference_a_type_parameter_from_its_containing_type); + return undefined; + } + } + break; + case 134: + case 133: + case 135: + case 136: + case 137: + case 200: + case 163: + if (name === "arguments") { + result = argumentsSymbol; + break loop; + } + break; + case 162: + if (name === "arguments") { + result = argumentsSymbol; + break loop; + } + var functionName = location.name; + if (functionName && name === functionName.text) { + result = location.symbol; + break loop; + } + break; + case 174: + var className = location.name; + if (className && name === className.text) { + result = location.symbol; + break loop; + } + break; + case 130: + if (location.parent && location.parent.kind === 129) { + location = location.parent; + } + if (location.parent && ts.isClassElement(location.parent)) { + location = location.parent; + } + break; + } + lastLocation = location; + location = location.parent; + } + if (!result) { + result = getSymbol(globals, name, meaning); + } + if (!result) { + if (nameNotFoundMessage) { + error(errorLocation, nameNotFoundMessage, typeof nameArg === "string" ? nameArg : ts.declarationNameToString(nameArg)); + } + return undefined; + } + if (nameNotFoundMessage) { + if (propertyWithInvalidInitializer) { + var propertyName = propertyWithInvalidInitializer.name; + error(errorLocation, ts.Diagnostics.Initializer_of_instance_member_variable_0_cannot_reference_identifier_1_declared_in_the_constructor, ts.declarationNameToString(propertyName), typeof nameArg === "string" ? nameArg : ts.declarationNameToString(nameArg)); + return undefined; + } + if (result.flags & 2) { + checkResolvedBlockScopedVariable(result, errorLocation); + } + } + return result; + } + function checkResolvedBlockScopedVariable(result, errorLocation) { + ts.Debug.assert((result.flags & 2) !== 0); + var declaration = ts.forEach(result.declarations, function (d) { return ts.isBlockOrCatchScoped(d) ? d : undefined; }); + ts.Debug.assert(declaration !== undefined, "Block-scoped variable declaration is undefined"); + var isUsedBeforeDeclaration = !isDefinedBefore(declaration, errorLocation); + if (!isUsedBeforeDeclaration) { + var variableDeclaration = ts.getAncestor(declaration, 198); + var container = ts.getEnclosingBlockScopeContainer(variableDeclaration); + if (variableDeclaration.parent.parent.kind === 180 || + variableDeclaration.parent.parent.kind === 186) { + isUsedBeforeDeclaration = isSameScopeDescendentOf(errorLocation, variableDeclaration, container); + } + else if (variableDeclaration.parent.parent.kind === 188 || + variableDeclaration.parent.parent.kind === 187) { + var expression = variableDeclaration.parent.parent.expression; + isUsedBeforeDeclaration = isSameScopeDescendentOf(errorLocation, expression, container); + } + } + if (isUsedBeforeDeclaration) { + error(errorLocation, ts.Diagnostics.Block_scoped_variable_0_used_before_its_declaration, ts.declarationNameToString(declaration.name)); + } + } + function isSameScopeDescendentOf(initial, parent, stopAt) { + if (!parent) { + return false; + } + for (var current = initial; current && current !== stopAt && !ts.isFunctionLike(current); current = current.parent) { + if (current === parent) { + return true; + } + } + return false; + } + function getAnyImportSyntax(node) { + if (ts.isAliasSymbolDeclaration(node)) { + if (node.kind === 208) { + return node; + } + while (node && node.kind !== 209) { + node = node.parent; + } + return node; + } + } + function getDeclarationOfAliasSymbol(symbol) { + return ts.forEach(symbol.declarations, function (d) { return ts.isAliasSymbolDeclaration(d) ? d : undefined; }); + } + function getTargetOfImportEqualsDeclaration(node) { + if (node.moduleReference.kind === 219) { + return resolveExternalModuleSymbol(resolveExternalModuleName(node, ts.getExternalModuleImportEqualsDeclarationExpression(node))); + } + return getSymbolOfPartOfRightHandSideOfImportEquals(node.moduleReference, node); + } + function getTargetOfImportClause(node) { + var moduleSymbol = resolveExternalModuleName(node, node.parent.moduleSpecifier); + if (moduleSymbol) { + var exportDefaultSymbol = resolveSymbol(moduleSymbol.exports["default"]); + if (!exportDefaultSymbol) { + error(node.name, ts.Diagnostics.External_module_0_has_no_default_export, symbolToString(moduleSymbol)); + } + return exportDefaultSymbol; + } + } + function getTargetOfNamespaceImport(node) { + var moduleSpecifier = node.parent.parent.moduleSpecifier; + return resolveESModuleSymbol(resolveExternalModuleName(node, moduleSpecifier), moduleSpecifier); + } + function getMemberOfModuleVariable(moduleSymbol, name) { + if (moduleSymbol.flags & 3) { + var typeAnnotation = moduleSymbol.valueDeclaration.type; + if (typeAnnotation) { + return getPropertyOfType(getTypeFromTypeNodeOrHeritageClauseElement(typeAnnotation), name); + } + } + } + function combineValueAndTypeSymbols(valueSymbol, typeSymbol) { + if (valueSymbol.flags & (793056 | 1536)) { + return valueSymbol; + } + var result = createSymbol(valueSymbol.flags | typeSymbol.flags, valueSymbol.name); + result.declarations = ts.concatenate(valueSymbol.declarations, typeSymbol.declarations); + result.parent = valueSymbol.parent || typeSymbol.parent; + if (valueSymbol.valueDeclaration) + result.valueDeclaration = valueSymbol.valueDeclaration; + if (typeSymbol.members) + result.members = typeSymbol.members; + if (valueSymbol.exports) + result.exports = valueSymbol.exports; + return result; + } + function getExportOfModule(symbol, name) { + if (symbol.flags & 1536) { + var exports_1 = getExportsOfSymbol(symbol); + if (ts.hasProperty(exports_1, name)) { + return resolveSymbol(exports_1[name]); + } + } + } + function getPropertyOfVariable(symbol, name) { + if (symbol.flags & 3) { + var typeAnnotation = symbol.valueDeclaration.type; + if (typeAnnotation) { + return resolveSymbol(getPropertyOfType(getTypeFromTypeNodeOrHeritageClauseElement(typeAnnotation), name)); + } + } + } + function getExternalModuleMember(node, specifier) { + var moduleSymbol = resolveExternalModuleName(node, node.moduleSpecifier); + var targetSymbol = resolveESModuleSymbol(moduleSymbol, node.moduleSpecifier); + if (targetSymbol) { + var name_4 = specifier.propertyName || specifier.name; + if (name_4.text) { + var symbolFromModule = getExportOfModule(targetSymbol, name_4.text); + var symbolFromVariable = getPropertyOfVariable(targetSymbol, name_4.text); + var symbol = symbolFromModule && symbolFromVariable ? + combineValueAndTypeSymbols(symbolFromVariable, symbolFromModule) : + symbolFromModule || symbolFromVariable; + if (!symbol) { + error(name_4, ts.Diagnostics.Module_0_has_no_exported_member_1, getFullyQualifiedName(moduleSymbol), ts.declarationNameToString(name_4)); + } + return symbol; + } + } + } + function getTargetOfImportSpecifier(node) { + return getExternalModuleMember(node.parent.parent.parent, node); + } + function getTargetOfExportSpecifier(node) { + return node.parent.parent.moduleSpecifier ? + getExternalModuleMember(node.parent.parent, node) : + resolveEntityName(node.propertyName || node.name, 107455 | 793056 | 1536); + } + function getTargetOfExportAssignment(node) { + return node.expression && resolveEntityName(node.expression, 107455 | 793056 | 1536); + } + function getTargetOfAliasDeclaration(node) { + switch (node.kind) { + case 208: + return getTargetOfImportEqualsDeclaration(node); + case 210: + return getTargetOfImportClause(node); + case 211: + return getTargetOfNamespaceImport(node); + case 213: + return getTargetOfImportSpecifier(node); + case 217: + return getTargetOfExportSpecifier(node); + case 214: + return getTargetOfExportAssignment(node); + } + } + function resolveSymbol(symbol) { + return symbol && symbol.flags & 8388608 && !(symbol.flags & (107455 | 793056 | 1536)) ? resolveAlias(symbol) : symbol; + } + function resolveAlias(symbol) { + ts.Debug.assert((symbol.flags & 8388608) !== 0, "Should only get Alias here."); + var links = getSymbolLinks(symbol); + if (!links.target) { + links.target = resolvingSymbol; + var node = getDeclarationOfAliasSymbol(symbol); + var target = getTargetOfAliasDeclaration(node); + if (links.target === resolvingSymbol) { + links.target = target || unknownSymbol; + } + else { + error(node, ts.Diagnostics.Circular_definition_of_import_alias_0, symbolToString(symbol)); + } + } + else if (links.target === resolvingSymbol) { + links.target = unknownSymbol; + } + return links.target; + } + function markExportAsReferenced(node) { + var symbol = getSymbolOfNode(node); + var target = resolveAlias(symbol); + if (target) { + var markAlias = (target === unknownSymbol && compilerOptions.separateCompilation) || + (target !== unknownSymbol && (target.flags & 107455) && !isConstEnumOrConstEnumOnlyModule(target)); + if (markAlias) { + markAliasSymbolAsReferenced(symbol); + } + } + } + function markAliasSymbolAsReferenced(symbol) { + var links = getSymbolLinks(symbol); + if (!links.referenced) { + links.referenced = true; + var node = getDeclarationOfAliasSymbol(symbol); + if (node.kind === 214 && node.expression) { + checkExpressionCached(node.expression); + } + else if (node.kind === 217) { + checkExpressionCached(node.propertyName || node.name); + } + else if (ts.isInternalModuleImportEqualsDeclaration(node)) { + checkExpressionCached(node.moduleReference); + } + } + } + function getSymbolOfPartOfRightHandSideOfImportEquals(entityName, importDeclaration) { + if (!importDeclaration) { + importDeclaration = ts.getAncestor(entityName, 208); + ts.Debug.assert(importDeclaration !== undefined); + } + if (entityName.kind === 65 && ts.isRightSideOfQualifiedNameOrPropertyAccess(entityName)) { + entityName = entityName.parent; + } + if (entityName.kind === 65 || entityName.parent.kind === 126) { + return resolveEntityName(entityName, 1536); + } + else { + ts.Debug.assert(entityName.parent.kind === 208); + return resolveEntityName(entityName, 107455 | 793056 | 1536); + } + } + function getFullyQualifiedName(symbol) { + return symbol.parent ? getFullyQualifiedName(symbol.parent) + "." + symbolToString(symbol) : symbolToString(symbol); + } + function resolveEntityName(name, meaning) { + if (ts.nodeIsMissing(name)) { + return undefined; + } + var symbol; + if (name.kind === 65) { + symbol = resolveName(name, name.text, meaning, ts.Diagnostics.Cannot_find_name_0, name); + if (!symbol) { + return undefined; + } + } + else if (name.kind === 126 || name.kind === 155) { + var left = name.kind === 126 ? name.left : name.expression; + var right = name.kind === 126 ? name.right : name.name; + var namespace = resolveEntityName(left, 1536); + if (!namespace || namespace === unknownSymbol || ts.nodeIsMissing(right)) { + return undefined; + } + symbol = getSymbol(getExportsOfSymbol(namespace), right.text, meaning); + if (!symbol) { + error(right, ts.Diagnostics.Module_0_has_no_exported_member_1, getFullyQualifiedName(namespace), ts.declarationNameToString(right)); + return undefined; + } + } + else { + ts.Debug.fail("Unknown entity name kind."); + } + ts.Debug.assert((symbol.flags & 16777216) === 0, "Should never get an instantiated symbol here."); + return symbol.flags & meaning ? symbol : resolveAlias(symbol); + } + function isExternalModuleNameRelative(moduleName) { + return moduleName.substr(0, 2) === "./" || moduleName.substr(0, 3) === "../" || moduleName.substr(0, 2) === ".\\" || moduleName.substr(0, 3) === "..\\"; + } + function resolveExternalModuleName(location, moduleReferenceExpression) { + if (moduleReferenceExpression.kind !== 8) { + return; + } + var moduleReferenceLiteral = moduleReferenceExpression; + var searchPath = ts.getDirectoryPath(getSourceFile(location).fileName); + var moduleName = ts.escapeIdentifier(moduleReferenceLiteral.text); + if (!moduleName) + return; + var isRelative = isExternalModuleNameRelative(moduleName); + if (!isRelative) { + var symbol = getSymbol(globals, '"' + moduleName + '"', 512); + if (symbol) { + return symbol; + } + } + var sourceFile; + while (true) { + var fileName = ts.normalizePath(ts.combinePaths(searchPath, moduleName)); + sourceFile = host.getSourceFile(fileName + ".ts") || host.getSourceFile(fileName + ".d.ts"); + if (sourceFile || isRelative) { + break; + } + var parentPath = ts.getDirectoryPath(searchPath); + if (parentPath === searchPath) { + break; + } + searchPath = parentPath; + } + if (sourceFile) { + if (sourceFile.symbol) { + return sourceFile.symbol; + } + error(moduleReferenceLiteral, ts.Diagnostics.File_0_is_not_an_external_module, sourceFile.fileName); + return; + } + error(moduleReferenceLiteral, ts.Diagnostics.Cannot_find_external_module_0, moduleName); + } + function resolveExternalModuleSymbol(moduleSymbol) { + return moduleSymbol && resolveSymbol(moduleSymbol.exports["export="]) || moduleSymbol; + } + function resolveESModuleSymbol(moduleSymbol, moduleReferenceExpression) { + var symbol = resolveExternalModuleSymbol(moduleSymbol); + if (symbol && !(symbol.flags & (1536 | 3))) { + error(moduleReferenceExpression, ts.Diagnostics.External_module_0_resolves_to_a_non_module_entity_and_cannot_be_imported_using_this_construct, symbolToString(moduleSymbol)); + symbol = undefined; + } + return symbol; + } + function getExportAssignmentSymbol(moduleSymbol) { + return moduleSymbol.exports["export="]; + } + function getExportsOfSymbol(symbol) { + return symbol.flags & 1536 ? getExportsOfModule(symbol) : symbol.exports || emptySymbols; + } + function getExportsOfModule(moduleSymbol) { + var links = getSymbolLinks(moduleSymbol); + return links.resolvedExports || (links.resolvedExports = getExportsForModule(moduleSymbol)); + } + function extendExportSymbols(target, source) { + for (var id in source) { + if (id !== "default" && !ts.hasProperty(target, id)) { + target[id] = source[id]; + } + } + } + function getExportsForModule(moduleSymbol) { + var result; + var visitedSymbols = []; + visit(moduleSymbol); + return result || moduleSymbol.exports; + function visit(symbol) { + if (symbol.flags & 1952 && !ts.contains(visitedSymbols, symbol)) { + visitedSymbols.push(symbol); + if (symbol !== moduleSymbol) { + if (!result) { + result = cloneSymbolTable(moduleSymbol.exports); + } + extendExportSymbols(result, symbol.exports); + } + var exportStars = symbol.exports["__export"]; + if (exportStars) { + for (var _i = 0, _a = exportStars.declarations; _i < _a.length; _i++) { + var node = _a[_i]; + visit(resolveExternalModuleName(node, node.moduleSpecifier)); + } + } + } + } + } + function getMergedSymbol(symbol) { + var merged; + return symbol && symbol.mergeId && (merged = mergedSymbols[symbol.mergeId]) ? merged : symbol; + } + function getSymbolOfNode(node) { + return getMergedSymbol(node.symbol); + } + function getParentOfSymbol(symbol) { + return getMergedSymbol(symbol.parent); + } + function getExportSymbolOfValueSymbolIfExported(symbol) { + return symbol && (symbol.flags & 1048576) !== 0 + ? getMergedSymbol(symbol.exportSymbol) + : symbol; + } + function symbolIsValue(symbol) { + if (symbol.flags & 16777216) { + return symbolIsValue(getSymbolLinks(symbol).target); + } + if (symbol.flags & 107455) { + return true; + } + if (symbol.flags & 8388608) { + return (resolveAlias(symbol).flags & 107455) !== 0; + } + return false; + } + function findConstructorDeclaration(node) { + var members = node.members; + for (var _i = 0; _i < members.length; _i++) { + var member = members[_i]; + if (member.kind === 135 && ts.nodeIsPresent(member.body)) { + return member; + } + } + } + function createType(flags) { + var result = new Type(checker, flags); + result.id = typeCount++; + return result; + } + function createIntrinsicType(kind, intrinsicName) { + var type = createType(kind); + type.intrinsicName = intrinsicName; + return type; + } + function createObjectType(kind, symbol) { + var type = createType(kind); + type.symbol = symbol; + return type; + } + function isReservedMemberName(name) { + return name.charCodeAt(0) === 95 && + name.charCodeAt(1) === 95 && + name.charCodeAt(2) !== 95 && + name.charCodeAt(2) !== 64; + } + function getNamedMembers(members) { + var result; + for (var id in members) { + if (ts.hasProperty(members, id)) { + if (!isReservedMemberName(id)) { + if (!result) + result = []; + var symbol = members[id]; + if (symbolIsValue(symbol)) { + result.push(symbol); + } + } + } + } + return result || emptyArray; + } + function setObjectTypeMembers(type, members, callSignatures, constructSignatures, stringIndexType, numberIndexType) { + type.members = members; + type.properties = getNamedMembers(members); + type.callSignatures = callSignatures; + type.constructSignatures = constructSignatures; + if (stringIndexType) + type.stringIndexType = stringIndexType; + if (numberIndexType) + type.numberIndexType = numberIndexType; + return type; + } + function createAnonymousType(symbol, members, callSignatures, constructSignatures, stringIndexType, numberIndexType) { + return setObjectTypeMembers(createObjectType(32768, symbol), members, callSignatures, constructSignatures, stringIndexType, numberIndexType); + } + function forEachSymbolTableInScope(enclosingDeclaration, callback) { + var result; + for (var location_1 = enclosingDeclaration; location_1; location_1 = location_1.parent) { + if (location_1.locals && !isGlobalSourceFile(location_1)) { + if (result = callback(location_1.locals)) { + return result; + } + } + switch (location_1.kind) { + case 227: + if (!ts.isExternalModule(location_1)) { + break; + } + case 205: + if (result = callback(getSymbolOfNode(location_1).exports)) { + return result; + } + break; + case 201: + case 202: + if (result = callback(getSymbolOfNode(location_1).members)) { + return result; + } + break; + } + } + return callback(globals); + } + function getQualifiedLeftMeaning(rightMeaning) { + return rightMeaning === 107455 ? 107455 : 1536; + } + function getAccessibleSymbolChain(symbol, enclosingDeclaration, meaning, useOnlyExternalAliasing) { + function getAccessibleSymbolChainFromSymbolTable(symbols) { + function canQualifySymbol(symbolFromSymbolTable, meaning) { + if (!needsQualification(symbolFromSymbolTable, enclosingDeclaration, meaning)) { + return true; + } + var accessibleParent = getAccessibleSymbolChain(symbolFromSymbolTable.parent, enclosingDeclaration, getQualifiedLeftMeaning(meaning), useOnlyExternalAliasing); + return !!accessibleParent; + } + function isAccessible(symbolFromSymbolTable, resolvedAliasSymbol) { + if (symbol === (resolvedAliasSymbol || symbolFromSymbolTable)) { + return !ts.forEach(symbolFromSymbolTable.declarations, hasExternalModuleSymbol) && + canQualifySymbol(symbolFromSymbolTable, meaning); + } + } + if (isAccessible(ts.lookUp(symbols, symbol.name))) { + return [symbol]; + } + return ts.forEachValue(symbols, function (symbolFromSymbolTable) { + if (symbolFromSymbolTable.flags & 8388608 && symbolFromSymbolTable.name !== "export=") { + if (!useOnlyExternalAliasing || + ts.forEach(symbolFromSymbolTable.declarations, ts.isExternalModuleImportEqualsDeclaration)) { + var resolvedImportedSymbol = resolveAlias(symbolFromSymbolTable); + if (isAccessible(symbolFromSymbolTable, resolveAlias(symbolFromSymbolTable))) { + return [symbolFromSymbolTable]; + } + var accessibleSymbolsFromExports = resolvedImportedSymbol.exports ? getAccessibleSymbolChainFromSymbolTable(resolvedImportedSymbol.exports) : undefined; + if (accessibleSymbolsFromExports && canQualifySymbol(symbolFromSymbolTable, getQualifiedLeftMeaning(meaning))) { + return [symbolFromSymbolTable].concat(accessibleSymbolsFromExports); + } + } + } + }); + } + if (symbol) { + return forEachSymbolTableInScope(enclosingDeclaration, getAccessibleSymbolChainFromSymbolTable); + } + } + function needsQualification(symbol, enclosingDeclaration, meaning) { + var qualify = false; + forEachSymbolTableInScope(enclosingDeclaration, function (symbolTable) { + if (!ts.hasProperty(symbolTable, symbol.name)) { + return false; + } + var symbolFromSymbolTable = symbolTable[symbol.name]; + if (symbolFromSymbolTable === symbol) { + return true; + } + symbolFromSymbolTable = (symbolFromSymbolTable.flags & 8388608) ? resolveAlias(symbolFromSymbolTable) : symbolFromSymbolTable; + if (symbolFromSymbolTable.flags & meaning) { + qualify = true; + return true; + } + return false; + }); + return qualify; + } + function isSymbolAccessible(symbol, enclosingDeclaration, meaning) { + if (symbol && enclosingDeclaration && !(symbol.flags & 262144)) { + var initialSymbol = symbol; + var meaningToLook = meaning; + while (symbol) { + var accessibleSymbolChain = getAccessibleSymbolChain(symbol, enclosingDeclaration, meaningToLook, false); + if (accessibleSymbolChain) { + var hasAccessibleDeclarations = hasVisibleDeclarations(accessibleSymbolChain[0]); + if (!hasAccessibleDeclarations) { + return { + accessibility: 1, + errorSymbolName: symbolToString(initialSymbol, enclosingDeclaration, meaning), + errorModuleName: symbol !== initialSymbol ? symbolToString(symbol, enclosingDeclaration, 1536) : undefined + }; + } + return hasAccessibleDeclarations; + } + meaningToLook = getQualifiedLeftMeaning(meaning); + symbol = getParentOfSymbol(symbol); + } + var symbolExternalModule = ts.forEach(initialSymbol.declarations, getExternalModuleContainer); + if (symbolExternalModule) { + var enclosingExternalModule = getExternalModuleContainer(enclosingDeclaration); + if (symbolExternalModule !== enclosingExternalModule) { + return { + accessibility: 2, + errorSymbolName: symbolToString(initialSymbol, enclosingDeclaration, meaning), + errorModuleName: symbolToString(symbolExternalModule) + }; + } + } + return { + accessibility: 1, + errorSymbolName: symbolToString(initialSymbol, enclosingDeclaration, meaning) + }; + } + return { accessibility: 0 }; + function getExternalModuleContainer(declaration) { + for (; declaration; declaration = declaration.parent) { + if (hasExternalModuleSymbol(declaration)) { + return getSymbolOfNode(declaration); + } + } + } + } + function hasExternalModuleSymbol(declaration) { + return (declaration.kind === 205 && declaration.name.kind === 8) || + (declaration.kind === 227 && ts.isExternalModule(declaration)); + } + function hasVisibleDeclarations(symbol) { + var aliasesToMakeVisible; + if (ts.forEach(symbol.declarations, function (declaration) { return !getIsDeclarationVisible(declaration); })) { + return undefined; + } + return { accessibility: 0, aliasesToMakeVisible: aliasesToMakeVisible }; + function getIsDeclarationVisible(declaration) { + if (!isDeclarationVisible(declaration)) { + var anyImportSyntax = getAnyImportSyntax(declaration); + if (anyImportSyntax && + !(anyImportSyntax.flags & 1) && + isDeclarationVisible(anyImportSyntax.parent)) { + getNodeLinks(declaration).isVisible = true; + if (aliasesToMakeVisible) { + if (!ts.contains(aliasesToMakeVisible, anyImportSyntax)) { + aliasesToMakeVisible.push(anyImportSyntax); + } + } + else { + aliasesToMakeVisible = [anyImportSyntax]; + } + return true; + } + return false; + } + return true; + } + } + function isEntityNameVisible(entityName, enclosingDeclaration) { + var meaning; + if (entityName.parent.kind === 144) { + meaning = 107455 | 1048576; + } + else if (entityName.kind === 126 || entityName.kind === 155 || + entityName.parent.kind === 208) { + meaning = 1536; + } + else { + meaning = 793056; + } + var firstIdentifier = getFirstIdentifier(entityName); + var symbol = resolveName(enclosingDeclaration, firstIdentifier.text, meaning, undefined, undefined); + return (symbol && hasVisibleDeclarations(symbol)) || { + accessibility: 1, + errorSymbolName: ts.getTextOfNode(firstIdentifier), + errorNode: firstIdentifier + }; + } + function writeKeyword(writer, kind) { + writer.writeKeyword(ts.tokenToString(kind)); + } + function writePunctuation(writer, kind) { + writer.writePunctuation(ts.tokenToString(kind)); + } + function writeSpace(writer) { + writer.writeSpace(" "); + } + function symbolToString(symbol, enclosingDeclaration, meaning) { + var writer = ts.getSingleLineStringWriter(); + getSymbolDisplayBuilder().buildSymbolDisplay(symbol, writer, enclosingDeclaration, meaning); + var result = writer.string(); + ts.releaseStringWriter(writer); + return result; + } + function typeToString(type, enclosingDeclaration, flags) { + var writer = ts.getSingleLineStringWriter(); + getSymbolDisplayBuilder().buildTypeDisplay(type, writer, enclosingDeclaration, flags); + var result = writer.string(); + ts.releaseStringWriter(writer); + var maxLength = compilerOptions.noErrorTruncation || flags & 4 ? undefined : 100; + if (maxLength && result.length >= maxLength) { + result = result.substr(0, maxLength - "...".length) + "..."; + } + return result; + } + function getTypeAliasForTypeLiteral(type) { + if (type.symbol && type.symbol.flags & 2048) { + var node = type.symbol.declarations[0].parent; + while (node.kind === 149) { + node = node.parent; + } + if (node.kind === 203) { + return getSymbolOfNode(node); + } + } + return undefined; + } + var _displayBuilder; + function getSymbolDisplayBuilder() { + function appendSymbolNameOnly(symbol, writer) { + if (symbol.declarations && symbol.declarations.length > 0) { + var declaration = symbol.declarations[0]; + if (declaration.name) { + writer.writeSymbol(ts.declarationNameToString(declaration.name), symbol); + return; + } + } + writer.writeSymbol(symbol.name, symbol); + } + function buildSymbolDisplay(symbol, writer, enclosingDeclaration, meaning, flags, typeFlags) { + var parentSymbol; + function appendParentTypeArgumentsAndSymbolName(symbol) { + if (parentSymbol) { + if (flags & 1) { + if (symbol.flags & 16777216) { + buildDisplayForTypeArgumentsAndDelimiters(getTypeParametersOfClassOrInterface(parentSymbol), symbol.mapper, writer, enclosingDeclaration); + } + else { + buildTypeParameterDisplayFromSymbol(parentSymbol, writer, enclosingDeclaration); + } + } + writePunctuation(writer, 20); + } + parentSymbol = symbol; + appendSymbolNameOnly(symbol, writer); + } + writer.trackSymbol(symbol, enclosingDeclaration, meaning); + function walkSymbol(symbol, meaning) { + if (symbol) { + var accessibleSymbolChain = getAccessibleSymbolChain(symbol, enclosingDeclaration, meaning, !!(flags & 2)); + if (!accessibleSymbolChain || + needsQualification(accessibleSymbolChain[0], enclosingDeclaration, accessibleSymbolChain.length === 1 ? meaning : getQualifiedLeftMeaning(meaning))) { + walkSymbol(getParentOfSymbol(accessibleSymbolChain ? accessibleSymbolChain[0] : symbol), getQualifiedLeftMeaning(meaning)); + } + if (accessibleSymbolChain) { + for (var _i = 0; _i < accessibleSymbolChain.length; _i++) { + var accessibleSymbol = accessibleSymbolChain[_i]; + appendParentTypeArgumentsAndSymbolName(accessibleSymbol); + } + } + else { + if (!parentSymbol && ts.forEach(symbol.declarations, hasExternalModuleSymbol)) { + return; + } + if (symbol.flags & 2048 || symbol.flags & 4096) { + return; + } + appendParentTypeArgumentsAndSymbolName(symbol); + } + } + } + var isTypeParameter = symbol.flags & 262144; + var typeFormatFlag = 128 & typeFlags; + if (!isTypeParameter && (enclosingDeclaration || typeFormatFlag)) { + walkSymbol(symbol, meaning); + return; + } + return appendParentTypeArgumentsAndSymbolName(symbol); + } + function buildTypeDisplay(type, writer, enclosingDeclaration, globalFlags, typeStack) { + var globalFlagsToPass = globalFlags & 16; + return writeType(type, globalFlags); + function writeType(type, flags) { + if (type.flags & 1048703) { + writer.writeKeyword(!(globalFlags & 16) && + (type.flags & 1) ? "any" : type.intrinsicName); + } + else if (type.flags & 4096) { + writeTypeReference(type, flags); + } + else if (type.flags & (1024 | 2048 | 128 | 512)) { + buildSymbolDisplay(type.symbol, writer, enclosingDeclaration, 793056, 0, flags); + } + else if (type.flags & 8192) { + writeTupleType(type); + } + else if (type.flags & 16384) { + writeUnionType(type, flags); + } + else if (type.flags & 32768) { + writeAnonymousType(type, flags); + } + else if (type.flags & 256) { + writer.writeStringLiteral(type.text); + } + else { + writePunctuation(writer, 14); + writeSpace(writer); + writePunctuation(writer, 21); + writeSpace(writer); + writePunctuation(writer, 15); + } + } + function writeTypeList(types, union) { + for (var i = 0; i < types.length; i++) { + if (i > 0) { + if (union) { + writeSpace(writer); + } + writePunctuation(writer, union ? 44 : 23); + writeSpace(writer); + } + writeType(types[i], union ? 64 : 0); + } + } + function writeTypeReference(type, flags) { + if (type.target === globalArrayType && !(flags & 1)) { + writeType(type.typeArguments[0], 64); + writePunctuation(writer, 18); + writePunctuation(writer, 19); + } + else { + buildSymbolDisplay(type.target.symbol, writer, enclosingDeclaration, 793056); + writePunctuation(writer, 24); + writeTypeList(type.typeArguments, false); + writePunctuation(writer, 25); + } + } + function writeTupleType(type) { + writePunctuation(writer, 18); + writeTypeList(type.elementTypes, false); + writePunctuation(writer, 19); + } + function writeUnionType(type, flags) { + if (flags & 64) { + writePunctuation(writer, 16); + } + writeTypeList(type.types, true); + if (flags & 64) { + writePunctuation(writer, 17); + } + } + function writeAnonymousType(type, flags) { + if (type.symbol && type.symbol.flags & (32 | 384 | 512)) { + writeTypeofSymbol(type, flags); + } + else if (shouldWriteTypeOfFunctionSymbol()) { + writeTypeofSymbol(type, flags); + } + else if (typeStack && ts.contains(typeStack, type)) { + var typeAlias = getTypeAliasForTypeLiteral(type); + if (typeAlias) { + buildSymbolDisplay(typeAlias, writer, enclosingDeclaration, 793056, 0, flags); + } + else { + writeKeyword(writer, 112); + } + } + else { + if (!typeStack) { + typeStack = []; + } + typeStack.push(type); + writeLiteralType(type, flags); + typeStack.pop(); + } + function shouldWriteTypeOfFunctionSymbol() { + if (type.symbol) { + var isStaticMethodSymbol = !!(type.symbol.flags & 8192 && + ts.forEach(type.symbol.declarations, function (declaration) { return declaration.flags & 128; })); + var isNonLocalFunctionSymbol = !!(type.symbol.flags & 16) && + (type.symbol.parent || + ts.forEach(type.symbol.declarations, function (declaration) { + return declaration.parent.kind === 227 || declaration.parent.kind === 206; + })); + if (isStaticMethodSymbol || isNonLocalFunctionSymbol) { + return !!(flags & 2) || + (typeStack && ts.contains(typeStack, type)); + } + } + } + } + function writeTypeofSymbol(type, typeFormatFlags) { + writeKeyword(writer, 97); + writeSpace(writer); + buildSymbolDisplay(type.symbol, writer, enclosingDeclaration, 107455, 0, typeFormatFlags); + } + function getIndexerParameterName(type, indexKind, fallbackName) { + var declaration = getIndexDeclarationOfSymbol(type.symbol, indexKind); + if (!declaration) { + return fallbackName; + } + ts.Debug.assert(declaration.parameters.length !== 0); + return ts.declarationNameToString(declaration.parameters[0].name); + } + function writeLiteralType(type, flags) { + var resolved = resolveObjectOrUnionTypeMembers(type); + if (!resolved.properties.length && !resolved.stringIndexType && !resolved.numberIndexType) { + if (!resolved.callSignatures.length && !resolved.constructSignatures.length) { + writePunctuation(writer, 14); + writePunctuation(writer, 15); + return; + } + if (resolved.callSignatures.length === 1 && !resolved.constructSignatures.length) { + if (flags & 64) { + writePunctuation(writer, 16); + } + buildSignatureDisplay(resolved.callSignatures[0], writer, enclosingDeclaration, globalFlagsToPass | 8, typeStack); + if (flags & 64) { + writePunctuation(writer, 17); + } + return; + } + if (resolved.constructSignatures.length === 1 && !resolved.callSignatures.length) { + if (flags & 64) { + writePunctuation(writer, 16); + } + writeKeyword(writer, 88); + writeSpace(writer); + buildSignatureDisplay(resolved.constructSignatures[0], writer, enclosingDeclaration, globalFlagsToPass | 8, typeStack); + if (flags & 64) { + writePunctuation(writer, 17); + } + return; + } + } + writePunctuation(writer, 14); + writer.writeLine(); + writer.increaseIndent(); + for (var _i = 0, _a = resolved.callSignatures; _i < _a.length; _i++) { + var signature = _a[_i]; + buildSignatureDisplay(signature, writer, enclosingDeclaration, globalFlagsToPass, typeStack); + writePunctuation(writer, 22); + writer.writeLine(); + } + for (var _b = 0, _c = resolved.constructSignatures; _b < _c.length; _b++) { + var signature = _c[_b]; + writeKeyword(writer, 88); + writeSpace(writer); + buildSignatureDisplay(signature, writer, enclosingDeclaration, globalFlagsToPass, typeStack); + writePunctuation(writer, 22); + writer.writeLine(); + } + if (resolved.stringIndexType) { + writePunctuation(writer, 18); + writer.writeParameter(getIndexerParameterName(resolved, 0, "x")); + writePunctuation(writer, 51); + writeSpace(writer); + writeKeyword(writer, 121); + writePunctuation(writer, 19); + writePunctuation(writer, 51); + writeSpace(writer); + writeType(resolved.stringIndexType, 0); + writePunctuation(writer, 22); + writer.writeLine(); + } + if (resolved.numberIndexType) { + writePunctuation(writer, 18); + writer.writeParameter(getIndexerParameterName(resolved, 1, "x")); + writePunctuation(writer, 51); + writeSpace(writer); + writeKeyword(writer, 119); + writePunctuation(writer, 19); + writePunctuation(writer, 51); + writeSpace(writer); + writeType(resolved.numberIndexType, 0); + writePunctuation(writer, 22); + writer.writeLine(); + } + for (var _d = 0, _e = resolved.properties; _d < _e.length; _d++) { + var p = _e[_d]; + var t = getTypeOfSymbol(p); + if (p.flags & (16 | 8192) && !getPropertiesOfObjectType(t).length) { + var signatures = getSignaturesOfType(t, 0); + for (var _f = 0; _f < signatures.length; _f++) { + var signature = signatures[_f]; + buildSymbolDisplay(p, writer); + if (p.flags & 536870912) { + writePunctuation(writer, 50); + } + buildSignatureDisplay(signature, writer, enclosingDeclaration, globalFlagsToPass, typeStack); + writePunctuation(writer, 22); + writer.writeLine(); + } + } + else { + buildSymbolDisplay(p, writer); + if (p.flags & 536870912) { + writePunctuation(writer, 50); + } + writePunctuation(writer, 51); + writeSpace(writer); + writeType(t, 0); + writePunctuation(writer, 22); + writer.writeLine(); + } + } + writer.decreaseIndent(); + writePunctuation(writer, 15); + } + } + function buildTypeParameterDisplayFromSymbol(symbol, writer, enclosingDeclaraiton, flags) { + var targetSymbol = getTargetSymbol(symbol); + if (targetSymbol.flags & 32 || targetSymbol.flags & 64) { + buildDisplayForTypeParametersAndDelimiters(getTypeParametersOfClassOrInterface(symbol), writer, enclosingDeclaraiton, flags); + } + } + function buildTypeParameterDisplay(tp, writer, enclosingDeclaration, flags, typeStack) { + appendSymbolNameOnly(tp.symbol, writer); + var constraint = getConstraintOfTypeParameter(tp); + if (constraint) { + writeSpace(writer); + writeKeyword(writer, 79); + writeSpace(writer); + buildTypeDisplay(constraint, writer, enclosingDeclaration, flags, typeStack); + } + } + function buildParameterDisplay(p, writer, enclosingDeclaration, flags, typeStack) { + if (ts.hasDotDotDotToken(p.valueDeclaration)) { + writePunctuation(writer, 21); + } + appendSymbolNameOnly(p, writer); + if (ts.hasQuestionToken(p.valueDeclaration) || p.valueDeclaration.initializer) { + writePunctuation(writer, 50); + } + writePunctuation(writer, 51); + writeSpace(writer); + buildTypeDisplay(getTypeOfSymbol(p), writer, enclosingDeclaration, flags, typeStack); + } + function buildDisplayForTypeParametersAndDelimiters(typeParameters, writer, enclosingDeclaration, flags, typeStack) { + if (typeParameters && typeParameters.length) { + writePunctuation(writer, 24); + for (var i = 0; i < typeParameters.length; i++) { + if (i > 0) { + writePunctuation(writer, 23); + writeSpace(writer); + } + buildTypeParameterDisplay(typeParameters[i], writer, enclosingDeclaration, flags, typeStack); + } + writePunctuation(writer, 25); + } + } + function buildDisplayForTypeArgumentsAndDelimiters(typeParameters, mapper, writer, enclosingDeclaration, flags, typeStack) { + if (typeParameters && typeParameters.length) { + writePunctuation(writer, 24); + for (var i = 0; i < typeParameters.length; i++) { + if (i > 0) { + writePunctuation(writer, 23); + writeSpace(writer); + } + buildTypeDisplay(mapper(typeParameters[i]), writer, enclosingDeclaration, 0); + } + writePunctuation(writer, 25); + } + } + function buildDisplayForParametersAndDelimiters(parameters, writer, enclosingDeclaration, flags, typeStack) { + writePunctuation(writer, 16); + for (var i = 0; i < parameters.length; i++) { + if (i > 0) { + writePunctuation(writer, 23); + writeSpace(writer); + } + buildParameterDisplay(parameters[i], writer, enclosingDeclaration, flags, typeStack); + } + writePunctuation(writer, 17); + } + function buildReturnTypeDisplay(signature, writer, enclosingDeclaration, flags, typeStack) { + if (flags & 8) { + writeSpace(writer); + writePunctuation(writer, 32); + } + else { + writePunctuation(writer, 51); + } + writeSpace(writer); + buildTypeDisplay(getReturnTypeOfSignature(signature), writer, enclosingDeclaration, flags, typeStack); + } + function buildSignatureDisplay(signature, writer, enclosingDeclaration, flags, typeStack) { + if (signature.target && (flags & 32)) { + buildDisplayForTypeArgumentsAndDelimiters(signature.target.typeParameters, signature.mapper, writer, enclosingDeclaration); + } + else { + buildDisplayForTypeParametersAndDelimiters(signature.typeParameters, writer, enclosingDeclaration, flags, typeStack); + } + buildDisplayForParametersAndDelimiters(signature.parameters, writer, enclosingDeclaration, flags, typeStack); + buildReturnTypeDisplay(signature, writer, enclosingDeclaration, flags, typeStack); + } + return _displayBuilder || (_displayBuilder = { + symbolToString: symbolToString, + typeToString: typeToString, + buildSymbolDisplay: buildSymbolDisplay, + buildTypeDisplay: buildTypeDisplay, + buildTypeParameterDisplay: buildTypeParameterDisplay, + buildParameterDisplay: buildParameterDisplay, + buildDisplayForParametersAndDelimiters: buildDisplayForParametersAndDelimiters, + buildDisplayForTypeParametersAndDelimiters: buildDisplayForTypeParametersAndDelimiters, + buildDisplayForTypeArgumentsAndDelimiters: buildDisplayForTypeArgumentsAndDelimiters, + buildTypeParameterDisplayFromSymbol: buildTypeParameterDisplayFromSymbol, + buildSignatureDisplay: buildSignatureDisplay, + buildReturnTypeDisplay: buildReturnTypeDisplay + }); + } + function isDeclarationVisible(node) { + function getContainingExternalModule(node) { + for (; node; node = node.parent) { + if (node.kind === 205) { + if (node.name.kind === 8) { + return node; + } + } + else if (node.kind === 227) { + return ts.isExternalModule(node) ? node : undefined; + } + } + ts.Debug.fail("getContainingModule cant reach here"); + } + function isUsedInExportAssignment(node) { + var externalModule = getContainingExternalModule(node); + var exportAssignmentSymbol; + var resolvedExportSymbol; + if (externalModule) { + var externalModuleSymbol = getSymbolOfNode(externalModule); + exportAssignmentSymbol = getExportAssignmentSymbol(externalModuleSymbol); + var symbolOfNode = getSymbolOfNode(node); + if (isSymbolUsedInExportAssignment(symbolOfNode)) { + return true; + } + if (symbolOfNode.flags & 8388608) { + return isSymbolUsedInExportAssignment(resolveAlias(symbolOfNode)); + } + } + function isSymbolUsedInExportAssignment(symbol) { + if (exportAssignmentSymbol === symbol) { + return true; + } + if (exportAssignmentSymbol && !!(exportAssignmentSymbol.flags & 8388608)) { + resolvedExportSymbol = resolvedExportSymbol || resolveAlias(exportAssignmentSymbol); + if (resolvedExportSymbol === symbol) { + return true; + } + return ts.forEach(resolvedExportSymbol.declarations, function (current) { + while (current) { + if (current === node) { + return true; + } + current = current.parent; + } + }); + } + } + } + function determineIfDeclarationIsVisible() { + switch (node.kind) { + case 152: + return isDeclarationVisible(node.parent.parent); + case 198: + if (ts.isBindingPattern(node.name) && + !node.name.elements.length) { + return false; + } + case 205: + case 201: + case 202: + case 203: + case 200: + case 204: + case 208: + var parent_2 = getDeclarationContainer(node); + if (!(ts.getCombinedNodeFlags(node) & 1) && + !(node.kind !== 208 && parent_2.kind !== 227 && ts.isInAmbientContext(parent_2))) { + return isGlobalSourceFile(parent_2); + } + return isDeclarationVisible(parent_2); + case 132: + case 131: + case 136: + case 137: + case 134: + case 133: + if (node.flags & (32 | 64)) { + return false; + } + case 135: + case 139: + case 138: + case 140: + case 129: + case 206: + case 142: + case 143: + case 145: + case 141: + case 146: + case 147: + case 148: + case 149: + return isDeclarationVisible(node.parent); + case 210: + case 211: + case 213: + return false; + case 128: + case 227: + return true; + case 214: + return false; + default: + ts.Debug.fail("isDeclarationVisible unknown: SyntaxKind: " + node.kind); + } + } + if (node) { + var links = getNodeLinks(node); + if (links.isVisible === undefined) { + links.isVisible = !!determineIfDeclarationIsVisible(); + } + return links.isVisible; + } + } + function collectLinkedAliases(node) { + var exportSymbol; + if (node.parent && node.parent.kind === 214) { + exportSymbol = resolveName(node.parent, node.text, 107455 | 793056 | 1536, ts.Diagnostics.Cannot_find_name_0, node); + } + else if (node.parent.kind === 217) { + exportSymbol = getTargetOfExportSpecifier(node.parent); + } + var result = []; + if (exportSymbol) { + buildVisibleNodeList(exportSymbol.declarations); + } + return result; + function buildVisibleNodeList(declarations) { + ts.forEach(declarations, function (declaration) { + getNodeLinks(declaration).isVisible = true; + var resultNode = getAnyImportSyntax(declaration) || declaration; + if (!ts.contains(result, resultNode)) { + result.push(resultNode); + } + if (ts.isInternalModuleImportEqualsDeclaration(declaration)) { + var internalModuleReference = declaration.moduleReference; + var firstIdentifier = getFirstIdentifier(internalModuleReference); + var importSymbol = resolveName(declaration, firstIdentifier.text, 107455 | 793056 | 1536, ts.Diagnostics.Cannot_find_name_0, firstIdentifier); + buildVisibleNodeList(importSymbol.declarations); + } + }); + } + } + function getRootDeclaration(node) { + while (node.kind === 152) { + node = node.parent.parent; + } + return node; + } + function getDeclarationContainer(node) { + node = getRootDeclaration(node); + return node.kind === 198 ? node.parent.parent.parent : node.parent; + } + function getTypeOfPrototypeProperty(prototype) { + var classType = getDeclaredTypeOfSymbol(prototype.parent); + return classType.typeParameters ? createTypeReference(classType, ts.map(classType.typeParameters, function (_) { return anyType; })) : classType; + } + function getTypeOfPropertyOfType(type, name) { + var prop = getPropertyOfType(type, name); + return prop ? getTypeOfSymbol(prop) : undefined; + } + function getTypeForBindingElement(declaration) { + var pattern = declaration.parent; + var parentType = getTypeForVariableLikeDeclaration(pattern.parent); + if (parentType === unknownType) { + return unknownType; + } + if (!parentType || parentType === anyType) { + if (declaration.initializer) { + return checkExpressionCached(declaration.initializer); + } + return parentType; + } + var type; + if (pattern.kind === 150) { + var name_5 = declaration.propertyName || declaration.name; + type = getTypeOfPropertyOfType(parentType, name_5.text) || + isNumericLiteralName(name_5.text) && getIndexTypeOfType(parentType, 1) || + getIndexTypeOfType(parentType, 0); + if (!type) { + error(name_5, ts.Diagnostics.Type_0_has_no_property_1_and_no_string_index_signature, typeToString(parentType), ts.declarationNameToString(name_5)); + return unknownType; + } + } + else { + if (!isArrayLikeType(parentType)) { + error(pattern, ts.Diagnostics.Type_0_is_not_an_array_type, typeToString(parentType)); + return unknownType; + } + if (!declaration.dotDotDotToken) { + var propName = "" + ts.indexOf(pattern.elements, declaration); + type = isTupleLikeType(parentType) ? getTypeOfPropertyOfType(parentType, propName) : getIndexTypeOfType(parentType, 1); + if (!type) { + if (isTupleType(parentType)) { + error(declaration, ts.Diagnostics.Tuple_type_0_with_length_1_cannot_be_assigned_to_tuple_with_length_2, typeToString(parentType), parentType.elementTypes.length, pattern.elements.length); + } + else { + error(declaration, ts.Diagnostics.Type_0_has_no_property_1, typeToString(parentType), propName); + } + return unknownType; + } + } + else { + type = createArrayType(getIndexTypeOfType(parentType, 1)); + } + } + return type; + } + function getTypeForVariableLikeDeclaration(declaration) { + if (declaration.parent.parent.kind === 187) { + return anyType; + } + if (declaration.parent.parent.kind === 188) { + return checkRightHandSideOfForOf(declaration.parent.parent.expression) || anyType; + } + if (ts.isBindingPattern(declaration.parent)) { + return getTypeForBindingElement(declaration); + } + if (declaration.type) { + return getTypeFromTypeNodeOrHeritageClauseElement(declaration.type); + } + if (declaration.kind === 129) { + var func = declaration.parent; + if (func.kind === 137 && !ts.hasDynamicName(func)) { + var getter = ts.getDeclarationOfKind(declaration.parent.symbol, 136); + if (getter) { + return getReturnTypeOfSignature(getSignatureFromDeclaration(getter)); + } + } + var type = getContextuallyTypedParameterType(declaration); + if (type) { + return type; + } + } + if (declaration.initializer) { + return checkExpressionCached(declaration.initializer); + } + if (declaration.kind === 225) { + return checkIdentifier(declaration.name); + } + return undefined; + } + function getTypeFromBindingElement(element) { + if (element.initializer) { + return getWidenedType(checkExpressionCached(element.initializer)); + } + if (ts.isBindingPattern(element.name)) { + return getTypeFromBindingPattern(element.name); + } + return anyType; + } + function getTypeFromObjectBindingPattern(pattern) { + var members = {}; + ts.forEach(pattern.elements, function (e) { + var flags = 4 | 67108864 | (e.initializer ? 536870912 : 0); + var name = e.propertyName || e.name; + var symbol = createSymbol(flags, name.text); + symbol.type = getTypeFromBindingElement(e); + members[symbol.name] = symbol; + }); + return createAnonymousType(undefined, members, emptyArray, emptyArray, undefined, undefined); + } + function getTypeFromArrayBindingPattern(pattern) { + var hasSpreadElement = false; + var elementTypes = []; + ts.forEach(pattern.elements, function (e) { + elementTypes.push(e.kind === 175 || e.dotDotDotToken ? anyType : getTypeFromBindingElement(e)); + if (e.dotDotDotToken) { + hasSpreadElement = true; + } + }); + return !elementTypes.length ? anyArrayType : hasSpreadElement ? createArrayType(getUnionType(elementTypes)) : createTupleType(elementTypes); + } + function getTypeFromBindingPattern(pattern) { + return pattern.kind === 150 + ? getTypeFromObjectBindingPattern(pattern) + : getTypeFromArrayBindingPattern(pattern); + } + function getWidenedTypeForVariableLikeDeclaration(declaration, reportErrors) { + var type = getTypeForVariableLikeDeclaration(declaration); + if (type) { + if (reportErrors) { + reportErrorsFromWidening(declaration, type); + } + return declaration.kind !== 224 ? getWidenedType(type) : type; + } + if (ts.isBindingPattern(declaration.name)) { + return getTypeFromBindingPattern(declaration.name); + } + type = declaration.dotDotDotToken ? anyArrayType : anyType; + if (reportErrors && compilerOptions.noImplicitAny) { + var root = getRootDeclaration(declaration); + if (!isPrivateWithinAmbient(root) && !(root.kind === 129 && isPrivateWithinAmbient(root.parent))) { + reportImplicitAnyError(declaration, type); + } + } + return type; + } + function getTypeOfVariableOrParameterOrProperty(symbol) { + var links = getSymbolLinks(symbol); + if (!links.type) { + if (symbol.flags & 134217728) { + return links.type = getTypeOfPrototypeProperty(symbol); + } + var declaration = symbol.valueDeclaration; + if (declaration.parent.kind === 223) { + return links.type = anyType; + } + if (declaration.kind === 214) { + var exportAssignment = declaration; + if (exportAssignment.expression) { + return links.type = checkExpression(exportAssignment.expression); + } + else if (exportAssignment.type) { + return links.type = getTypeFromTypeNodeOrHeritageClauseElement(exportAssignment.type); + } + else { + return links.type = anyType; + } + } + links.type = resolvingType; + var type = getWidenedTypeForVariableLikeDeclaration(declaration, true); + if (links.type === resolvingType) { + links.type = type; + } + } + else if (links.type === resolvingType) { + links.type = anyType; + if (compilerOptions.noImplicitAny) { + var diagnostic = symbol.valueDeclaration.type ? + ts.Diagnostics._0_implicitly_has_type_any_because_it_is_referenced_directly_or_indirectly_in_its_own_type_annotation : + ts.Diagnostics._0_implicitly_has_type_any_because_it_is_does_not_have_a_type_annotation_and_is_referenced_directly_or_indirectly_in_its_own_initializer; + error(symbol.valueDeclaration, diagnostic, symbolToString(symbol)); + } + } + return links.type; + } + function getSetAccessorTypeAnnotationNode(accessor) { + return accessor && accessor.parameters.length > 0 && accessor.parameters[0].type; + } + function getAnnotatedAccessorType(accessor) { + if (accessor) { + if (accessor.kind === 136) { + return accessor.type && getTypeFromTypeNodeOrHeritageClauseElement(accessor.type); + } + else { + var setterTypeAnnotation = getSetAccessorTypeAnnotationNode(accessor); + return setterTypeAnnotation && getTypeFromTypeNodeOrHeritageClauseElement(setterTypeAnnotation); + } + } + return undefined; + } + function getTypeOfAccessors(symbol) { + var links = getSymbolLinks(symbol); + checkAndStoreTypeOfAccessors(symbol, links); + return links.type; + } + function checkAndStoreTypeOfAccessors(symbol, links) { + links = links || getSymbolLinks(symbol); + if (!links.type) { + links.type = resolvingType; + var getter = ts.getDeclarationOfKind(symbol, 136); + var setter = ts.getDeclarationOfKind(symbol, 137); + var type; + var getterReturnType = getAnnotatedAccessorType(getter); + if (getterReturnType) { + type = getterReturnType; + } + else { + var setterParameterType = getAnnotatedAccessorType(setter); + if (setterParameterType) { + type = setterParameterType; + } + else { + if (getter && getter.body) { + type = getReturnTypeFromBody(getter); + } + else { + if (compilerOptions.noImplicitAny) { + error(setter, ts.Diagnostics.Property_0_implicitly_has_type_any_because_its_set_accessor_lacks_a_type_annotation, symbolToString(symbol)); + } + type = anyType; + } + } + } + if (links.type === resolvingType) { + links.type = type; + } + } + else if (links.type === resolvingType) { + links.type = anyType; + if (compilerOptions.noImplicitAny) { + var getter = ts.getDeclarationOfKind(symbol, 136); + error(getter, ts.Diagnostics._0_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions, symbolToString(symbol)); + } + } + } + function getTypeOfFuncClassEnumModule(symbol) { + var links = getSymbolLinks(symbol); + if (!links.type) { + links.type = createObjectType(32768, symbol); + } + return links.type; + } + function getTypeOfEnumMember(symbol) { + var links = getSymbolLinks(symbol); + if (!links.type) { + links.type = getDeclaredTypeOfEnum(getParentOfSymbol(symbol)); + } + return links.type; + } + function getTypeOfAlias(symbol) { + var links = getSymbolLinks(symbol); + if (!links.type) { + links.type = getTypeOfSymbol(resolveAlias(symbol)); + } + return links.type; + } + function getTypeOfInstantiatedSymbol(symbol) { + var links = getSymbolLinks(symbol); + if (!links.type) { + links.type = instantiateType(getTypeOfSymbol(links.target), links.mapper); + } + return links.type; + } + function getTypeOfSymbol(symbol) { + if (symbol.flags & 16777216) { + return getTypeOfInstantiatedSymbol(symbol); + } + if (symbol.flags & (3 | 4)) { + return getTypeOfVariableOrParameterOrProperty(symbol); + } + if (symbol.flags & (16 | 8192 | 32 | 384 | 512)) { + return getTypeOfFuncClassEnumModule(symbol); + } + if (symbol.flags & 8) { + return getTypeOfEnumMember(symbol); + } + if (symbol.flags & 98304) { + return getTypeOfAccessors(symbol); + } + if (symbol.flags & 8388608) { + return getTypeOfAlias(symbol); + } + return unknownType; + } + function getTargetType(type) { + return type.flags & 4096 ? type.target : type; + } + function hasBaseType(type, checkBase) { + return check(type); + function check(type) { + var target = getTargetType(type); + return target === checkBase || ts.forEach(target.baseTypes, check); + } + } + function getTypeParametersOfClassOrInterface(symbol) { + var result; + ts.forEach(symbol.declarations, function (node) { + if (node.kind === 202 || node.kind === 201) { + var declaration = node; + if (declaration.typeParameters && declaration.typeParameters.length) { + ts.forEach(declaration.typeParameters, function (node) { + var tp = getDeclaredTypeOfTypeParameter(getSymbolOfNode(node)); + if (!result) { + result = [tp]; + } + else if (!ts.contains(result, tp)) { + result.push(tp); + } + }); + } + } + }); + return result; + } + function getDeclaredTypeOfClass(symbol) { + var links = getSymbolLinks(symbol); + if (!links.declaredType) { + var type = links.declaredType = createObjectType(1024, symbol); + var typeParameters = getTypeParametersOfClassOrInterface(symbol); + if (typeParameters) { + type.flags |= 4096; + type.typeParameters = typeParameters; + type.instantiations = {}; + type.instantiations[getTypeListId(type.typeParameters)] = type; + type.target = type; + type.typeArguments = type.typeParameters; + } + type.baseTypes = []; + var declaration = ts.getDeclarationOfKind(symbol, 201); + var baseTypeNode = ts.getClassExtendsHeritageClauseElement(declaration); + if (baseTypeNode) { + var baseType = getTypeFromHeritageClauseElement(baseTypeNode); + if (baseType !== unknownType) { + if (getTargetType(baseType).flags & 1024) { + if (type !== baseType && !hasBaseType(baseType, type)) { + type.baseTypes.push(baseType); + } + else { + error(declaration, ts.Diagnostics.Type_0_recursively_references_itself_as_a_base_type, typeToString(type, undefined, 1)); + } + } + else { + error(baseTypeNode, ts.Diagnostics.A_class_may_only_extend_another_class); + } + } + } + type.declaredProperties = getNamedMembers(symbol.members); + type.declaredCallSignatures = emptyArray; + type.declaredConstructSignatures = emptyArray; + type.declaredStringIndexType = getIndexTypeOfSymbol(symbol, 0); + type.declaredNumberIndexType = getIndexTypeOfSymbol(symbol, 1); + } + return links.declaredType; + } + function getDeclaredTypeOfInterface(symbol) { + var links = getSymbolLinks(symbol); + if (!links.declaredType) { + var type = links.declaredType = createObjectType(2048, symbol); + var typeParameters = getTypeParametersOfClassOrInterface(symbol); + if (typeParameters) { + type.flags |= 4096; + type.typeParameters = typeParameters; + type.instantiations = {}; + type.instantiations[getTypeListId(type.typeParameters)] = type; + type.target = type; + type.typeArguments = type.typeParameters; + } + type.baseTypes = []; + ts.forEach(symbol.declarations, function (declaration) { + if (declaration.kind === 202 && ts.getInterfaceBaseTypeNodes(declaration)) { + ts.forEach(ts.getInterfaceBaseTypeNodes(declaration), function (node) { + var baseType = getTypeFromHeritageClauseElement(node); + if (baseType !== unknownType) { + if (getTargetType(baseType).flags & (1024 | 2048)) { + if (type !== baseType && !hasBaseType(baseType, type)) { + type.baseTypes.push(baseType); + } + else { + error(declaration, ts.Diagnostics.Type_0_recursively_references_itself_as_a_base_type, typeToString(type, undefined, 1)); + } + } + else { + error(node, ts.Diagnostics.An_interface_may_only_extend_a_class_or_another_interface); + } + } + }); + } + }); + type.declaredProperties = getNamedMembers(symbol.members); + type.declaredCallSignatures = getSignaturesOfSymbol(symbol.members["__call"]); + type.declaredConstructSignatures = getSignaturesOfSymbol(symbol.members["__new"]); + type.declaredStringIndexType = getIndexTypeOfSymbol(symbol, 0); + type.declaredNumberIndexType = getIndexTypeOfSymbol(symbol, 1); + } + return links.declaredType; + } + function getDeclaredTypeOfTypeAlias(symbol) { + var links = getSymbolLinks(symbol); + if (!links.declaredType) { + links.declaredType = resolvingType; + var declaration = ts.getDeclarationOfKind(symbol, 203); + var type = getTypeFromTypeNodeOrHeritageClauseElement(declaration.type); + if (links.declaredType === resolvingType) { + links.declaredType = type; + } + } + else if (links.declaredType === resolvingType) { + links.declaredType = unknownType; + var declaration = ts.getDeclarationOfKind(symbol, 203); + error(declaration.name, ts.Diagnostics.Type_alias_0_circularly_references_itself, symbolToString(symbol)); + } + return links.declaredType; + } + function getDeclaredTypeOfEnum(symbol) { + var links = getSymbolLinks(symbol); + if (!links.declaredType) { + var type = createType(128); + type.symbol = symbol; + links.declaredType = type; + } + return links.declaredType; + } + function getDeclaredTypeOfTypeParameter(symbol) { + var links = getSymbolLinks(symbol); + if (!links.declaredType) { + var type = createType(512); + type.symbol = symbol; + if (!ts.getDeclarationOfKind(symbol, 128).constraint) { + type.constraint = noConstraintType; + } + links.declaredType = type; + } + return links.declaredType; + } + function getDeclaredTypeOfAlias(symbol) { + var links = getSymbolLinks(symbol); + if (!links.declaredType) { + links.declaredType = getDeclaredTypeOfSymbol(resolveAlias(symbol)); + } + return links.declaredType; + } + function getDeclaredTypeOfSymbol(symbol) { + ts.Debug.assert((symbol.flags & 16777216) === 0); + if (symbol.flags & 32) { + return getDeclaredTypeOfClass(symbol); + } + if (symbol.flags & 64) { + return getDeclaredTypeOfInterface(symbol); + } + if (symbol.flags & 524288) { + return getDeclaredTypeOfTypeAlias(symbol); + } + if (symbol.flags & 384) { + return getDeclaredTypeOfEnum(symbol); + } + if (symbol.flags & 262144) { + return getDeclaredTypeOfTypeParameter(symbol); + } + if (symbol.flags & 8388608) { + return getDeclaredTypeOfAlias(symbol); + } + return unknownType; + } + function createSymbolTable(symbols) { + var result = {}; + for (var _i = 0; _i < symbols.length; _i++) { + var symbol = symbols[_i]; + result[symbol.name] = symbol; + } + return result; + } + function createInstantiatedSymbolTable(symbols, mapper) { + var result = {}; + for (var _i = 0; _i < symbols.length; _i++) { + var symbol = symbols[_i]; + result[symbol.name] = instantiateSymbol(symbol, mapper); + } + return result; + } + function addInheritedMembers(symbols, baseSymbols) { + for (var _i = 0; _i < baseSymbols.length; _i++) { + var s = baseSymbols[_i]; + if (!ts.hasProperty(symbols, s.name)) { + symbols[s.name] = s; + } + } + } + function addInheritedSignatures(signatures, baseSignatures) { + if (baseSignatures) { + for (var _i = 0; _i < baseSignatures.length; _i++) { + var signature = baseSignatures[_i]; + signatures.push(signature); + } + } + } + function resolveClassOrInterfaceMembers(type) { + var members = type.symbol.members; + var callSignatures = type.declaredCallSignatures; + var constructSignatures = type.declaredConstructSignatures; + var stringIndexType = type.declaredStringIndexType; + var numberIndexType = type.declaredNumberIndexType; + if (type.baseTypes.length) { + members = createSymbolTable(type.declaredProperties); + ts.forEach(type.baseTypes, function (baseType) { + addInheritedMembers(members, getPropertiesOfObjectType(baseType)); + callSignatures = ts.concatenate(callSignatures, getSignaturesOfType(baseType, 0)); + constructSignatures = ts.concatenate(constructSignatures, getSignaturesOfType(baseType, 1)); + stringIndexType = stringIndexType || getIndexTypeOfType(baseType, 0); + numberIndexType = numberIndexType || getIndexTypeOfType(baseType, 1); + }); + } + setObjectTypeMembers(type, members, callSignatures, constructSignatures, stringIndexType, numberIndexType); + } + function resolveTypeReferenceMembers(type) { + var target = type.target; + var mapper = createTypeMapper(target.typeParameters, type.typeArguments); + var members = createInstantiatedSymbolTable(target.declaredProperties, mapper); + var callSignatures = instantiateList(target.declaredCallSignatures, mapper, instantiateSignature); + var constructSignatures = instantiateList(target.declaredConstructSignatures, mapper, instantiateSignature); + var stringIndexType = target.declaredStringIndexType ? instantiateType(target.declaredStringIndexType, mapper) : undefined; + var numberIndexType = target.declaredNumberIndexType ? instantiateType(target.declaredNumberIndexType, mapper) : undefined; + ts.forEach(target.baseTypes, function (baseType) { + var instantiatedBaseType = instantiateType(baseType, mapper); + addInheritedMembers(members, getPropertiesOfObjectType(instantiatedBaseType)); + callSignatures = ts.concatenate(callSignatures, getSignaturesOfType(instantiatedBaseType, 0)); + constructSignatures = ts.concatenate(constructSignatures, getSignaturesOfType(instantiatedBaseType, 1)); + stringIndexType = stringIndexType || getIndexTypeOfType(instantiatedBaseType, 0); + numberIndexType = numberIndexType || getIndexTypeOfType(instantiatedBaseType, 1); + }); + setObjectTypeMembers(type, members, callSignatures, constructSignatures, stringIndexType, numberIndexType); + } + function createSignature(declaration, typeParameters, parameters, resolvedReturnType, minArgumentCount, hasRestParameter, hasStringLiterals) { + var sig = new Signature(checker); + sig.declaration = declaration; + sig.typeParameters = typeParameters; + sig.parameters = parameters; + sig.resolvedReturnType = resolvedReturnType; + sig.minArgumentCount = minArgumentCount; + sig.hasRestParameter = hasRestParameter; + sig.hasStringLiterals = hasStringLiterals; + return sig; + } + function cloneSignature(sig) { + return createSignature(sig.declaration, sig.typeParameters, sig.parameters, sig.resolvedReturnType, sig.minArgumentCount, sig.hasRestParameter, sig.hasStringLiterals); + } + function getDefaultConstructSignatures(classType) { + if (classType.baseTypes.length) { + var baseType = classType.baseTypes[0]; + var baseSignatures = getSignaturesOfType(getTypeOfSymbol(baseType.symbol), 1); + return ts.map(baseSignatures, function (baseSignature) { + var signature = baseType.flags & 4096 ? + getSignatureInstantiation(baseSignature, baseType.typeArguments) : cloneSignature(baseSignature); + signature.typeParameters = classType.typeParameters; + signature.resolvedReturnType = classType; + return signature; + }); + } + return [createSignature(undefined, classType.typeParameters, emptyArray, classType, 0, false, false)]; + } + function createTupleTypeMemberSymbols(memberTypes) { + var members = {}; + for (var i = 0; i < memberTypes.length; i++) { + var symbol = createSymbol(4 | 67108864, "" + i); + symbol.type = memberTypes[i]; + members[i] = symbol; + } + return members; + } + function resolveTupleTypeMembers(type) { + var arrayType = resolveObjectOrUnionTypeMembers(createArrayType(getUnionType(type.elementTypes))); + var members = createTupleTypeMemberSymbols(type.elementTypes); + addInheritedMembers(members, arrayType.properties); + setObjectTypeMembers(type, members, arrayType.callSignatures, arrayType.constructSignatures, arrayType.stringIndexType, arrayType.numberIndexType); + } + function signatureListsIdentical(s, t) { + if (s.length !== t.length) { + return false; + } + for (var i = 0; i < s.length; i++) { + if (!compareSignatures(s[i], t[i], false, compareTypes)) { + return false; + } + } + return true; + } + function getUnionSignatures(types, kind) { + var signatureLists = ts.map(types, function (t) { return getSignaturesOfType(t, kind); }); + var signatures = signatureLists[0]; + for (var _i = 0; _i < signatures.length; _i++) { + var signature = signatures[_i]; + if (signature.typeParameters) { + return emptyArray; + } + } + for (var i_1 = 1; i_1 < signatureLists.length; i_1++) { + if (!signatureListsIdentical(signatures, signatureLists[i_1])) { + return emptyArray; + } + } + var result = ts.map(signatures, cloneSignature); + for (var i = 0; i < result.length; i++) { + var s = result[i]; + s.resolvedReturnType = undefined; + s.unionSignatures = ts.map(signatureLists, function (signatures) { return signatures[i]; }); + } + return result; + } + function getUnionIndexType(types, kind) { + var indexTypes = []; + for (var _i = 0; _i < types.length; _i++) { + var type = types[_i]; + var indexType = getIndexTypeOfType(type, kind); + if (!indexType) { + return undefined; + } + indexTypes.push(indexType); + } + return getUnionType(indexTypes); + } + function resolveUnionTypeMembers(type) { + var callSignatures = getUnionSignatures(type.types, 0); + var constructSignatures = getUnionSignatures(type.types, 1); + var stringIndexType = getUnionIndexType(type.types, 0); + var numberIndexType = getUnionIndexType(type.types, 1); + setObjectTypeMembers(type, emptySymbols, callSignatures, constructSignatures, stringIndexType, numberIndexType); + } + function resolveAnonymousTypeMembers(type) { + var symbol = type.symbol; + var members; + var callSignatures; + var constructSignatures; + var stringIndexType; + var numberIndexType; + if (symbol.flags & 2048) { + members = symbol.members; + callSignatures = getSignaturesOfSymbol(members["__call"]); + constructSignatures = getSignaturesOfSymbol(members["__new"]); + stringIndexType = getIndexTypeOfSymbol(symbol, 0); + numberIndexType = getIndexTypeOfSymbol(symbol, 1); + } + else { + members = emptySymbols; + callSignatures = emptyArray; + constructSignatures = emptyArray; + if (symbol.flags & 1952) { + members = getExportsOfSymbol(symbol); + } + if (symbol.flags & (16 | 8192)) { + callSignatures = getSignaturesOfSymbol(symbol); + } + if (symbol.flags & 32) { + var classType = getDeclaredTypeOfClass(symbol); + constructSignatures = getSignaturesOfSymbol(symbol.members["__constructor"]); + if (!constructSignatures.length) { + constructSignatures = getDefaultConstructSignatures(classType); + } + if (classType.baseTypes.length) { + members = createSymbolTable(getNamedMembers(members)); + addInheritedMembers(members, getPropertiesOfObjectType(getTypeOfSymbol(classType.baseTypes[0].symbol))); + } + } + stringIndexType = undefined; + numberIndexType = (symbol.flags & 384) ? stringType : undefined; + } + setObjectTypeMembers(type, members, callSignatures, constructSignatures, stringIndexType, numberIndexType); + } + function resolveObjectOrUnionTypeMembers(type) { + if (!type.members) { + if (type.flags & (1024 | 2048)) { + resolveClassOrInterfaceMembers(type); + } + else if (type.flags & 32768) { + resolveAnonymousTypeMembers(type); + } + else if (type.flags & 8192) { + resolveTupleTypeMembers(type); + } + else if (type.flags & 16384) { + resolveUnionTypeMembers(type); + } + else { + resolveTypeReferenceMembers(type); + } + } + return type; + } + function getPropertiesOfObjectType(type) { + if (type.flags & 48128) { + return resolveObjectOrUnionTypeMembers(type).properties; + } + return emptyArray; + } + function getPropertyOfObjectType(type, name) { + if (type.flags & 48128) { + var resolved = resolveObjectOrUnionTypeMembers(type); + if (ts.hasProperty(resolved.members, name)) { + var symbol = resolved.members[name]; + if (symbolIsValue(symbol)) { + return symbol; + } + } + } + } + function getPropertiesOfUnionType(type) { + var result = []; + ts.forEach(getPropertiesOfType(type.types[0]), function (prop) { + var unionProp = getPropertyOfUnionType(type, prop.name); + if (unionProp) { + result.push(unionProp); + } + }); + return result; + } + function getPropertiesOfType(type) { + if (type.flags & 16384) { + return getPropertiesOfUnionType(type); + } + return getPropertiesOfObjectType(getApparentType(type)); + } + function getApparentType(type) { + if (type.flags & 512) { + do { + type = getConstraintOfTypeParameter(type); + } while (type && type.flags & 512); + if (!type) { + type = emptyObjectType; + } + } + if (type.flags & 258) { + type = globalStringType; + } + else if (type.flags & 132) { + type = globalNumberType; + } + else if (type.flags & 8) { + type = globalBooleanType; + } + else if (type.flags & 1048576) { + type = globalESSymbolType; + } + return type; + } + function createUnionProperty(unionType, name) { + var types = unionType.types; + var props; + for (var _i = 0; _i < types.length; _i++) { + var current = types[_i]; + var type = getApparentType(current); + if (type !== unknownType) { + var prop = getPropertyOfType(type, name); + if (!prop) { + return undefined; + } + if (!props) { + props = [prop]; + } + else { + props.push(prop); + } + } + } + var propTypes = []; + var declarations = []; + for (var _a = 0; _a < props.length; _a++) { + var prop = props[_a]; + if (prop.declarations) { + declarations.push.apply(declarations, prop.declarations); + } + propTypes.push(getTypeOfSymbol(prop)); + } + var result = createSymbol(4 | 67108864 | 268435456, name); + result.unionType = unionType; + result.declarations = declarations; + result.type = getUnionType(propTypes); + return result; + } + function getPropertyOfUnionType(type, name) { + var properties = type.resolvedProperties || (type.resolvedProperties = {}); + if (ts.hasProperty(properties, name)) { + return properties[name]; + } + var property = createUnionProperty(type, name); + if (property) { + properties[name] = property; + } + return property; + } + function getPropertyOfType(type, name) { + if (type.flags & 16384) { + return getPropertyOfUnionType(type, name); + } + if (!(type.flags & 48128)) { + type = getApparentType(type); + if (!(type.flags & 48128)) { + return undefined; + } + } + var resolved = resolveObjectOrUnionTypeMembers(type); + if (ts.hasProperty(resolved.members, name)) { + var symbol = resolved.members[name]; + if (symbolIsValue(symbol)) { + return symbol; + } + } + if (resolved === anyFunctionType || resolved.callSignatures.length || resolved.constructSignatures.length) { + var symbol = getPropertyOfObjectType(globalFunctionType, name); + if (symbol) + return symbol; + } + return getPropertyOfObjectType(globalObjectType, name); + } + function getSignaturesOfObjectOrUnionType(type, kind) { + if (type.flags & (48128 | 16384)) { + var resolved = resolveObjectOrUnionTypeMembers(type); + return kind === 0 ? resolved.callSignatures : resolved.constructSignatures; + } + return emptyArray; + } + function getSignaturesOfType(type, kind) { + return getSignaturesOfObjectOrUnionType(getApparentType(type), kind); + } + function getIndexTypeOfObjectOrUnionType(type, kind) { + if (type.flags & (48128 | 16384)) { + var resolved = resolveObjectOrUnionTypeMembers(type); + return kind === 0 ? resolved.stringIndexType : resolved.numberIndexType; + } + } + function getIndexTypeOfType(type, kind) { + return getIndexTypeOfObjectOrUnionType(getApparentType(type), kind); + } + function getTypeParametersFromDeclaration(typeParameterDeclarations) { + var result = []; + ts.forEach(typeParameterDeclarations, function (node) { + var tp = getDeclaredTypeOfTypeParameter(node.symbol); + if (!ts.contains(result, tp)) { + result.push(tp); + } + }); + return result; + } + function symbolsToArray(symbols) { + var result = []; + for (var id in symbols) { + if (!isReservedMemberName(id)) { + result.push(symbols[id]); + } + } + return result; + } + function getExportsOfExternalModule(node) { + if (!node.moduleSpecifier) { + return emptyArray; + } + var module = resolveExternalModuleName(node, node.moduleSpecifier); + if (!module) { + return emptyArray; + } + return symbolsToArray(getExportsOfModule(module)); + } + function getSignatureFromDeclaration(declaration) { + var links = getNodeLinks(declaration); + if (!links.resolvedSignature) { + var classType = declaration.kind === 135 ? getDeclaredTypeOfClass(declaration.parent.symbol) : undefined; + var typeParameters = classType ? classType.typeParameters : + declaration.typeParameters ? getTypeParametersFromDeclaration(declaration.typeParameters) : undefined; + var parameters = []; + var hasStringLiterals = false; + var minArgumentCount = -1; + for (var i = 0, n = declaration.parameters.length; i < n; i++) { + var param = declaration.parameters[i]; + parameters.push(param.symbol); + if (param.type && param.type.kind === 8) { + hasStringLiterals = true; + } + if (minArgumentCount < 0) { + if (param.initializer || param.questionToken || param.dotDotDotToken) { + minArgumentCount = i; + } + } + } + if (minArgumentCount < 0) { + minArgumentCount = declaration.parameters.length; + } + var returnType; + if (classType) { + returnType = classType; + } + else if (declaration.type) { + returnType = getTypeFromTypeNodeOrHeritageClauseElement(declaration.type); + } + else { + if (declaration.kind === 136 && !ts.hasDynamicName(declaration)) { + var setter = ts.getDeclarationOfKind(declaration.symbol, 137); + returnType = getAnnotatedAccessorType(setter); + } + if (!returnType && ts.nodeIsMissing(declaration.body)) { + returnType = anyType; + } + } + links.resolvedSignature = createSignature(declaration, typeParameters, parameters, returnType, minArgumentCount, ts.hasRestParameters(declaration), hasStringLiterals); + } + return links.resolvedSignature; + } + function getSignaturesOfSymbol(symbol) { + if (!symbol) + return emptyArray; + var result = []; + for (var i = 0, len = symbol.declarations.length; i < len; i++) { + var node = symbol.declarations[i]; + switch (node.kind) { + case 142: + case 143: + case 200: + case 134: + case 133: + case 135: + case 138: + case 139: + case 140: + case 136: + case 137: + case 162: + case 163: + if (i > 0 && node.body) { + var previous = symbol.declarations[i - 1]; + if (node.parent === previous.parent && node.kind === previous.kind && node.pos === previous.end) { + break; + } + } + result.push(getSignatureFromDeclaration(node)); + } + } + return result; + } + function getReturnTypeOfSignature(signature) { + if (!signature.resolvedReturnType) { + signature.resolvedReturnType = resolvingType; + var type; + if (signature.target) { + type = instantiateType(getReturnTypeOfSignature(signature.target), signature.mapper); + } + else if (signature.unionSignatures) { + type = getUnionType(ts.map(signature.unionSignatures, getReturnTypeOfSignature)); + } + else { + type = getReturnTypeFromBody(signature.declaration); + } + if (signature.resolvedReturnType === resolvingType) { + signature.resolvedReturnType = type; + } + } + else if (signature.resolvedReturnType === resolvingType) { + signature.resolvedReturnType = anyType; + if (compilerOptions.noImplicitAny) { + var declaration = signature.declaration; + if (declaration.name) { + error(declaration.name, ts.Diagnostics._0_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions, ts.declarationNameToString(declaration.name)); + } + else { + error(declaration, ts.Diagnostics.Function_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions); + } + } + } + return signature.resolvedReturnType; + } + function getRestTypeOfSignature(signature) { + if (signature.hasRestParameter) { + var type = getTypeOfSymbol(signature.parameters[signature.parameters.length - 1]); + if (type.flags & 4096 && type.target === globalArrayType) { + return type.typeArguments[0]; + } + } + return anyType; + } + function getSignatureInstantiation(signature, typeArguments) { + return instantiateSignature(signature, createTypeMapper(signature.typeParameters, typeArguments), true); + } + function getErasedSignature(signature) { + if (!signature.typeParameters) + return signature; + if (!signature.erasedSignatureCache) { + if (signature.target) { + signature.erasedSignatureCache = instantiateSignature(getErasedSignature(signature.target), signature.mapper); + } + else { + signature.erasedSignatureCache = instantiateSignature(signature, createTypeEraser(signature.typeParameters), true); + } + } + return signature.erasedSignatureCache; + } + function getOrCreateTypeFromSignature(signature) { + if (!signature.isolatedSignatureType) { + var isConstructor = signature.declaration.kind === 135 || signature.declaration.kind === 139; + var type = createObjectType(32768 | 65536); + type.members = emptySymbols; + type.properties = emptyArray; + type.callSignatures = !isConstructor ? [signature] : emptyArray; + type.constructSignatures = isConstructor ? [signature] : emptyArray; + signature.isolatedSignatureType = type; + } + return signature.isolatedSignatureType; + } + function getIndexSymbol(symbol) { + return symbol.members["__index"]; + } + function getIndexDeclarationOfSymbol(symbol, kind) { + var syntaxKind = kind === 1 ? 119 : 121; + var indexSymbol = getIndexSymbol(symbol); + if (indexSymbol) { + var len = indexSymbol.declarations.length; + for (var _i = 0, _a = indexSymbol.declarations; _i < _a.length; _i++) { + var decl = _a[_i]; + var node = decl; + if (node.parameters.length === 1) { + var parameter = node.parameters[0]; + if (parameter && parameter.type && parameter.type.kind === syntaxKind) { + return node; + } + } + } + } + return undefined; + } + function getIndexTypeOfSymbol(symbol, kind) { + var declaration = getIndexDeclarationOfSymbol(symbol, kind); + return declaration + ? declaration.type ? getTypeFromTypeNodeOrHeritageClauseElement(declaration.type) : anyType + : undefined; + } + function getConstraintOfTypeParameter(type) { + if (!type.constraint) { + if (type.target) { + var targetConstraint = getConstraintOfTypeParameter(type.target); + type.constraint = targetConstraint ? instantiateType(targetConstraint, type.mapper) : noConstraintType; + } + else { + type.constraint = getTypeFromTypeNodeOrHeritageClauseElement(ts.getDeclarationOfKind(type.symbol, 128).constraint); + } + } + return type.constraint === noConstraintType ? undefined : type.constraint; + } + function getTypeListId(types) { + switch (types.length) { + case 1: + return "" + types[0].id; + case 2: + return types[0].id + "," + types[1].id; + default: + var result = ""; + for (var i = 0; i < types.length; i++) { + if (i > 0) { + result += ","; + } + result += types[i].id; + } + return result; + } + } + function getWideningFlagsOfTypes(types) { + var result = 0; + for (var _i = 0; _i < types.length; _i++) { + var type = types[_i]; + result |= type.flags; + } + return result & 786432; + } + function createTypeReference(target, typeArguments) { + var id = getTypeListId(typeArguments); + var type = target.instantiations[id]; + if (!type) { + var flags = 4096 | getWideningFlagsOfTypes(typeArguments); + type = target.instantiations[id] = createObjectType(flags, target.symbol); + type.target = target; + type.typeArguments = typeArguments; + } + return type; + } + function isTypeParameterReferenceIllegalInConstraint(typeReferenceNode, typeParameterSymbol) { + var links = getNodeLinks(typeReferenceNode); + if (links.isIllegalTypeReferenceInConstraint !== undefined) { + return links.isIllegalTypeReferenceInConstraint; + } + var currentNode = typeReferenceNode; + while (!ts.forEach(typeParameterSymbol.declarations, function (d) { return d.parent === currentNode.parent; })) { + currentNode = currentNode.parent; + } + links.isIllegalTypeReferenceInConstraint = currentNode.kind === 128; + return links.isIllegalTypeReferenceInConstraint; + } + function checkTypeParameterHasIllegalReferencesInConstraint(typeParameter) { + var typeParameterSymbol; + function check(n) { + if (n.kind === 141 && n.typeName.kind === 65) { + var links = getNodeLinks(n); + if (links.isIllegalTypeReferenceInConstraint === undefined) { + var symbol = resolveName(typeParameter, n.typeName.text, 793056, undefined, undefined); + if (symbol && (symbol.flags & 262144)) { + links.isIllegalTypeReferenceInConstraint = ts.forEach(symbol.declarations, function (d) { return d.parent == typeParameter.parent; }); + } + } + if (links.isIllegalTypeReferenceInConstraint) { + error(typeParameter, ts.Diagnostics.Constraint_of_a_type_parameter_cannot_reference_any_type_parameter_from_the_same_type_parameter_list); + } + } + ts.forEachChild(n, check); + } + if (typeParameter.constraint) { + typeParameterSymbol = getSymbolOfNode(typeParameter); + check(typeParameter.constraint); + } + } + function getTypeFromTypeReference(node) { + return getTypeFromTypeReferenceOrHeritageClauseElement(node); + } + function getTypeFromHeritageClauseElement(node) { + return getTypeFromTypeReferenceOrHeritageClauseElement(node); + } + function getTypeFromTypeReferenceOrHeritageClauseElement(node) { + var links = getNodeLinks(node); + if (!links.resolvedType) { + var type; + if (node.kind !== 177 || ts.isSupportedHeritageClauseElement(node)) { + var typeNameOrExpression = node.kind === 141 + ? node.typeName + : node.expression; + var symbol = resolveEntityName(typeNameOrExpression, 793056); + if (symbol) { + if ((symbol.flags & 262144) && isTypeParameterReferenceIllegalInConstraint(node, symbol)) { + type = unknownType; + } + else { + type = getDeclaredTypeOfSymbol(symbol); + if (type.flags & (1024 | 2048) && type.flags & 4096) { + var typeParameters = type.typeParameters; + if (node.typeArguments && node.typeArguments.length === typeParameters.length) { + type = createTypeReference(type, ts.map(node.typeArguments, getTypeFromTypeNodeOrHeritageClauseElement)); + } + else { + error(node, ts.Diagnostics.Generic_type_0_requires_1_type_argument_s, typeToString(type, undefined, 1), typeParameters.length); + type = undefined; + } + } + else { + if (node.typeArguments) { + error(node, ts.Diagnostics.Type_0_is_not_generic, typeToString(type)); + type = undefined; + } + } + } + } + } + links.resolvedType = type || unknownType; + } + return links.resolvedType; + } + function getTypeFromTypeQueryNode(node) { + var links = getNodeLinks(node); + if (!links.resolvedType) { + links.resolvedType = getWidenedType(checkExpressionOrQualifiedName(node.exprName)); + } + return links.resolvedType; + } + function getTypeOfGlobalSymbol(symbol, arity) { + function getTypeDeclaration(symbol) { + var declarations = symbol.declarations; + for (var _i = 0; _i < declarations.length; _i++) { + var declaration = declarations[_i]; + switch (declaration.kind) { + case 201: + case 202: + case 204: + return declaration; + } + } + } + if (!symbol) { + return emptyObjectType; + } + var type = getDeclaredTypeOfSymbol(symbol); + if (!(type.flags & 48128)) { + error(getTypeDeclaration(symbol), ts.Diagnostics.Global_type_0_must_be_a_class_or_interface_type, symbol.name); + return emptyObjectType; + } + if ((type.typeParameters ? type.typeParameters.length : 0) !== arity) { + error(getTypeDeclaration(symbol), ts.Diagnostics.Global_type_0_must_have_1_type_parameter_s, symbol.name, arity); + return emptyObjectType; + } + return type; + } + function getGlobalValueSymbol(name) { + return getGlobalSymbol(name, 107455, ts.Diagnostics.Cannot_find_global_value_0); + } + function getGlobalTypeSymbol(name) { + return getGlobalSymbol(name, 793056, ts.Diagnostics.Cannot_find_global_type_0); + } + function getGlobalSymbol(name, meaning, diagnostic) { + return resolveName(undefined, name, meaning, diagnostic, name); + } + function getGlobalType(name, arity) { + if (arity === void 0) { arity = 0; } + return getTypeOfGlobalSymbol(getGlobalTypeSymbol(name), arity); + } + function getGlobalESSymbolConstructorSymbol() { + return globalESSymbolConstructorSymbol || (globalESSymbolConstructorSymbol = getGlobalValueSymbol("Symbol")); + } + function createArrayType(elementType) { + var arrayType = globalArrayType || getDeclaredTypeOfSymbol(globalArraySymbol); + return arrayType !== emptyObjectType ? createTypeReference(arrayType, [elementType]) : emptyObjectType; + } + function getTypeFromArrayTypeNode(node) { + var links = getNodeLinks(node); + if (!links.resolvedType) { + links.resolvedType = createArrayType(getTypeFromTypeNodeOrHeritageClauseElement(node.elementType)); + } + return links.resolvedType; + } + function createTupleType(elementTypes) { + var id = getTypeListId(elementTypes); + var type = tupleTypes[id]; + if (!type) { + type = tupleTypes[id] = createObjectType(8192); + type.elementTypes = elementTypes; + } + return type; + } + function getTypeFromTupleTypeNode(node) { + var links = getNodeLinks(node); + if (!links.resolvedType) { + links.resolvedType = createTupleType(ts.map(node.elementTypes, getTypeFromTypeNodeOrHeritageClauseElement)); + } + return links.resolvedType; + } + function addTypeToSortedSet(sortedSet, type) { + if (type.flags & 16384) { + addTypesToSortedSet(sortedSet, type.types); + } + else { + var i = 0; + var id = type.id; + while (i < sortedSet.length && sortedSet[i].id < id) { + i++; + } + if (i === sortedSet.length || sortedSet[i].id !== id) { + sortedSet.splice(i, 0, type); + } + } + } + function addTypesToSortedSet(sortedTypes, types) { + for (var _i = 0; _i < types.length; _i++) { + var type = types[_i]; + addTypeToSortedSet(sortedTypes, type); + } + } + function isSubtypeOfAny(candidate, types) { + for (var _i = 0; _i < types.length; _i++) { + var type = types[_i]; + if (candidate !== type && isTypeSubtypeOf(candidate, type)) { + return true; + } + } + return false; + } + function removeSubtypes(types) { + var i = types.length; + while (i > 0) { + i--; + if (isSubtypeOfAny(types[i], types)) { + types.splice(i, 1); + } + } + } + function containsAnyType(types) { + for (var _i = 0; _i < types.length; _i++) { + var type = types[_i]; + if (type.flags & 1) { + return true; + } + } + return false; + } + function removeAllButLast(types, typeToRemove) { + var i = types.length; + while (i > 0 && types.length > 1) { + i--; + if (types[i] === typeToRemove) { + types.splice(i, 1); + } + } + } + function getUnionType(types, noSubtypeReduction) { + if (types.length === 0) { + return emptyObjectType; + } + var sortedTypes = []; + addTypesToSortedSet(sortedTypes, types); + if (noSubtypeReduction) { + if (containsAnyType(sortedTypes)) { + return anyType; + } + removeAllButLast(sortedTypes, undefinedType); + removeAllButLast(sortedTypes, nullType); + } + else { + removeSubtypes(sortedTypes); + } + if (sortedTypes.length === 1) { + return sortedTypes[0]; + } + var id = getTypeListId(sortedTypes); + var type = unionTypes[id]; + if (!type) { + type = unionTypes[id] = createObjectType(16384 | getWideningFlagsOfTypes(sortedTypes)); + type.types = sortedTypes; + } + return type; + } + function getTypeFromUnionTypeNode(node) { + var links = getNodeLinks(node); + if (!links.resolvedType) { + links.resolvedType = getUnionType(ts.map(node.types, getTypeFromTypeNodeOrHeritageClauseElement), true); + } + return links.resolvedType; + } + function getTypeFromTypeLiteralOrFunctionOrConstructorTypeNode(node) { + var links = getNodeLinks(node); + if (!links.resolvedType) { + links.resolvedType = createObjectType(32768, node.symbol); + } + return links.resolvedType; + } + function getStringLiteralType(node) { + if (ts.hasProperty(stringLiteralTypes, node.text)) { + return stringLiteralTypes[node.text]; + } + var type = stringLiteralTypes[node.text] = createType(256); + type.text = ts.getTextOfNode(node); + return type; + } + function getTypeFromStringLiteral(node) { + var links = getNodeLinks(node); + if (!links.resolvedType) { + links.resolvedType = getStringLiteralType(node); + } + return links.resolvedType; + } + function getTypeFromTypeNodeOrHeritageClauseElement(node) { + switch (node.kind) { + case 112: + return anyType; + case 121: + return stringType; + case 119: + return numberType; + case 113: + return booleanType; + case 122: + return esSymbolType; + case 99: + return voidType; + case 8: + return getTypeFromStringLiteral(node); + case 141: + return getTypeFromTypeReference(node); + case 177: + return getTypeFromHeritageClauseElement(node); + case 144: + return getTypeFromTypeQueryNode(node); + case 146: + return getTypeFromArrayTypeNode(node); + case 147: + return getTypeFromTupleTypeNode(node); + case 148: + return getTypeFromUnionTypeNode(node); + case 149: + return getTypeFromTypeNodeOrHeritageClauseElement(node.type); + case 142: + case 143: + case 145: + return getTypeFromTypeLiteralOrFunctionOrConstructorTypeNode(node); + case 65: + case 126: + var symbol = getSymbolInfo(node); + return symbol && getDeclaredTypeOfSymbol(symbol); + default: + return unknownType; + } + } + function instantiateList(items, mapper, instantiator) { + if (items && items.length) { + var result = []; + for (var _i = 0; _i < items.length; _i++) { + var v = items[_i]; + result.push(instantiator(v, mapper)); + } + return result; + } + return items; + } + function createUnaryTypeMapper(source, target) { + return function (t) { return t === source ? target : t; }; + } + function createBinaryTypeMapper(source1, target1, source2, target2) { + return function (t) { return t === source1 ? target1 : t === source2 ? target2 : t; }; + } + function createTypeMapper(sources, targets) { + switch (sources.length) { + case 1: return createUnaryTypeMapper(sources[0], targets[0]); + case 2: return createBinaryTypeMapper(sources[0], targets[0], sources[1], targets[1]); + } + return function (t) { + for (var i = 0; i < sources.length; i++) { + if (t === sources[i]) { + return targets[i]; + } + } + return t; + }; + } + function createUnaryTypeEraser(source) { + return function (t) { return t === source ? anyType : t; }; + } + function createBinaryTypeEraser(source1, source2) { + return function (t) { return t === source1 || t === source2 ? anyType : t; }; + } + function createTypeEraser(sources) { + switch (sources.length) { + case 1: return createUnaryTypeEraser(sources[0]); + case 2: return createBinaryTypeEraser(sources[0], sources[1]); + } + return function (t) { + for (var _i = 0; _i < sources.length; _i++) { + var source = sources[_i]; + if (t === source) { + return anyType; + } + } + return t; + }; + } + function createInferenceMapper(context) { + return function (t) { + for (var i = 0; i < context.typeParameters.length; i++) { + if (t === context.typeParameters[i]) { + context.inferences[i].isFixed = true; + return getInferredType(context, i); + } + } + return t; + }; + } + function identityMapper(type) { + return type; + } + function combineTypeMappers(mapper1, mapper2) { + return function (t) { return mapper2(mapper1(t)); }; + } + function instantiateTypeParameter(typeParameter, mapper) { + var result = createType(512); + result.symbol = typeParameter.symbol; + if (typeParameter.constraint) { + result.constraint = instantiateType(typeParameter.constraint, mapper); + } + else { + result.target = typeParameter; + result.mapper = mapper; + } + return result; + } + function instantiateSignature(signature, mapper, eraseTypeParameters) { + var freshTypeParameters; + if (signature.typeParameters && !eraseTypeParameters) { + freshTypeParameters = instantiateList(signature.typeParameters, mapper, instantiateTypeParameter); + mapper = combineTypeMappers(createTypeMapper(signature.typeParameters, freshTypeParameters), mapper); + } + var result = createSignature(signature.declaration, freshTypeParameters, instantiateList(signature.parameters, mapper, instantiateSymbol), signature.resolvedReturnType ? instantiateType(signature.resolvedReturnType, mapper) : undefined, signature.minArgumentCount, signature.hasRestParameter, signature.hasStringLiterals); + result.target = signature; + result.mapper = mapper; + return result; + } + function instantiateSymbol(symbol, mapper) { + if (symbol.flags & 16777216) { + var links = getSymbolLinks(symbol); + symbol = links.target; + mapper = combineTypeMappers(links.mapper, mapper); + } + var result = createSymbol(16777216 | 67108864 | symbol.flags, symbol.name); + result.declarations = symbol.declarations; + result.parent = symbol.parent; + result.target = symbol; + result.mapper = mapper; + if (symbol.valueDeclaration) { + result.valueDeclaration = symbol.valueDeclaration; + } + return result; + } + function instantiateAnonymousType(type, mapper) { + var result = createObjectType(32768, type.symbol); + result.properties = instantiateList(getPropertiesOfObjectType(type), mapper, instantiateSymbol); + result.members = createSymbolTable(result.properties); + result.callSignatures = instantiateList(getSignaturesOfType(type, 0), mapper, instantiateSignature); + result.constructSignatures = instantiateList(getSignaturesOfType(type, 1), mapper, instantiateSignature); + var stringIndexType = getIndexTypeOfType(type, 0); + var numberIndexType = getIndexTypeOfType(type, 1); + if (stringIndexType) + result.stringIndexType = instantiateType(stringIndexType, mapper); + if (numberIndexType) + result.numberIndexType = instantiateType(numberIndexType, mapper); + return result; + } + function instantiateType(type, mapper) { + if (mapper !== identityMapper) { + if (type.flags & 512) { + return mapper(type); + } + if (type.flags & 32768) { + return type.symbol && type.symbol.flags & (16 | 8192 | 2048 | 4096) ? + instantiateAnonymousType(type, mapper) : type; + } + if (type.flags & 4096) { + return createTypeReference(type.target, instantiateList(type.typeArguments, mapper, instantiateType)); + } + if (type.flags & 8192) { + return createTupleType(instantiateList(type.elementTypes, mapper, instantiateType)); + } + if (type.flags & 16384) { + return getUnionType(instantiateList(type.types, mapper, instantiateType), true); + } + } + return type; + } + function isContextSensitive(node) { + ts.Debug.assert(node.kind !== 134 || ts.isObjectLiteralMethod(node)); + switch (node.kind) { + case 162: + case 163: + return isContextSensitiveFunctionLikeDeclaration(node); + case 154: + return ts.forEach(node.properties, isContextSensitive); + case 153: + return ts.forEach(node.elements, isContextSensitive); + case 170: + return isContextSensitive(node.whenTrue) || + isContextSensitive(node.whenFalse); + case 169: + return node.operatorToken.kind === 49 && + (isContextSensitive(node.left) || isContextSensitive(node.right)); + case 224: + return isContextSensitive(node.initializer); + case 134: + case 133: + return isContextSensitiveFunctionLikeDeclaration(node); + case 161: + return isContextSensitive(node.expression); + } + return false; + } + function isContextSensitiveFunctionLikeDeclaration(node) { + return !node.typeParameters && node.parameters.length && !ts.forEach(node.parameters, function (p) { return p.type; }); + } + function getTypeWithoutConstructors(type) { + if (type.flags & 48128) { + var resolved = resolveObjectOrUnionTypeMembers(type); + if (resolved.constructSignatures.length) { + var result = createObjectType(32768, type.symbol); + result.members = resolved.members; + result.properties = resolved.properties; + result.callSignatures = resolved.callSignatures; + result.constructSignatures = emptyArray; + type = result; + } + } + return type; + } + var subtypeRelation = {}; + var assignableRelation = {}; + var identityRelation = {}; + function isTypeIdenticalTo(source, target) { + return checkTypeRelatedTo(source, target, identityRelation, undefined); + } + function compareTypes(source, target) { + return checkTypeRelatedTo(source, target, identityRelation, undefined) ? -1 : 0; + } + function isTypeSubtypeOf(source, target) { + return checkTypeSubtypeOf(source, target, undefined); + } + function isTypeAssignableTo(source, target) { + return checkTypeAssignableTo(source, target, undefined); + } + function checkTypeSubtypeOf(source, target, errorNode, headMessage, containingMessageChain) { + return checkTypeRelatedTo(source, target, subtypeRelation, errorNode, headMessage, containingMessageChain); + } + function checkTypeAssignableTo(source, target, errorNode, headMessage) { + return checkTypeRelatedTo(source, target, assignableRelation, errorNode, headMessage); + } + function isSignatureAssignableTo(source, target) { + var sourceType = getOrCreateTypeFromSignature(source); + var targetType = getOrCreateTypeFromSignature(target); + return checkTypeRelatedTo(sourceType, targetType, assignableRelation, undefined); + } + function checkTypeRelatedTo(source, target, relation, errorNode, headMessage, containingMessageChain) { + var errorInfo; + var sourceStack; + var targetStack; + var maybeStack; + var expandingFlags; + var depth = 0; + var overflow = false; + var elaborateErrors = false; + ts.Debug.assert(relation !== identityRelation || !errorNode, "no error reporting in identity checking"); + var result = isRelatedTo(source, target, errorNode !== undefined, headMessage); + if (overflow) { + error(errorNode, ts.Diagnostics.Excessive_stack_depth_comparing_types_0_and_1, typeToString(source), typeToString(target)); + } + else if (errorInfo) { + if (errorInfo.next === undefined) { + errorInfo = undefined; + elaborateErrors = true; + isRelatedTo(source, target, errorNode !== undefined, headMessage); + } + if (containingMessageChain) { + errorInfo = ts.concatenateDiagnosticMessageChains(containingMessageChain, errorInfo); + } + diagnostics.add(ts.createDiagnosticForNodeFromMessageChain(errorNode, errorInfo)); + } + return result !== 0; + function reportError(message, arg0, arg1, arg2) { + errorInfo = ts.chainDiagnosticMessages(errorInfo, message, arg0, arg1, arg2); + } + function isRelatedTo(source, target, reportErrors, headMessage) { + var result; + if (source === target) + return -1; + if (relation !== identityRelation) { + if (target.flags & 1) + return -1; + if (source === undefinedType) + return -1; + if (source === nullType && target !== undefinedType) + return -1; + if (source.flags & 128 && target === numberType) + return -1; + if (source.flags & 256 && target === stringType) + return -1; + if (relation === assignableRelation) { + if (source.flags & 1) + return -1; + if (source === numberType && target.flags & 128) + return -1; + } + } + if (source.flags & 16384 || target.flags & 16384) { + if (relation === identityRelation) { + if (source.flags & 16384 && target.flags & 16384) { + if (result = unionTypeRelatedToUnionType(source, target)) { + if (result &= unionTypeRelatedToUnionType(target, source)) { + return result; + } + } + } + else if (source.flags & 16384) { + if (result = unionTypeRelatedToType(source, target, reportErrors)) { + return result; + } + } + else { + if (result = unionTypeRelatedToType(target, source, reportErrors)) { + return result; + } + } + } + else { + if (source.flags & 16384) { + if (result = unionTypeRelatedToType(source, target, reportErrors)) { + return result; + } + } + else { + if (result = typeRelatedToUnionType(source, target, reportErrors)) { + return result; + } + } + } + } + else if (source.flags & 512 && target.flags & 512) { + if (result = typeParameterRelatedTo(source, target, reportErrors)) { + return result; + } + } + else { + var saveErrorInfo = errorInfo; + if (source.flags & 4096 && target.flags & 4096 && source.target === target.target) { + if (result = typesRelatedTo(source.typeArguments, target.typeArguments, reportErrors)) { + return result; + } + } + var reportStructuralErrors = reportErrors && errorInfo === saveErrorInfo; + var sourceOrApparentType = relation === identityRelation ? source : getApparentType(source); + if (sourceOrApparentType.flags & 48128 && target.flags & 48128 && + (result = objectTypeRelatedTo(sourceOrApparentType, target, reportStructuralErrors))) { + errorInfo = saveErrorInfo; + return result; + } + } + if (reportErrors) { + headMessage = headMessage || ts.Diagnostics.Type_0_is_not_assignable_to_type_1; + var sourceType = typeToString(source); + var targetType = typeToString(target); + if (sourceType === targetType) { + sourceType = typeToString(source, undefined, 128); + targetType = typeToString(target, undefined, 128); + } + reportError(headMessage, sourceType, targetType); + } + return 0; + } + function unionTypeRelatedToUnionType(source, target) { + var result = -1; + var sourceTypes = source.types; + for (var _i = 0; _i < sourceTypes.length; _i++) { + var sourceType = sourceTypes[_i]; + var related = typeRelatedToUnionType(sourceType, target, false); + if (!related) { + return 0; + } + result &= related; + } + return result; + } + function typeRelatedToUnionType(source, target, reportErrors) { + var targetTypes = target.types; + for (var i = 0, len = targetTypes.length; i < len; i++) { + var related = isRelatedTo(source, targetTypes[i], reportErrors && i === len - 1); + if (related) { + return related; + } + } + return 0; + } + function unionTypeRelatedToType(source, target, reportErrors) { + var result = -1; + var sourceTypes = source.types; + for (var _i = 0; _i < sourceTypes.length; _i++) { + var sourceType = sourceTypes[_i]; + var related = isRelatedTo(sourceType, target, reportErrors); + if (!related) { + return 0; + } + result &= related; + } + return result; + } + function typesRelatedTo(sources, targets, reportErrors) { + var result = -1; + for (var i = 0, len = sources.length; i < len; i++) { + var related = isRelatedTo(sources[i], targets[i], reportErrors); + if (!related) { + return 0; + } + result &= related; + } + return result; + } + function typeParameterRelatedTo(source, target, reportErrors) { + if (relation === identityRelation) { + if (source.symbol.name !== target.symbol.name) { + return 0; + } + if (source.constraint === target.constraint) { + return -1; + } + if (source.constraint === noConstraintType || target.constraint === noConstraintType) { + return 0; + } + return isRelatedTo(source.constraint, target.constraint, reportErrors); + } + else { + while (true) { + var constraint = getConstraintOfTypeParameter(source); + if (constraint === target) + return -1; + if (!(constraint && constraint.flags & 512)) + break; + source = constraint; + } + return 0; + } + } + function objectTypeRelatedTo(source, target, reportErrors) { + if (overflow) { + return 0; + } + var id = relation !== identityRelation || source.id < target.id ? source.id + "," + target.id : target.id + "," + source.id; + var related = relation[id]; + if (related !== undefined) { + if (!elaborateErrors || (related === 3)) { + return related === 1 ? -1 : 0; + } + } + if (depth > 0) { + for (var i = 0; i < depth; i++) { + if (maybeStack[i][id]) { + return 1; + } + } + if (depth === 100) { + overflow = true; + return 0; + } + } + else { + sourceStack = []; + targetStack = []; + maybeStack = []; + expandingFlags = 0; + } + sourceStack[depth] = source; + targetStack[depth] = target; + maybeStack[depth] = {}; + maybeStack[depth][id] = 1; + depth++; + var saveExpandingFlags = expandingFlags; + if (!(expandingFlags & 1) && isDeeplyNestedGeneric(source, sourceStack)) + expandingFlags |= 1; + if (!(expandingFlags & 2) && isDeeplyNestedGeneric(target, targetStack)) + expandingFlags |= 2; + var result; + if (expandingFlags === 3) { + result = 1; + } + else { + result = propertiesRelatedTo(source, target, reportErrors); + if (result) { + result &= signaturesRelatedTo(source, target, 0, reportErrors); + if (result) { + result &= signaturesRelatedTo(source, target, 1, reportErrors); + if (result) { + result &= stringIndexTypesRelatedTo(source, target, reportErrors); + if (result) { + result &= numberIndexTypesRelatedTo(source, target, reportErrors); + } + } + } + } + } + expandingFlags = saveExpandingFlags; + depth--; + if (result) { + var maybeCache = maybeStack[depth]; + var destinationCache = (result === -1 || depth === 0) ? relation : maybeStack[depth - 1]; + ts.copyMap(maybeCache, destinationCache); + } + else { + relation[id] = reportErrors ? 3 : 2; + } + return result; + } + function isDeeplyNestedGeneric(type, stack) { + if (type.flags & 4096 && depth >= 10) { + var target_1 = type.target; + var count = 0; + for (var i = 0; i < depth; i++) { + var t = stack[i]; + if (t.flags & 4096 && t.target === target_1) { + count++; + if (count >= 10) + return true; + } + } + } + return false; + } + function propertiesRelatedTo(source, target, reportErrors) { + if (relation === identityRelation) { + return propertiesIdenticalTo(source, target); + } + var result = -1; + var properties = getPropertiesOfObjectType(target); + var requireOptionalProperties = relation === subtypeRelation && !(source.flags & 131072); + for (var _i = 0; _i < properties.length; _i++) { + var targetProp = properties[_i]; + var sourceProp = getPropertyOfType(source, targetProp.name); + if (sourceProp !== targetProp) { + if (!sourceProp) { + if (!(targetProp.flags & 536870912) || requireOptionalProperties) { + if (reportErrors) { + reportError(ts.Diagnostics.Property_0_is_missing_in_type_1, symbolToString(targetProp), typeToString(source)); + } + return 0; + } + } + else if (!(targetProp.flags & 134217728)) { + var sourceFlags = getDeclarationFlagsFromSymbol(sourceProp); + var targetFlags = getDeclarationFlagsFromSymbol(targetProp); + if (sourceFlags & 32 || targetFlags & 32) { + if (sourceProp.valueDeclaration !== targetProp.valueDeclaration) { + if (reportErrors) { + if (sourceFlags & 32 && targetFlags & 32) { + reportError(ts.Diagnostics.Types_have_separate_declarations_of_a_private_property_0, symbolToString(targetProp)); + } + else { + reportError(ts.Diagnostics.Property_0_is_private_in_type_1_but_not_in_type_2, symbolToString(targetProp), typeToString(sourceFlags & 32 ? source : target), typeToString(sourceFlags & 32 ? target : source)); + } + } + return 0; + } + } + else if (targetFlags & 64) { + var sourceDeclaredInClass = sourceProp.parent && sourceProp.parent.flags & 32; + var sourceClass = sourceDeclaredInClass ? getDeclaredTypeOfSymbol(sourceProp.parent) : undefined; + var targetClass = getDeclaredTypeOfSymbol(targetProp.parent); + if (!sourceClass || !hasBaseType(sourceClass, targetClass)) { + if (reportErrors) { + reportError(ts.Diagnostics.Property_0_is_protected_but_type_1_is_not_a_class_derived_from_2, symbolToString(targetProp), typeToString(sourceClass || source), typeToString(targetClass)); + } + return 0; + } + } + else if (sourceFlags & 64) { + if (reportErrors) { + reportError(ts.Diagnostics.Property_0_is_protected_in_type_1_but_public_in_type_2, symbolToString(targetProp), typeToString(source), typeToString(target)); + } + return 0; + } + var related = isRelatedTo(getTypeOfSymbol(sourceProp), getTypeOfSymbol(targetProp), reportErrors); + if (!related) { + if (reportErrors) { + reportError(ts.Diagnostics.Types_of_property_0_are_incompatible, symbolToString(targetProp)); + } + return 0; + } + result &= related; + if (sourceProp.flags & 536870912 && !(targetProp.flags & 536870912)) { + if (reportErrors) { + reportError(ts.Diagnostics.Property_0_is_optional_in_type_1_but_required_in_type_2, symbolToString(targetProp), typeToString(source), typeToString(target)); + } + return 0; + } + } + } + } + return result; + } + function propertiesIdenticalTo(source, target) { + var sourceProperties = getPropertiesOfObjectType(source); + var targetProperties = getPropertiesOfObjectType(target); + if (sourceProperties.length !== targetProperties.length) { + return 0; + } + var result = -1; + for (var _i = 0; _i < sourceProperties.length; _i++) { + var sourceProp = sourceProperties[_i]; + var targetProp = getPropertyOfObjectType(target, sourceProp.name); + if (!targetProp) { + return 0; + } + var related = compareProperties(sourceProp, targetProp, isRelatedTo); + if (!related) { + return 0; + } + result &= related; + } + return result; + } + function signaturesRelatedTo(source, target, kind, reportErrors) { + if (relation === identityRelation) { + return signaturesIdenticalTo(source, target, kind); + } + if (target === anyFunctionType || source === anyFunctionType) { + return -1; + } + var sourceSignatures = getSignaturesOfType(source, kind); + var targetSignatures = getSignaturesOfType(target, kind); + var result = -1; + var saveErrorInfo = errorInfo; + outer: for (var _i = 0; _i < targetSignatures.length; _i++) { + var t = targetSignatures[_i]; + if (!t.hasStringLiterals || target.flags & 65536) { + var localErrors = reportErrors; + for (var _a = 0; _a < sourceSignatures.length; _a++) { + var s = sourceSignatures[_a]; + if (!s.hasStringLiterals || source.flags & 65536) { + var related = signatureRelatedTo(s, t, localErrors); + if (related) { + result &= related; + errorInfo = saveErrorInfo; + continue outer; + } + localErrors = false; + } + } + return 0; + } + } + return result; + } + function signatureRelatedTo(source, target, reportErrors) { + if (source === target) { + return -1; + } + if (!target.hasRestParameter && source.minArgumentCount > target.parameters.length) { + return 0; + } + var sourceMax = source.parameters.length; + var targetMax = target.parameters.length; + var checkCount; + if (source.hasRestParameter && target.hasRestParameter) { + checkCount = sourceMax > targetMax ? sourceMax : targetMax; + sourceMax--; + targetMax--; + } + else if (source.hasRestParameter) { + sourceMax--; + checkCount = targetMax; + } + else if (target.hasRestParameter) { + targetMax--; + checkCount = sourceMax; + } + else { + checkCount = sourceMax < targetMax ? sourceMax : targetMax; + } + source = getErasedSignature(source); + target = getErasedSignature(target); + var result = -1; + for (var i = 0; i < checkCount; i++) { + var s_1 = i < sourceMax ? getTypeOfSymbol(source.parameters[i]) : getRestTypeOfSignature(source); + var t_1 = i < targetMax ? getTypeOfSymbol(target.parameters[i]) : getRestTypeOfSignature(target); + var saveErrorInfo = errorInfo; + var related = isRelatedTo(s_1, t_1, reportErrors); + if (!related) { + related = isRelatedTo(t_1, s_1, false); + if (!related) { + if (reportErrors) { + reportError(ts.Diagnostics.Types_of_parameters_0_and_1_are_incompatible, source.parameters[i < sourceMax ? i : sourceMax].name, target.parameters[i < targetMax ? i : targetMax].name); + } + return 0; + } + errorInfo = saveErrorInfo; + } + result &= related; + } + var t = getReturnTypeOfSignature(target); + if (t === voidType) + return result; + var s = getReturnTypeOfSignature(source); + return result & isRelatedTo(s, t, reportErrors); + } + function signaturesIdenticalTo(source, target, kind) { + var sourceSignatures = getSignaturesOfType(source, kind); + var targetSignatures = getSignaturesOfType(target, kind); + if (sourceSignatures.length !== targetSignatures.length) { + return 0; + } + var result = -1; + for (var i = 0, len = sourceSignatures.length; i < len; ++i) { + var related = compareSignatures(sourceSignatures[i], targetSignatures[i], true, isRelatedTo); + if (!related) { + return 0; + } + result &= related; + } + return result; + } + function stringIndexTypesRelatedTo(source, target, reportErrors) { + if (relation === identityRelation) { + return indexTypesIdenticalTo(0, source, target); + } + var targetType = getIndexTypeOfType(target, 0); + if (targetType) { + var sourceType = getIndexTypeOfType(source, 0); + if (!sourceType) { + if (reportErrors) { + reportError(ts.Diagnostics.Index_signature_is_missing_in_type_0, typeToString(source)); + } + return 0; + } + var related = isRelatedTo(sourceType, targetType, reportErrors); + if (!related) { + if (reportErrors) { + reportError(ts.Diagnostics.Index_signatures_are_incompatible); + } + return 0; + } + return related; + } + return -1; + } + function numberIndexTypesRelatedTo(source, target, reportErrors) { + if (relation === identityRelation) { + return indexTypesIdenticalTo(1, source, target); + } + var targetType = getIndexTypeOfType(target, 1); + if (targetType) { + var sourceStringType = getIndexTypeOfType(source, 0); + var sourceNumberType = getIndexTypeOfType(source, 1); + if (!(sourceStringType || sourceNumberType)) { + if (reportErrors) { + reportError(ts.Diagnostics.Index_signature_is_missing_in_type_0, typeToString(source)); + } + return 0; + } + var related; + if (sourceStringType && sourceNumberType) { + related = isRelatedTo(sourceStringType, targetType, false) || isRelatedTo(sourceNumberType, targetType, reportErrors); + } + else { + related = isRelatedTo(sourceStringType || sourceNumberType, targetType, reportErrors); + } + if (!related) { + if (reportErrors) { + reportError(ts.Diagnostics.Index_signatures_are_incompatible); + } + return 0; + } + return related; + } + return -1; + } + function indexTypesIdenticalTo(indexKind, source, target) { + var targetType = getIndexTypeOfType(target, indexKind); + var sourceType = getIndexTypeOfType(source, indexKind); + if (!sourceType && !targetType) { + return -1; + } + if (sourceType && targetType) { + return isRelatedTo(sourceType, targetType); + } + return 0; + } + } + function isPropertyIdenticalTo(sourceProp, targetProp) { + return compareProperties(sourceProp, targetProp, compareTypes) !== 0; + } + function compareProperties(sourceProp, targetProp, compareTypes) { + if (sourceProp === targetProp) { + return -1; + } + var sourcePropAccessibility = getDeclarationFlagsFromSymbol(sourceProp) & (32 | 64); + var targetPropAccessibility = getDeclarationFlagsFromSymbol(targetProp) & (32 | 64); + if (sourcePropAccessibility !== targetPropAccessibility) { + return 0; + } + if (sourcePropAccessibility) { + if (getTargetSymbol(sourceProp) !== getTargetSymbol(targetProp)) { + return 0; + } + } + else { + if ((sourceProp.flags & 536870912) !== (targetProp.flags & 536870912)) { + return 0; + } + } + return compareTypes(getTypeOfSymbol(sourceProp), getTypeOfSymbol(targetProp)); + } + function compareSignatures(source, target, compareReturnTypes, compareTypes) { + if (source === target) { + return -1; + } + if (source.parameters.length !== target.parameters.length || + source.minArgumentCount !== target.minArgumentCount || + source.hasRestParameter !== target.hasRestParameter) { + return 0; + } + var result = -1; + if (source.typeParameters && target.typeParameters) { + if (source.typeParameters.length !== target.typeParameters.length) { + return 0; + } + for (var i = 0, len = source.typeParameters.length; i < len; ++i) { + var related = compareTypes(source.typeParameters[i], target.typeParameters[i]); + if (!related) { + return 0; + } + result &= related; + } + } + else if (source.typeParameters || target.typeParameters) { + return 0; + } + source = getErasedSignature(source); + target = getErasedSignature(target); + for (var i = 0, len = source.parameters.length; i < len; i++) { + var s = source.hasRestParameter && i === len - 1 ? getRestTypeOfSignature(source) : getTypeOfSymbol(source.parameters[i]); + var t = target.hasRestParameter && i === len - 1 ? getRestTypeOfSignature(target) : getTypeOfSymbol(target.parameters[i]); + var related = compareTypes(s, t); + if (!related) { + return 0; + } + result &= related; + } + if (compareReturnTypes) { + result &= compareTypes(getReturnTypeOfSignature(source), getReturnTypeOfSignature(target)); + } + return result; + } + function isSupertypeOfEach(candidate, types) { + for (var _i = 0; _i < types.length; _i++) { + var type = types[_i]; + if (candidate !== type && !isTypeSubtypeOf(type, candidate)) + return false; + } + return true; + } + function getCommonSupertype(types) { + return ts.forEach(types, function (t) { return isSupertypeOfEach(t, types) ? t : undefined; }); + } + function reportNoCommonSupertypeError(types, errorLocation, errorMessageChainHead) { + var bestSupertype; + var bestSupertypeDownfallType; + var bestSupertypeScore = 0; + for (var i = 0; i < types.length; i++) { + var score = 0; + var downfallType = undefined; + for (var j = 0; j < types.length; j++) { + if (isTypeSubtypeOf(types[j], types[i])) { + score++; + } + else if (!downfallType) { + downfallType = types[j]; + } + } + ts.Debug.assert(!!downfallType, "If there is no common supertype, each type should have a downfallType"); + if (score > bestSupertypeScore) { + bestSupertype = types[i]; + bestSupertypeDownfallType = downfallType; + bestSupertypeScore = score; + } + if (bestSupertypeScore === types.length - 1) { + break; + } + } + checkTypeSubtypeOf(bestSupertypeDownfallType, bestSupertype, errorLocation, ts.Diagnostics.Type_argument_candidate_1_is_not_a_valid_type_argument_because_it_is_not_a_supertype_of_candidate_0, errorMessageChainHead); + } + function isArrayType(type) { + return type.flags & 4096 && type.target === globalArrayType; + } + function isArrayLikeType(type) { + return !(type.flags & (32 | 64)) && isTypeAssignableTo(type, anyArrayType); + } + function isTupleLikeType(type) { + return !!getPropertyOfType(type, "0"); + } + function isTupleType(type) { + return (type.flags & 8192) && !!type.elementTypes; + } + function getWidenedTypeOfObjectLiteral(type) { + var properties = getPropertiesOfObjectType(type); + var members = {}; + ts.forEach(properties, function (p) { + var propType = getTypeOfSymbol(p); + var widenedType = getWidenedType(propType); + if (propType !== widenedType) { + var symbol = createSymbol(p.flags | 67108864, p.name); + symbol.declarations = p.declarations; + symbol.parent = p.parent; + symbol.type = widenedType; + symbol.target = p; + if (p.valueDeclaration) + symbol.valueDeclaration = p.valueDeclaration; + p = symbol; + } + members[p.name] = p; + }); + var stringIndexType = getIndexTypeOfType(type, 0); + var numberIndexType = getIndexTypeOfType(type, 1); + if (stringIndexType) + stringIndexType = getWidenedType(stringIndexType); + if (numberIndexType) + numberIndexType = getWidenedType(numberIndexType); + return createAnonymousType(type.symbol, members, emptyArray, emptyArray, stringIndexType, numberIndexType); + } + function getWidenedType(type) { + if (type.flags & 786432) { + if (type.flags & (32 | 64)) { + return anyType; + } + if (type.flags & 131072) { + return getWidenedTypeOfObjectLiteral(type); + } + if (type.flags & 16384) { + return getUnionType(ts.map(type.types, getWidenedType)); + } + if (isArrayType(type)) { + return createArrayType(getWidenedType(type.typeArguments[0])); + } + } + return type; + } + function reportWideningErrorsInType(type) { + if (type.flags & 16384) { + var errorReported = false; + ts.forEach(type.types, function (t) { + if (reportWideningErrorsInType(t)) { + errorReported = true; + } + }); + return errorReported; + } + if (isArrayType(type)) { + return reportWideningErrorsInType(type.typeArguments[0]); + } + if (type.flags & 131072) { + var errorReported = false; + ts.forEach(getPropertiesOfObjectType(type), function (p) { + var t = getTypeOfSymbol(p); + if (t.flags & 262144) { + if (!reportWideningErrorsInType(t)) { + error(p.valueDeclaration, ts.Diagnostics.Object_literal_s_property_0_implicitly_has_an_1_type, p.name, typeToString(getWidenedType(t))); + } + errorReported = true; + } + }); + return errorReported; + } + return false; + } + function reportImplicitAnyError(declaration, type) { + var typeAsString = typeToString(getWidenedType(type)); + var diagnostic; + switch (declaration.kind) { + case 132: + case 131: + diagnostic = ts.Diagnostics.Member_0_implicitly_has_an_1_type; + break; + case 129: + diagnostic = declaration.dotDotDotToken ? + ts.Diagnostics.Rest_parameter_0_implicitly_has_an_any_type : + ts.Diagnostics.Parameter_0_implicitly_has_an_1_type; + break; + case 200: + case 134: + case 133: + case 136: + case 137: + case 162: + case 163: + if (!declaration.name) { + error(declaration, ts.Diagnostics.Function_expression_which_lacks_return_type_annotation_implicitly_has_an_0_return_type, typeAsString); + return; + } + diagnostic = ts.Diagnostics._0_which_lacks_return_type_annotation_implicitly_has_an_1_return_type; + break; + default: + diagnostic = ts.Diagnostics.Variable_0_implicitly_has_an_1_type; + } + error(declaration, diagnostic, ts.declarationNameToString(declaration.name), typeAsString); + } + function reportErrorsFromWidening(declaration, type) { + if (produceDiagnostics && compilerOptions.noImplicitAny && type.flags & 262144) { + if (!reportWideningErrorsInType(type)) { + reportImplicitAnyError(declaration, type); + } + } + } + function forEachMatchingParameterType(source, target, callback) { + var sourceMax = source.parameters.length; + var targetMax = target.parameters.length; + var count; + if (source.hasRestParameter && target.hasRestParameter) { + count = sourceMax > targetMax ? sourceMax : targetMax; + sourceMax--; + targetMax--; + } + else if (source.hasRestParameter) { + sourceMax--; + count = targetMax; + } + else if (target.hasRestParameter) { + targetMax--; + count = sourceMax; + } + else { + count = sourceMax < targetMax ? sourceMax : targetMax; + } + for (var i = 0; i < count; i++) { + var s = i < sourceMax ? getTypeOfSymbol(source.parameters[i]) : getRestTypeOfSignature(source); + var t = i < targetMax ? getTypeOfSymbol(target.parameters[i]) : getRestTypeOfSignature(target); + callback(s, t); + } + } + function createInferenceContext(typeParameters, inferUnionTypes) { + var inferences = []; + for (var _i = 0; _i < typeParameters.length; _i++) { + var unused = typeParameters[_i]; + inferences.push({ primary: undefined, secondary: undefined, isFixed: false }); + } + return { + typeParameters: typeParameters, + inferUnionTypes: inferUnionTypes, + inferences: inferences, + inferredTypes: new Array(typeParameters.length) + }; + } + function inferTypes(context, source, target) { + var sourceStack; + var targetStack; + var depth = 0; + var inferiority = 0; + inferFromTypes(source, target); + function isInProcess(source, target) { + for (var i = 0; i < depth; i++) { + if (source === sourceStack[i] && target === targetStack[i]) { + return true; + } + } + return false; + } + function isWithinDepthLimit(type, stack) { + if (depth >= 5) { + var target_2 = type.target; + var count = 0; + for (var i = 0; i < depth; i++) { + var t = stack[i]; + if (t.flags & 4096 && t.target === target_2) { + count++; + } + } + return count < 5; + } + return true; + } + function inferFromTypes(source, target) { + if (source === anyFunctionType) { + return; + } + if (target.flags & 512) { + var typeParameters = context.typeParameters; + for (var i = 0; i < typeParameters.length; i++) { + if (target === typeParameters[i]) { + var inferences = context.inferences[i]; + if (!inferences.isFixed) { + var candidates = inferiority ? + inferences.secondary || (inferences.secondary = []) : + inferences.primary || (inferences.primary = []); + if (!ts.contains(candidates, source)) { + candidates.push(source); + } + } + return; + } + } + } + else if (source.flags & 4096 && target.flags & 4096 && source.target === target.target) { + var sourceTypes = source.typeArguments; + var targetTypes = target.typeArguments; + for (var i = 0; i < sourceTypes.length; i++) { + inferFromTypes(sourceTypes[i], targetTypes[i]); + } + } + else if (target.flags & 16384) { + var targetTypes = target.types; + var typeParameterCount = 0; + var typeParameter; + for (var _i = 0; _i < targetTypes.length; _i++) { + var t = targetTypes[_i]; + if (t.flags & 512 && ts.contains(context.typeParameters, t)) { + typeParameter = t; + typeParameterCount++; + } + else { + inferFromTypes(source, t); + } + } + if (typeParameterCount === 1) { + inferiority++; + inferFromTypes(source, typeParameter); + inferiority--; + } + } + else if (source.flags & 16384) { + var sourceTypes = source.types; + for (var _a = 0; _a < sourceTypes.length; _a++) { + var sourceType = sourceTypes[_a]; + inferFromTypes(sourceType, target); + } + } + else if (source.flags & 48128 && (target.flags & (4096 | 8192) || + (target.flags & 32768) && target.symbol && target.symbol.flags & (8192 | 2048))) { + if (!isInProcess(source, target) && isWithinDepthLimit(source, sourceStack) && isWithinDepthLimit(target, targetStack)) { + if (depth === 0) { + sourceStack = []; + targetStack = []; + } + sourceStack[depth] = source; + targetStack[depth] = target; + depth++; + inferFromProperties(source, target); + inferFromSignatures(source, target, 0); + inferFromSignatures(source, target, 1); + inferFromIndexTypes(source, target, 0, 0); + inferFromIndexTypes(source, target, 1, 1); + inferFromIndexTypes(source, target, 0, 1); + depth--; + } + } + } + function inferFromProperties(source, target) { + var properties = getPropertiesOfObjectType(target); + for (var _i = 0; _i < properties.length; _i++) { + var targetProp = properties[_i]; + var sourceProp = getPropertyOfObjectType(source, targetProp.name); + if (sourceProp) { + inferFromTypes(getTypeOfSymbol(sourceProp), getTypeOfSymbol(targetProp)); + } + } + } + function inferFromSignatures(source, target, kind) { + var sourceSignatures = getSignaturesOfType(source, kind); + var targetSignatures = getSignaturesOfType(target, kind); + var sourceLen = sourceSignatures.length; + var targetLen = targetSignatures.length; + var len = sourceLen < targetLen ? sourceLen : targetLen; + for (var i = 0; i < len; i++) { + inferFromSignature(getErasedSignature(sourceSignatures[sourceLen - len + i]), getErasedSignature(targetSignatures[targetLen - len + i])); + } + } + function inferFromSignature(source, target) { + forEachMatchingParameterType(source, target, inferFromTypes); + inferFromTypes(getReturnTypeOfSignature(source), getReturnTypeOfSignature(target)); + } + function inferFromIndexTypes(source, target, sourceKind, targetKind) { + var targetIndexType = getIndexTypeOfType(target, targetKind); + if (targetIndexType) { + var sourceIndexType = getIndexTypeOfType(source, sourceKind); + if (sourceIndexType) { + inferFromTypes(sourceIndexType, targetIndexType); + } + } + } + } + function getInferenceCandidates(context, index) { + var inferences = context.inferences[index]; + return inferences.primary || inferences.secondary || emptyArray; + } + function getInferredType(context, index) { + var inferredType = context.inferredTypes[index]; + var inferenceSucceeded; + if (!inferredType) { + var inferences = getInferenceCandidates(context, index); + if (inferences.length) { + var unionOrSuperType = context.inferUnionTypes ? getUnionType(inferences) : getCommonSupertype(inferences); + inferredType = unionOrSuperType ? getWidenedType(unionOrSuperType) : unknownType; + inferenceSucceeded = !!unionOrSuperType; + } + else { + inferredType = emptyObjectType; + inferenceSucceeded = true; + } + if (inferenceSucceeded) { + var constraint = getConstraintOfTypeParameter(context.typeParameters[index]); + inferredType = constraint && !isTypeAssignableTo(inferredType, constraint) ? constraint : inferredType; + } + else if (context.failedTypeParameterIndex === undefined || context.failedTypeParameterIndex > index) { + context.failedTypeParameterIndex = index; + } + context.inferredTypes[index] = inferredType; + } + return inferredType; + } + function getInferredTypes(context) { + for (var i = 0; i < context.inferredTypes.length; i++) { + getInferredType(context, i); + } + return context.inferredTypes; + } + function hasAncestor(node, kind) { + return ts.getAncestor(node, kind) !== undefined; + } + function getResolvedSymbol(node) { + var links = getNodeLinks(node); + if (!links.resolvedSymbol) { + links.resolvedSymbol = (!ts.nodeIsMissing(node) && resolveName(node, node.text, 107455 | 1048576, ts.Diagnostics.Cannot_find_name_0, node)) || unknownSymbol; + } + return links.resolvedSymbol; + } + function isInTypeQuery(node) { + while (node) { + switch (node.kind) { + case 144: + return true; + case 65: + case 126: + node = node.parent; + continue; + default: + return false; + } + } + ts.Debug.fail("should not get here"); + } + function removeTypesFromUnionType(type, typeKind, isOfTypeKind, allowEmptyUnionResult) { + if (type.flags & 16384) { + var types = type.types; + if (ts.forEach(types, function (t) { return !!(t.flags & typeKind) === isOfTypeKind; })) { + var narrowedType = getUnionType(ts.filter(types, function (t) { return !(t.flags & typeKind) === isOfTypeKind; })); + if (allowEmptyUnionResult || narrowedType !== emptyObjectType) { + return narrowedType; + } + } + } + else if (allowEmptyUnionResult && !!(type.flags & typeKind) === isOfTypeKind) { + return getUnionType(emptyArray); + } + return type; + } + function hasInitializer(node) { + return !!(node.initializer || ts.isBindingPattern(node.parent) && hasInitializer(node.parent.parent)); + } + function isVariableAssignedWithin(symbol, node) { + var links = getNodeLinks(node); + if (links.assignmentChecks) { + var cachedResult = links.assignmentChecks[symbol.id]; + if (cachedResult !== undefined) { + return cachedResult; + } + } + else { + links.assignmentChecks = {}; + } + return links.assignmentChecks[symbol.id] = isAssignedIn(node); + function isAssignedInBinaryExpression(node) { + if (node.operatorToken.kind >= 53 && node.operatorToken.kind <= 64) { + var n = node.left; + while (n.kind === 161) { + n = n.expression; + } + if (n.kind === 65 && getResolvedSymbol(n) === symbol) { + return true; + } + } + return ts.forEachChild(node, isAssignedIn); + } + function isAssignedInVariableDeclaration(node) { + if (!ts.isBindingPattern(node.name) && getSymbolOfNode(node) === symbol && hasInitializer(node)) { + return true; + } + return ts.forEachChild(node, isAssignedIn); + } + function isAssignedIn(node) { + switch (node.kind) { + case 169: + return isAssignedInBinaryExpression(node); + case 198: + case 152: + return isAssignedInVariableDeclaration(node); + case 150: + case 151: + case 153: + case 154: + case 155: + case 156: + case 157: + case 158: + case 160: + case 161: + case 167: + case 164: + case 165: + case 166: + case 168: + case 170: + case 173: + case 179: + case 180: + case 182: + case 183: + case 184: + case 185: + case 186: + case 187: + case 188: + case 191: + case 192: + case 193: + case 220: + case 221: + case 194: + case 195: + case 196: + case 223: + return ts.forEachChild(node, isAssignedIn); + } + return false; + } + } + function resolveLocation(node) { + var containerNodes = []; + for (var parent_3 = node.parent; parent_3; parent_3 = parent_3.parent) { + if ((ts.isExpression(parent_3) || ts.isObjectLiteralMethod(node)) && + isContextSensitive(parent_3)) { + containerNodes.unshift(parent_3); + } + } + ts.forEach(containerNodes, function (node) { getTypeOfNode(node); }); + } + function getSymbolAtLocation(node) { + resolveLocation(node); + return getSymbolInfo(node); + } + function getTypeAtLocation(node) { + resolveLocation(node); + return getTypeOfNode(node); + } + function getTypeOfSymbolAtLocation(symbol, node) { + resolveLocation(node); + return getNarrowedTypeOfSymbol(symbol, node); + } + function getNarrowedTypeOfSymbol(symbol, node) { + var type = getTypeOfSymbol(symbol); + if (node && symbol.flags & 3 && type.flags & (1 | 48128 | 16384 | 512)) { + loop: while (node.parent) { + var child = node; + node = node.parent; + var narrowedType = type; + switch (node.kind) { + case 183: + if (child !== node.expression) { + narrowedType = narrowType(type, node.expression, child === node.thenStatement); + } + break; + case 170: + if (child !== node.condition) { + narrowedType = narrowType(type, node.condition, child === node.whenTrue); + } + break; + case 169: + if (child === node.right) { + if (node.operatorToken.kind === 48) { + narrowedType = narrowType(type, node.left, true); + } + else if (node.operatorToken.kind === 49) { + narrowedType = narrowType(type, node.left, false); + } + } + break; + case 227: + case 205: + case 200: + case 134: + case 133: + case 136: + case 137: + case 135: + break loop; + } + if (narrowedType !== type) { + if (isVariableAssignedWithin(symbol, node)) { + break; + } + type = narrowedType; + } + } + } + return type; + function narrowTypeByEquality(type, expr, assumeTrue) { + if (expr.left.kind !== 165 || expr.right.kind !== 8) { + return type; + } + var left = expr.left; + var right = expr.right; + if (left.expression.kind !== 65 || getResolvedSymbol(left.expression) !== symbol) { + return type; + } + var typeInfo = primitiveTypeInfo[right.text]; + if (expr.operatorToken.kind === 31) { + assumeTrue = !assumeTrue; + } + if (assumeTrue) { + if (!typeInfo) { + return removeTypesFromUnionType(type, 258 | 132 | 8 | 1048576, true, false); + } + if (isTypeSubtypeOf(typeInfo.type, type)) { + return typeInfo.type; + } + return removeTypesFromUnionType(type, typeInfo.flags, false, false); + } + else { + if (typeInfo) { + return removeTypesFromUnionType(type, typeInfo.flags, true, false); + } + return type; + } + } + function narrowTypeByAnd(type, expr, assumeTrue) { + if (assumeTrue) { + return narrowType(narrowType(type, expr.left, true), expr.right, true); + } + else { + return getUnionType([ + narrowType(type, expr.left, false), + narrowType(narrowType(type, expr.left, true), expr.right, false) + ]); + } + } + function narrowTypeByOr(type, expr, assumeTrue) { + if (assumeTrue) { + return getUnionType([ + narrowType(type, expr.left, true), + narrowType(narrowType(type, expr.left, false), expr.right, true) + ]); + } + else { + return narrowType(narrowType(type, expr.left, false), expr.right, false); + } + } + function narrowTypeByInstanceof(type, expr, assumeTrue) { + if (type.flags & 1 || !assumeTrue || expr.left.kind !== 65 || getResolvedSymbol(expr.left) !== symbol) { + return type; + } + var rightType = checkExpression(expr.right); + if (!isTypeSubtypeOf(rightType, globalFunctionType)) { + return type; + } + var prototypeProperty = getPropertyOfType(rightType, "prototype"); + if (!prototypeProperty) { + return type; + } + var targetType = getTypeOfSymbol(prototypeProperty); + if (isTypeSubtypeOf(targetType, type)) { + return targetType; + } + if (type.flags & 16384) { + return getUnionType(ts.filter(type.types, function (t) { return isTypeSubtypeOf(t, targetType); })); + } + return type; + } + function narrowType(type, expr, assumeTrue) { + switch (expr.kind) { + case 161: + return narrowType(type, expr.expression, assumeTrue); + case 169: + var operator = expr.operatorToken.kind; + if (operator === 30 || operator === 31) { + return narrowTypeByEquality(type, expr, assumeTrue); + } + else if (operator === 48) { + return narrowTypeByAnd(type, expr, assumeTrue); + } + else if (operator === 49) { + return narrowTypeByOr(type, expr, assumeTrue); + } + else if (operator === 87) { + return narrowTypeByInstanceof(type, expr, assumeTrue); + } + break; + case 167: + if (expr.operator === 46) { + return narrowType(type, expr.operand, !assumeTrue); + } + break; + } + return type; + } + } + function checkIdentifier(node) { + var symbol = getResolvedSymbol(node); + if (symbol === argumentsSymbol && ts.getContainingFunction(node).kind === 163) { + error(node, ts.Diagnostics.The_arguments_object_cannot_be_referenced_in_an_arrow_function_Consider_using_a_standard_function_expression); + } + if (symbol.flags & 8388608 && !isInTypeQuery(node) && !isConstEnumOrConstEnumOnlyModule(resolveAlias(symbol))) { + markAliasSymbolAsReferenced(symbol); + } + checkCollisionWithCapturedSuperVariable(node, node); + checkCollisionWithCapturedThisVariable(node, node); + checkBlockScopedBindingCapturedInLoop(node, symbol); + return getNarrowedTypeOfSymbol(getExportSymbolOfValueSymbolIfExported(symbol), node); + } + function isInsideFunction(node, threshold) { + var current = node; + while (current && current !== threshold) { + if (ts.isFunctionLike(current)) { + return true; + } + current = current.parent; + } + return false; + } + function checkBlockScopedBindingCapturedInLoop(node, symbol) { + if (languageVersion >= 2 || + (symbol.flags & 2) === 0 || + symbol.valueDeclaration.parent.kind === 223) { + return; + } + var container = symbol.valueDeclaration; + while (container.kind !== 199) { + container = container.parent; + } + container = container.parent; + if (container.kind === 180) { + container = container.parent; + } + var inFunction = isInsideFunction(node.parent, container); + var current = container; + while (current && !ts.nodeStartsNewLexicalEnvironment(current)) { + if (isIterationStatement(current, false)) { + if (inFunction) { + grammarErrorOnFirstToken(current, ts.Diagnostics.Loop_contains_block_scoped_variable_0_referenced_by_a_function_in_the_loop_This_is_only_supported_in_ECMAScript_6_or_higher, ts.declarationNameToString(node)); + } + getNodeLinks(symbol.valueDeclaration).flags |= 256; + break; + } + current = current.parent; + } + } + function captureLexicalThis(node, container) { + var classNode = container.parent && container.parent.kind === 201 ? container.parent : undefined; + getNodeLinks(node).flags |= 2; + if (container.kind === 132 || container.kind === 135) { + getNodeLinks(classNode).flags |= 4; + } + else { + getNodeLinks(container).flags |= 4; + } + } + function checkThisExpression(node) { + var container = ts.getThisContainer(node, true); + var needToCaptureLexicalThis = false; + if (container.kind === 163) { + container = ts.getThisContainer(container, false); + needToCaptureLexicalThis = (languageVersion < 2); + } + switch (container.kind) { + case 205: + error(node, ts.Diagnostics.this_cannot_be_referenced_in_a_module_body); + break; + case 204: + error(node, ts.Diagnostics.this_cannot_be_referenced_in_current_location); + break; + case 135: + if (isInConstructorArgumentInitializer(node, container)) { + error(node, ts.Diagnostics.this_cannot_be_referenced_in_constructor_arguments); + } + break; + case 132: + case 131: + if (container.flags & 128) { + error(node, ts.Diagnostics.this_cannot_be_referenced_in_a_static_property_initializer); + } + break; + case 127: + error(node, ts.Diagnostics.this_cannot_be_referenced_in_a_computed_property_name); + break; + } + if (needToCaptureLexicalThis) { + captureLexicalThis(node, container); + } + var classNode = container.parent && container.parent.kind === 201 ? container.parent : undefined; + if (classNode) { + var symbol = getSymbolOfNode(classNode); + return container.flags & 128 ? getTypeOfSymbol(symbol) : getDeclaredTypeOfSymbol(symbol); + } + return anyType; + } + function isInConstructorArgumentInitializer(node, constructorDecl) { + for (var n = node; n && n !== constructorDecl; n = n.parent) { + if (n.kind === 129) { + return true; + } + } + return false; + } + function checkSuperExpression(node) { + var isCallExpression = node.parent.kind === 157 && node.parent.expression === node; + var enclosingClass = ts.getAncestor(node, 201); + var baseClass; + if (enclosingClass && ts.getClassExtendsHeritageClauseElement(enclosingClass)) { + var classType = getDeclaredTypeOfSymbol(getSymbolOfNode(enclosingClass)); + baseClass = classType.baseTypes.length && classType.baseTypes[0]; + } + if (!baseClass) { + error(node, ts.Diagnostics.super_can_only_be_referenced_in_a_derived_class); + return unknownType; + } + var container = ts.getSuperContainer(node, true); + if (container) { + var canUseSuperExpression = false; + var needToCaptureLexicalThis; + if (isCallExpression) { + canUseSuperExpression = container.kind === 135; + } + else { + needToCaptureLexicalThis = false; + while (container && container.kind === 163) { + container = ts.getSuperContainer(container, true); + needToCaptureLexicalThis = true; + } + if (container && container.parent && container.parent.kind === 201) { + if (container.flags & 128) { + canUseSuperExpression = + container.kind === 134 || + container.kind === 133 || + container.kind === 136 || + container.kind === 137; + } + else { + canUseSuperExpression = + container.kind === 134 || + container.kind === 133 || + container.kind === 136 || + container.kind === 137 || + container.kind === 132 || + container.kind === 131 || + container.kind === 135; + } + } + } + if (canUseSuperExpression) { + var returnType; + if ((container.flags & 128) || isCallExpression) { + getNodeLinks(node).flags |= 32; + returnType = getTypeOfSymbol(baseClass.symbol); + } + else { + getNodeLinks(node).flags |= 16; + returnType = baseClass; + } + if (container.kind === 135 && isInConstructorArgumentInitializer(node, container)) { + error(node, ts.Diagnostics.super_cannot_be_referenced_in_constructor_arguments); + returnType = unknownType; + } + if (!isCallExpression && needToCaptureLexicalThis) { + captureLexicalThis(node.parent, container); + } + return returnType; + } + } + if (container.kind === 127) { + error(node, ts.Diagnostics.super_cannot_be_referenced_in_a_computed_property_name); + } + else if (isCallExpression) { + error(node, ts.Diagnostics.Super_calls_are_not_permitted_outside_constructors_or_in_nested_functions_inside_constructors); + } + else { + error(node, ts.Diagnostics.super_property_access_is_permitted_only_in_a_constructor_member_function_or_member_accessor_of_a_derived_class); + } + return unknownType; + } + function getContextuallyTypedParameterType(parameter) { + if (isFunctionExpressionOrArrowFunction(parameter.parent)) { + var func = parameter.parent; + if (isContextSensitive(func)) { + var contextualSignature = getContextualSignature(func); + if (contextualSignature) { + var funcHasRestParameters = ts.hasRestParameters(func); + var len = func.parameters.length - (funcHasRestParameters ? 1 : 0); + var indexOfParameter = ts.indexOf(func.parameters, parameter); + if (indexOfParameter < len) { + return getTypeAtPosition(contextualSignature, indexOfParameter); + } + if (indexOfParameter === (func.parameters.length - 1) && + funcHasRestParameters && contextualSignature.hasRestParameter && func.parameters.length >= contextualSignature.parameters.length) { + return getTypeOfSymbol(contextualSignature.parameters[contextualSignature.parameters.length - 1]); + } + } + } + } + return undefined; + } + function getContextualTypeForInitializerExpression(node) { + var declaration = node.parent; + if (node === declaration.initializer) { + if (declaration.type) { + return getTypeFromTypeNodeOrHeritageClauseElement(declaration.type); + } + if (declaration.kind === 129) { + var type = getContextuallyTypedParameterType(declaration); + if (type) { + return type; + } + } + if (ts.isBindingPattern(declaration.name)) { + return getTypeFromBindingPattern(declaration.name); + } + } + return undefined; + } + function getContextualTypeForReturnExpression(node) { + var func = ts.getContainingFunction(node); + if (func) { + if (func.type || func.kind === 135 || func.kind === 136 && getSetAccessorTypeAnnotationNode(ts.getDeclarationOfKind(func.symbol, 137))) { + return getReturnTypeOfSignature(getSignatureFromDeclaration(func)); + } + var signature = getContextualSignatureForFunctionLikeDeclaration(func); + if (signature) { + return getReturnTypeOfSignature(signature); + } + } + return undefined; + } + function getContextualTypeForArgument(callTarget, arg) { + var args = getEffectiveCallArguments(callTarget); + var argIndex = ts.indexOf(args, arg); + if (argIndex >= 0) { + var signature = getResolvedSignature(callTarget); + return getTypeAtPosition(signature, argIndex); + } + return undefined; + } + function getContextualTypeForSubstitutionExpression(template, substitutionExpression) { + if (template.parent.kind === 159) { + return getContextualTypeForArgument(template.parent, substitutionExpression); + } + return undefined; + } + function getContextualTypeForBinaryOperand(node) { + var binaryExpression = node.parent; + var operator = binaryExpression.operatorToken.kind; + if (operator >= 53 && operator <= 64) { + if (node === binaryExpression.right) { + return checkExpression(binaryExpression.left); + } + } + else if (operator === 49) { + var type = getContextualType(binaryExpression); + if (!type && node === binaryExpression.right) { + type = checkExpression(binaryExpression.left); + } + return type; + } + return undefined; + } + function applyToContextualType(type, mapper) { + if (!(type.flags & 16384)) { + return mapper(type); + } + var types = type.types; + var mappedType; + var mappedTypes; + for (var _i = 0; _i < types.length; _i++) { + var current = types[_i]; + var t = mapper(current); + if (t) { + if (!mappedType) { + mappedType = t; + } + else if (!mappedTypes) { + mappedTypes = [mappedType, t]; + } + else { + mappedTypes.push(t); + } + } + } + return mappedTypes ? getUnionType(mappedTypes) : mappedType; + } + function getTypeOfPropertyOfContextualType(type, name) { + return applyToContextualType(type, function (t) { + var prop = getPropertyOfObjectType(t, name); + return prop ? getTypeOfSymbol(prop) : undefined; + }); + } + function getIndexTypeOfContextualType(type, kind) { + return applyToContextualType(type, function (t) { return getIndexTypeOfObjectOrUnionType(t, kind); }); + } + function contextualTypeIsTupleLikeType(type) { + return !!(type.flags & 16384 ? ts.forEach(type.types, isTupleLikeType) : isTupleLikeType(type)); + } + function contextualTypeHasIndexSignature(type, kind) { + return !!(type.flags & 16384 ? ts.forEach(type.types, function (t) { return getIndexTypeOfObjectOrUnionType(t, kind); }) : getIndexTypeOfObjectOrUnionType(type, kind)); + } + function getContextualTypeForObjectLiteralMethod(node) { + ts.Debug.assert(ts.isObjectLiteralMethod(node)); + if (isInsideWithStatementBody(node)) { + return undefined; + } + return getContextualTypeForObjectLiteralElement(node); + } + function getContextualTypeForObjectLiteralElement(element) { + var objectLiteral = element.parent; + var type = getContextualType(objectLiteral); + if (type) { + if (!ts.hasDynamicName(element)) { + var symbolName = getSymbolOfNode(element).name; + var propertyType = getTypeOfPropertyOfContextualType(type, symbolName); + if (propertyType) { + return propertyType; + } + } + return isNumericName(element.name) && getIndexTypeOfContextualType(type, 1) || + getIndexTypeOfContextualType(type, 0); + } + return undefined; + } + function getContextualTypeForElementExpression(node) { + var arrayLiteral = node.parent; + var type = getContextualType(arrayLiteral); + if (type) { + var index = ts.indexOf(arrayLiteral.elements, node); + return getTypeOfPropertyOfContextualType(type, "" + index) + || getIndexTypeOfContextualType(type, 1) + || (languageVersion >= 2 ? checkIteratedType(type, undefined) : undefined); + } + return undefined; + } + function getContextualTypeForConditionalOperand(node) { + var conditional = node.parent; + return node === conditional.whenTrue || node === conditional.whenFalse ? getContextualType(conditional) : undefined; + } + function getContextualType(node) { + if (isInsideWithStatementBody(node)) { + return undefined; + } + if (node.contextualType) { + return node.contextualType; + } + var parent = node.parent; + switch (parent.kind) { + case 198: + case 129: + case 132: + case 131: + case 152: + return getContextualTypeForInitializerExpression(node); + case 163: + case 191: + return getContextualTypeForReturnExpression(node); + case 157: + case 158: + return getContextualTypeForArgument(parent, node); + case 160: + return getTypeFromTypeNodeOrHeritageClauseElement(parent.type); + case 169: + return getContextualTypeForBinaryOperand(node); + case 224: + return getContextualTypeForObjectLiteralElement(parent); + case 153: + return getContextualTypeForElementExpression(node); + case 170: + return getContextualTypeForConditionalOperand(node); + case 176: + ts.Debug.assert(parent.parent.kind === 171); + return getContextualTypeForSubstitutionExpression(parent.parent, node); + case 161: + return getContextualType(parent); + } + return undefined; + } + function getNonGenericSignature(type) { + var signatures = getSignaturesOfObjectOrUnionType(type, 0); + if (signatures.length === 1) { + var signature = signatures[0]; + if (!signature.typeParameters) { + return signature; + } + } + } + function isFunctionExpressionOrArrowFunction(node) { + return node.kind === 162 || node.kind === 163; + } + function getContextualSignatureForFunctionLikeDeclaration(node) { + return isFunctionExpressionOrArrowFunction(node) ? getContextualSignature(node) : undefined; + } + function getContextualSignature(node) { + ts.Debug.assert(node.kind !== 134 || ts.isObjectLiteralMethod(node)); + var type = ts.isObjectLiteralMethod(node) + ? getContextualTypeForObjectLiteralMethod(node) + : getContextualType(node); + if (!type) { + return undefined; + } + if (!(type.flags & 16384)) { + return getNonGenericSignature(type); + } + var signatureList; + var types = type.types; + for (var _i = 0; _i < types.length; _i++) { + var current = types[_i]; + if (signatureList && + getSignaturesOfObjectOrUnionType(current, 0).length > 1) { + return undefined; + } + var signature = getNonGenericSignature(current); + if (signature) { + if (!signatureList) { + signatureList = [signature]; + } + else if (!compareSignatures(signatureList[0], signature, false, compareTypes)) { + return undefined; + } + else { + signatureList.push(signature); + } + } + } + var result; + if (signatureList) { + result = cloneSignature(signatureList[0]); + result.resolvedReturnType = undefined; + result.unionSignatures = signatureList; + } + return result; + } + function isInferentialContext(mapper) { + return mapper && mapper !== identityMapper; + } + function isAssignmentTarget(node) { + var parent = node.parent; + if (parent.kind === 169 && parent.operatorToken.kind === 53 && parent.left === node) { + return true; + } + if (parent.kind === 224) { + return isAssignmentTarget(parent.parent); + } + if (parent.kind === 153) { + return isAssignmentTarget(parent); + } + return false; + } + function checkSpreadElementExpression(node, contextualMapper) { + var type = checkExpressionCached(node.expression, contextualMapper); + if (!isArrayLikeType(type)) { + error(node.expression, ts.Diagnostics.Type_0_is_not_an_array_type, typeToString(type)); + return unknownType; + } + return type; + } + function checkArrayLiteral(node, contextualMapper) { + var elements = node.elements; + if (!elements.length) { + return createArrayType(undefinedType); + } + var hasSpreadElement = false; + var elementTypes = []; + ts.forEach(elements, function (e) { + var type = checkExpression(e, contextualMapper); + if (e.kind === 173) { + elementTypes.push(getIndexTypeOfType(type, 1) || anyType); + hasSpreadElement = true; + } + else { + elementTypes.push(type); + } + }); + if (!hasSpreadElement) { + var contextualType = getContextualType(node); + if (contextualType && contextualTypeIsTupleLikeType(contextualType) || isAssignmentTarget(node)) { + return createTupleType(elementTypes); + } + } + return createArrayType(getUnionType(elementTypes)); + } + function isNumericName(name) { + return name.kind === 127 ? isNumericComputedName(name) : isNumericLiteralName(name.text); + } + function isNumericComputedName(name) { + return allConstituentTypesHaveKind(checkComputedPropertyName(name), 1 | 132); + } + function isNumericLiteralName(name) { + return (+name).toString() === name; + } + function checkComputedPropertyName(node) { + var links = getNodeLinks(node.expression); + if (!links.resolvedType) { + links.resolvedType = checkExpression(node.expression); + if (!allConstituentTypesHaveKind(links.resolvedType, 1 | 132 | 258 | 1048576)) { + error(node, ts.Diagnostics.A_computed_property_name_must_be_of_type_string_number_symbol_or_any); + } + else { + checkThatExpressionIsProperSymbolReference(node.expression, links.resolvedType, true); + } + } + return links.resolvedType; + } + function checkObjectLiteral(node, contextualMapper) { + checkGrammarObjectLiteralExpression(node); + var propertiesTable = {}; + var propertiesArray = []; + var contextualType = getContextualType(node); + var typeFlags; + for (var _i = 0, _a = node.properties; _i < _a.length; _i++) { + var memberDecl = _a[_i]; + var member = memberDecl.symbol; + if (memberDecl.kind === 224 || + memberDecl.kind === 225 || + ts.isObjectLiteralMethod(memberDecl)) { + var type = void 0; + if (memberDecl.kind === 224) { + type = checkPropertyAssignment(memberDecl, contextualMapper); + } + else if (memberDecl.kind === 134) { + type = checkObjectLiteralMethod(memberDecl, contextualMapper); + } + else { + ts.Debug.assert(memberDecl.kind === 225); + type = memberDecl.name.kind === 127 + ? unknownType + : checkExpression(memberDecl.name, contextualMapper); + } + typeFlags |= type.flags; + var prop = createSymbol(4 | 67108864 | member.flags, member.name); + prop.declarations = member.declarations; + prop.parent = member.parent; + if (member.valueDeclaration) { + prop.valueDeclaration = member.valueDeclaration; + } + prop.type = type; + prop.target = member; + member = prop; + } + else { + ts.Debug.assert(memberDecl.kind === 136 || memberDecl.kind === 137); + checkAccessorDeclaration(memberDecl); + } + if (!ts.hasDynamicName(memberDecl)) { + propertiesTable[member.name] = member; + } + propertiesArray.push(member); + } + var stringIndexType = getIndexType(0); + var numberIndexType = getIndexType(1); + var result = createAnonymousType(node.symbol, propertiesTable, emptyArray, emptyArray, stringIndexType, numberIndexType); + result.flags |= 131072 | 524288 | (typeFlags & 262144); + return result; + function getIndexType(kind) { + if (contextualType && contextualTypeHasIndexSignature(contextualType, kind)) { + var propTypes = []; + for (var i = 0; i < propertiesArray.length; i++) { + var propertyDecl = node.properties[i]; + if (kind === 0 || isNumericName(propertyDecl.name)) { + var type = getTypeOfSymbol(propertiesArray[i]); + if (!ts.contains(propTypes, type)) { + propTypes.push(type); + } + } + } + var result_1 = propTypes.length ? getUnionType(propTypes) : undefinedType; + typeFlags |= result_1.flags; + return result_1; + } + return undefined; + } + } + function getDeclarationKindFromSymbol(s) { + return s.valueDeclaration ? s.valueDeclaration.kind : 132; + } + function getDeclarationFlagsFromSymbol(s) { + return s.valueDeclaration ? ts.getCombinedNodeFlags(s.valueDeclaration) : s.flags & 134217728 ? 16 | 128 : 0; + } + function checkClassPropertyAccess(node, left, type, prop) { + var flags = getDeclarationFlagsFromSymbol(prop); + if (!(flags & (32 | 64))) { + return; + } + var enclosingClassDeclaration = ts.getAncestor(node, 201); + var enclosingClass = enclosingClassDeclaration ? getDeclaredTypeOfSymbol(getSymbolOfNode(enclosingClassDeclaration)) : undefined; + var declaringClass = getDeclaredTypeOfSymbol(prop.parent); + if (flags & 32) { + if (declaringClass !== enclosingClass) { + error(node, ts.Diagnostics.Property_0_is_private_and_only_accessible_within_class_1, symbolToString(prop), typeToString(declaringClass)); + } + return; + } + if (left.kind === 91) { + return; + } + if (!enclosingClass || !hasBaseType(enclosingClass, declaringClass)) { + error(node, ts.Diagnostics.Property_0_is_protected_and_only_accessible_within_class_1_and_its_subclasses, symbolToString(prop), typeToString(declaringClass)); + return; + } + if (flags & 128) { + return; + } + if (!(getTargetType(type).flags & (1024 | 2048) && hasBaseType(type, enclosingClass))) { + error(node, ts.Diagnostics.Property_0_is_protected_and_only_accessible_through_an_instance_of_class_1, symbolToString(prop), typeToString(enclosingClass)); + } + } + function checkPropertyAccessExpression(node) { + return checkPropertyAccessExpressionOrQualifiedName(node, node.expression, node.name); + } + function checkQualifiedName(node) { + return checkPropertyAccessExpressionOrQualifiedName(node, node.left, node.right); + } + function checkPropertyAccessExpressionOrQualifiedName(node, left, right) { + var type = checkExpressionOrQualifiedName(left); + if (type === unknownType) + return type; + if (type !== anyType) { + var apparentType = getApparentType(getWidenedType(type)); + if (apparentType === unknownType) { + return unknownType; + } + var prop = getPropertyOfType(apparentType, right.text); + if (!prop) { + if (right.text) { + error(right, ts.Diagnostics.Property_0_does_not_exist_on_type_1, ts.declarationNameToString(right), typeToString(type)); + } + return unknownType; + } + getNodeLinks(node).resolvedSymbol = prop; + if (prop.parent && prop.parent.flags & 32) { + if (left.kind === 91 && getDeclarationKindFromSymbol(prop) !== 134) { + error(right, ts.Diagnostics.Only_public_and_protected_methods_of_the_base_class_are_accessible_via_the_super_keyword); + } + else { + checkClassPropertyAccess(node, left, type, prop); + } + } + return getTypeOfSymbol(prop); + } + return anyType; + } + function isValidPropertyAccess(node, propertyName) { + var left = node.kind === 155 + ? node.expression + : node.left; + var type = checkExpressionOrQualifiedName(left); + if (type !== unknownType && type !== anyType) { + var prop = getPropertyOfType(getWidenedType(type), propertyName); + if (prop && prop.parent && prop.parent.flags & 32) { + if (left.kind === 91 && getDeclarationKindFromSymbol(prop) !== 134) { + return false; + } + else { + var modificationCount = diagnostics.getModificationCount(); + checkClassPropertyAccess(node, left, type, prop); + return diagnostics.getModificationCount() === modificationCount; + } + } + } + return true; + } + function checkIndexedAccess(node) { + if (!node.argumentExpression) { + var sourceFile = getSourceFile(node); + if (node.parent.kind === 158 && node.parent.expression === node) { + var start = ts.skipTrivia(sourceFile.text, node.expression.end); + var end = node.end; + grammarErrorAtPos(sourceFile, start, end - start, ts.Diagnostics.new_T_cannot_be_used_to_create_an_array_Use_new_Array_T_instead); + } + else { + var start = node.end - "]".length; + var end = node.end; + grammarErrorAtPos(sourceFile, start, end - start, ts.Diagnostics.Expression_expected); + } + } + var objectType = getApparentType(checkExpression(node.expression)); + var indexType = node.argumentExpression ? checkExpression(node.argumentExpression) : unknownType; + if (objectType === unknownType) { + return unknownType; + } + var isConstEnum = isConstEnumObjectType(objectType); + if (isConstEnum && + (!node.argumentExpression || node.argumentExpression.kind !== 8)) { + error(node.argumentExpression, ts.Diagnostics.A_const_enum_member_can_only_be_accessed_using_a_string_literal); + return unknownType; + } + if (node.argumentExpression) { + var name_6 = getPropertyNameForIndexedAccess(node.argumentExpression, indexType); + if (name_6 !== undefined) { + var prop = getPropertyOfType(objectType, name_6); + if (prop) { + getNodeLinks(node).resolvedSymbol = prop; + return getTypeOfSymbol(prop); + } + else if (isConstEnum) { + error(node.argumentExpression, ts.Diagnostics.Property_0_does_not_exist_on_const_enum_1, name_6, symbolToString(objectType.symbol)); + return unknownType; + } + } + } + if (allConstituentTypesHaveKind(indexType, 1 | 258 | 132 | 1048576)) { + if (allConstituentTypesHaveKind(indexType, 1 | 132)) { + var numberIndexType = getIndexTypeOfType(objectType, 1); + if (numberIndexType) { + return numberIndexType; + } + } + var stringIndexType = getIndexTypeOfType(objectType, 0); + if (stringIndexType) { + return stringIndexType; + } + if (compilerOptions.noImplicitAny && !compilerOptions.suppressImplicitAnyIndexErrors && objectType !== anyType) { + error(node, ts.Diagnostics.Index_signature_of_object_type_implicitly_has_an_any_type); + } + return anyType; + } + error(node, ts.Diagnostics.An_index_expression_argument_must_be_of_type_string_number_symbol_or_any); + return unknownType; + } + function getPropertyNameForIndexedAccess(indexArgumentExpression, indexArgumentType) { + if (indexArgumentExpression.kind === 8 || indexArgumentExpression.kind === 7) { + return indexArgumentExpression.text; + } + if (checkThatExpressionIsProperSymbolReference(indexArgumentExpression, indexArgumentType, false)) { + var rightHandSideName = indexArgumentExpression.name.text; + return ts.getPropertyNameForKnownSymbolName(rightHandSideName); + } + return undefined; + } + function checkThatExpressionIsProperSymbolReference(expression, expressionType, reportError) { + if (expressionType === unknownType) { + return false; + } + if (!ts.isWellKnownSymbolSyntactically(expression)) { + return false; + } + if ((expressionType.flags & 1048576) === 0) { + if (reportError) { + error(expression, ts.Diagnostics.A_computed_property_name_of_the_form_0_must_be_of_type_symbol, ts.getTextOfNode(expression)); + } + return false; + } + var leftHandSide = expression.expression; + var leftHandSideSymbol = getResolvedSymbol(leftHandSide); + if (!leftHandSideSymbol) { + return false; + } + var globalESSymbol = getGlobalESSymbolConstructorSymbol(); + if (!globalESSymbol) { + return false; + } + if (leftHandSideSymbol !== globalESSymbol) { + if (reportError) { + error(leftHandSide, ts.Diagnostics.Symbol_reference_does_not_refer_to_the_global_Symbol_constructor_object); + } + return false; + } + return true; + } + function resolveUntypedCall(node) { + if (node.kind === 159) { + checkExpression(node.template); + } + else { + ts.forEach(node.arguments, function (argument) { + checkExpression(argument); + }); + } + return anySignature; + } + function resolveErrorCall(node) { + resolveUntypedCall(node); + return unknownSignature; + } + function reorderCandidates(signatures, result) { + var lastParent; + var lastSymbol; + var cutoffIndex = 0; + var index; + var specializedIndex = -1; + var spliceIndex; + ts.Debug.assert(!result.length); + for (var _i = 0; _i < signatures.length; _i++) { + var signature = signatures[_i]; + var symbol = signature.declaration && getSymbolOfNode(signature.declaration); + var parent_4 = signature.declaration && signature.declaration.parent; + if (!lastSymbol || symbol === lastSymbol) { + if (lastParent && parent_4 === lastParent) { + index++; + } + else { + lastParent = parent_4; + index = cutoffIndex; + } + } + else { + index = cutoffIndex = result.length; + lastParent = parent_4; + } + lastSymbol = symbol; + if (signature.hasStringLiterals) { + specializedIndex++; + spliceIndex = specializedIndex; + cutoffIndex++; + } + else { + spliceIndex = index; + } + result.splice(spliceIndex, 0, signature); + } + } + function getSpreadArgumentIndex(args) { + for (var i = 0; i < args.length; i++) { + if (args[i].kind === 173) { + return i; + } + } + return -1; + } + function hasCorrectArity(node, args, signature) { + var adjustedArgCount; + var typeArguments; + var callIsIncomplete; + if (node.kind === 159) { + var tagExpression = node; + adjustedArgCount = args.length; + typeArguments = undefined; + if (tagExpression.template.kind === 171) { + var templateExpression = tagExpression.template; + var lastSpan = ts.lastOrUndefined(templateExpression.templateSpans); + ts.Debug.assert(lastSpan !== undefined); + callIsIncomplete = ts.nodeIsMissing(lastSpan.literal) || !!lastSpan.literal.isUnterminated; + } + else { + var templateLiteral = tagExpression.template; + ts.Debug.assert(templateLiteral.kind === 10); + callIsIncomplete = !!templateLiteral.isUnterminated; + } + } + else { + var callExpression = node; + if (!callExpression.arguments) { + ts.Debug.assert(callExpression.kind === 158); + return signature.minArgumentCount === 0; + } + adjustedArgCount = callExpression.arguments.hasTrailingComma ? args.length + 1 : args.length; + callIsIncomplete = callExpression.arguments.end === callExpression.end; + typeArguments = callExpression.typeArguments; + } + var hasRightNumberOfTypeArgs = !typeArguments || + (signature.typeParameters && typeArguments.length === signature.typeParameters.length); + if (!hasRightNumberOfTypeArgs) { + return false; + } + var spreadArgIndex = getSpreadArgumentIndex(args); + if (spreadArgIndex >= 0) { + return signature.hasRestParameter && spreadArgIndex >= signature.parameters.length - 1; + } + if (!signature.hasRestParameter && adjustedArgCount > signature.parameters.length) { + return false; + } + var hasEnoughArguments = adjustedArgCount >= signature.minArgumentCount; + return callIsIncomplete || hasEnoughArguments; + } + function getSingleCallSignature(type) { + if (type.flags & 48128) { + var resolved = resolveObjectOrUnionTypeMembers(type); + if (resolved.callSignatures.length === 1 && resolved.constructSignatures.length === 0 && + resolved.properties.length === 0 && !resolved.stringIndexType && !resolved.numberIndexType) { + return resolved.callSignatures[0]; + } + } + return undefined; + } + function instantiateSignatureInContextOf(signature, contextualSignature, contextualMapper) { + var context = createInferenceContext(signature.typeParameters, true); + forEachMatchingParameterType(contextualSignature, signature, function (source, target) { + inferTypes(context, instantiateType(source, contextualMapper), target); + }); + return getSignatureInstantiation(signature, getInferredTypes(context)); + } + function inferTypeArguments(signature, args, excludeArgument, context) { + var typeParameters = signature.typeParameters; + var inferenceMapper = createInferenceMapper(context); + for (var i = 0; i < typeParameters.length; i++) { + if (!context.inferences[i].isFixed) { + context.inferredTypes[i] = undefined; + } + } + if (context.failedTypeParameterIndex !== undefined && !context.inferences[context.failedTypeParameterIndex].isFixed) { + context.failedTypeParameterIndex = undefined; + } + for (var i = 0; i < args.length; i++) { + var arg = args[i]; + if (arg.kind !== 175) { + var paramType = getTypeAtPosition(signature, arg.kind === 173 ? -1 : i); + var argType = void 0; + if (i === 0 && args[i].parent.kind === 159) { + argType = globalTemplateStringsArrayType; + } + else { + var mapper = excludeArgument && excludeArgument[i] !== undefined ? identityMapper : inferenceMapper; + argType = checkExpressionWithContextualType(arg, paramType, mapper); + } + inferTypes(context, argType, paramType); + } + } + if (excludeArgument) { + for (var i = 0; i < args.length; i++) { + if (excludeArgument[i] === false) { + var arg = args[i]; + var paramType = getTypeAtPosition(signature, arg.kind === 173 ? -1 : i); + inferTypes(context, checkExpressionWithContextualType(arg, paramType, inferenceMapper), paramType); + } + } + } + getInferredTypes(context); + } + function checkTypeArguments(signature, typeArguments, typeArgumentResultTypes, reportErrors) { + var typeParameters = signature.typeParameters; + var typeArgumentsAreAssignable = true; + for (var i = 0; i < typeParameters.length; i++) { + var typeArgNode = typeArguments[i]; + var typeArgument = getTypeFromTypeNodeOrHeritageClauseElement(typeArgNode); + typeArgumentResultTypes[i] = typeArgument; + if (typeArgumentsAreAssignable) { + var constraint = getConstraintOfTypeParameter(typeParameters[i]); + if (constraint) { + typeArgumentsAreAssignable = checkTypeAssignableTo(typeArgument, constraint, reportErrors ? typeArgNode : undefined, ts.Diagnostics.Type_0_does_not_satisfy_the_constraint_1); + } + } + } + return typeArgumentsAreAssignable; + } + function checkApplicableSignature(node, args, signature, relation, excludeArgument, reportErrors) { + for (var i = 0; i < args.length; i++) { + var arg = args[i]; + if (arg.kind !== 175) { + var paramType = getTypeAtPosition(signature, arg.kind === 173 ? -1 : i); + var argType = i === 0 && node.kind === 159 ? globalTemplateStringsArrayType : + arg.kind === 8 && !reportErrors ? getStringLiteralType(arg) : + checkExpressionWithContextualType(arg, paramType, excludeArgument && excludeArgument[i] ? identityMapper : undefined); + if (!checkTypeRelatedTo(argType, paramType, relation, reportErrors ? arg : undefined, ts.Diagnostics.Argument_of_type_0_is_not_assignable_to_parameter_of_type_1)) { + return false; + } + } + } + return true; + } + function getEffectiveCallArguments(node) { + var args; + if (node.kind === 159) { + var template = node.template; + args = [template]; + if (template.kind === 171) { + ts.forEach(template.templateSpans, function (span) { + args.push(span.expression); + }); + } + } + else { + args = node.arguments || emptyArray; + } + return args; + } + function getEffectiveTypeArguments(callExpression) { + if (callExpression.expression.kind === 91) { + var containingClass = ts.getAncestor(callExpression, 201); + var baseClassTypeNode = containingClass && ts.getClassExtendsHeritageClauseElement(containingClass); + return baseClassTypeNode && baseClassTypeNode.typeArguments; + } + else { + return callExpression.typeArguments; + } + } + function resolveCall(node, signatures, candidatesOutArray) { + var isTaggedTemplate = node.kind === 159; + var typeArguments; + if (!isTaggedTemplate) { + typeArguments = getEffectiveTypeArguments(node); + if (node.expression.kind !== 91) { + ts.forEach(typeArguments, checkSourceElement); + } + } + var candidates = candidatesOutArray || []; + reorderCandidates(signatures, candidates); + if (!candidates.length) { + error(node, ts.Diagnostics.Supplied_parameters_do_not_match_any_signature_of_call_target); + return resolveErrorCall(node); + } + var args = getEffectiveCallArguments(node); + var excludeArgument; + for (var i = isTaggedTemplate ? 1 : 0; i < args.length; i++) { + if (isContextSensitive(args[i])) { + if (!excludeArgument) { + excludeArgument = new Array(args.length); + } + excludeArgument[i] = true; + } + } + var candidateForArgumentError; + var candidateForTypeArgumentError; + var resultOfFailedInference; + var result; + if (candidates.length > 1) { + result = chooseOverload(candidates, subtypeRelation); + } + if (!result) { + candidateForArgumentError = undefined; + candidateForTypeArgumentError = undefined; + resultOfFailedInference = undefined; + result = chooseOverload(candidates, assignableRelation); + } + if (result) { + return result; + } + if (candidateForArgumentError) { + checkApplicableSignature(node, args, candidateForArgumentError, assignableRelation, undefined, true); + } + else if (candidateForTypeArgumentError) { + if (!isTaggedTemplate && node.typeArguments) { + checkTypeArguments(candidateForTypeArgumentError, node.typeArguments, [], true); + } + else { + ts.Debug.assert(resultOfFailedInference.failedTypeParameterIndex >= 0); + var failedTypeParameter = candidateForTypeArgumentError.typeParameters[resultOfFailedInference.failedTypeParameterIndex]; + var inferenceCandidates = getInferenceCandidates(resultOfFailedInference, resultOfFailedInference.failedTypeParameterIndex); + var diagnosticChainHead = ts.chainDiagnosticMessages(undefined, ts.Diagnostics.The_type_argument_for_type_parameter_0_cannot_be_inferred_from_the_usage_Consider_specifying_the_type_arguments_explicitly, typeToString(failedTypeParameter)); + reportNoCommonSupertypeError(inferenceCandidates, node.expression || node.tag, diagnosticChainHead); + } + } + else { + error(node, ts.Diagnostics.Supplied_parameters_do_not_match_any_signature_of_call_target); + } + if (!produceDiagnostics) { + for (var _i = 0; _i < candidates.length; _i++) { + var candidate = candidates[_i]; + if (hasCorrectArity(node, args, candidate)) { + return candidate; + } + } + } + return resolveErrorCall(node); + function chooseOverload(candidates, relation) { + for (var _i = 0; _i < candidates.length; _i++) { + var originalCandidate = candidates[_i]; + if (!hasCorrectArity(node, args, originalCandidate)) { + continue; + } + var candidate = void 0; + var typeArgumentsAreValid = void 0; + var inferenceContext = originalCandidate.typeParameters + ? createInferenceContext(originalCandidate.typeParameters, false) + : undefined; + while (true) { + candidate = originalCandidate; + if (candidate.typeParameters) { + var typeArgumentTypes = void 0; + if (typeArguments) { + typeArgumentTypes = new Array(candidate.typeParameters.length); + typeArgumentsAreValid = checkTypeArguments(candidate, typeArguments, typeArgumentTypes, false); + } + else { + inferTypeArguments(candidate, args, excludeArgument, inferenceContext); + typeArgumentsAreValid = inferenceContext.failedTypeParameterIndex === undefined; + typeArgumentTypes = inferenceContext.inferredTypes; + } + if (!typeArgumentsAreValid) { + break; + } + candidate = getSignatureInstantiation(candidate, typeArgumentTypes); + } + if (!checkApplicableSignature(node, args, candidate, relation, excludeArgument, false)) { + break; + } + var index = excludeArgument ? ts.indexOf(excludeArgument, true) : -1; + if (index < 0) { + return candidate; + } + excludeArgument[index] = false; + } + if (originalCandidate.typeParameters) { + var instantiatedCandidate = candidate; + if (typeArgumentsAreValid) { + candidateForArgumentError = instantiatedCandidate; + } + else { + candidateForTypeArgumentError = originalCandidate; + if (!typeArguments) { + resultOfFailedInference = inferenceContext; + } + } + } + else { + ts.Debug.assert(originalCandidate === candidate); + candidateForArgumentError = originalCandidate; + } + } + return undefined; + } + } + function resolveCallExpression(node, candidatesOutArray) { + if (node.expression.kind === 91) { + var superType = checkSuperExpression(node.expression); + if (superType !== unknownType) { + return resolveCall(node, getSignaturesOfType(superType, 1), candidatesOutArray); + } + return resolveUntypedCall(node); + } + var funcType = checkExpression(node.expression); + var apparentType = getApparentType(funcType); + if (apparentType === unknownType) { + return resolveErrorCall(node); + } + var callSignatures = getSignaturesOfType(apparentType, 0); + var constructSignatures = getSignaturesOfType(apparentType, 1); + if (funcType === anyType || (!callSignatures.length && !constructSignatures.length && !(funcType.flags & 16384) && isTypeAssignableTo(funcType, globalFunctionType))) { + if (node.typeArguments) { + error(node, ts.Diagnostics.Untyped_function_calls_may_not_accept_type_arguments); + } + return resolveUntypedCall(node); + } + if (!callSignatures.length) { + if (constructSignatures.length) { + error(node, ts.Diagnostics.Value_of_type_0_is_not_callable_Did_you_mean_to_include_new, typeToString(funcType)); + } + else { + error(node, ts.Diagnostics.Cannot_invoke_an_expression_whose_type_lacks_a_call_signature); + } + return resolveErrorCall(node); + } + return resolveCall(node, callSignatures, candidatesOutArray); + } + function resolveNewExpression(node, candidatesOutArray) { + if (node.arguments && languageVersion < 2) { + var spreadIndex = getSpreadArgumentIndex(node.arguments); + if (spreadIndex >= 0) { + error(node.arguments[spreadIndex], ts.Diagnostics.Spread_operator_in_new_expressions_is_only_available_when_targeting_ECMAScript_6_and_higher); + } + } + var expressionType = checkExpression(node.expression); + if (expressionType === anyType) { + if (node.typeArguments) { + error(node, ts.Diagnostics.Untyped_function_calls_may_not_accept_type_arguments); + } + return resolveUntypedCall(node); + } + expressionType = getApparentType(expressionType); + if (expressionType === unknownType) { + return resolveErrorCall(node); + } + var constructSignatures = getSignaturesOfType(expressionType, 1); + if (constructSignatures.length) { + return resolveCall(node, constructSignatures, candidatesOutArray); + } + var callSignatures = getSignaturesOfType(expressionType, 0); + if (callSignatures.length) { + var signature = resolveCall(node, callSignatures, candidatesOutArray); + if (getReturnTypeOfSignature(signature) !== voidType) { + error(node, ts.Diagnostics.Only_a_void_function_can_be_called_with_the_new_keyword); + } + return signature; + } + error(node, ts.Diagnostics.Cannot_use_new_with_an_expression_whose_type_lacks_a_call_or_construct_signature); + return resolveErrorCall(node); + } + function resolveTaggedTemplateExpression(node, candidatesOutArray) { + var tagType = checkExpression(node.tag); + var apparentType = getApparentType(tagType); + if (apparentType === unknownType) { + return resolveErrorCall(node); + } + var callSignatures = getSignaturesOfType(apparentType, 0); + if (tagType === anyType || (!callSignatures.length && !(tagType.flags & 16384) && isTypeAssignableTo(tagType, globalFunctionType))) { + return resolveUntypedCall(node); + } + if (!callSignatures.length) { + error(node, ts.Diagnostics.Cannot_invoke_an_expression_whose_type_lacks_a_call_signature); + return resolveErrorCall(node); + } + return resolveCall(node, callSignatures, candidatesOutArray); + } + function getResolvedSignature(node, candidatesOutArray) { + var links = getNodeLinks(node); + if (!links.resolvedSignature || candidatesOutArray) { + links.resolvedSignature = anySignature; + if (node.kind === 157) { + links.resolvedSignature = resolveCallExpression(node, candidatesOutArray); + } + else if (node.kind === 158) { + links.resolvedSignature = resolveNewExpression(node, candidatesOutArray); + } + else if (node.kind === 159) { + links.resolvedSignature = resolveTaggedTemplateExpression(node, candidatesOutArray); + } + else { + ts.Debug.fail("Branch in 'getResolvedSignature' should be unreachable."); + } + } + return links.resolvedSignature; + } + function checkCallExpression(node) { + checkGrammarTypeArguments(node, node.typeArguments) || checkGrammarArguments(node, node.arguments); + var signature = getResolvedSignature(node); + if (node.expression.kind === 91) { + return voidType; + } + if (node.kind === 158) { + var declaration = signature.declaration; + if (declaration && + declaration.kind !== 135 && + declaration.kind !== 139 && + declaration.kind !== 143) { + if (compilerOptions.noImplicitAny) { + error(node, ts.Diagnostics.new_expression_whose_target_lacks_a_construct_signature_implicitly_has_an_any_type); + } + return anyType; + } + } + return getReturnTypeOfSignature(signature); + } + function checkTaggedTemplateExpression(node) { + return getReturnTypeOfSignature(getResolvedSignature(node)); + } + function checkTypeAssertion(node) { + var exprType = checkExpression(node.expression); + var targetType = getTypeFromTypeNodeOrHeritageClauseElement(node.type); + if (produceDiagnostics && targetType !== unknownType) { + var widenedType = getWidenedType(exprType); + if (!(isTypeAssignableTo(targetType, widenedType))) { + checkTypeAssignableTo(exprType, targetType, node, ts.Diagnostics.Neither_type_0_nor_type_1_is_assignable_to_the_other); + } + } + return targetType; + } + function getTypeAtPosition(signature, pos) { + if (pos >= 0) { + return signature.hasRestParameter ? + pos < signature.parameters.length - 1 ? getTypeOfSymbol(signature.parameters[pos]) : getRestTypeOfSignature(signature) : + pos < signature.parameters.length ? getTypeOfSymbol(signature.parameters[pos]) : anyType; + } + return signature.hasRestParameter ? + getTypeOfSymbol(signature.parameters[signature.parameters.length - 1]) : + anyArrayType; + } + function assignContextualParameterTypes(signature, context, mapper) { + var len = signature.parameters.length - (signature.hasRestParameter ? 1 : 0); + for (var i = 0; i < len; i++) { + var parameter = signature.parameters[i]; + var links = getSymbolLinks(parameter); + links.type = instantiateType(getTypeAtPosition(context, i), mapper); + } + if (signature.hasRestParameter && context.hasRestParameter && signature.parameters.length >= context.parameters.length) { + var parameter = signature.parameters[signature.parameters.length - 1]; + var links = getSymbolLinks(parameter); + links.type = instantiateType(getTypeOfSymbol(context.parameters[context.parameters.length - 1]), mapper); + } + } + function getReturnTypeFromBody(func, contextualMapper) { + var contextualSignature = getContextualSignatureForFunctionLikeDeclaration(func); + if (!func.body) { + return unknownType; + } + var type; + if (func.body.kind !== 179) { + type = checkExpressionCached(func.body, contextualMapper); + } + else { + var types = checkAndAggregateReturnExpressionTypes(func.body, contextualMapper); + if (types.length === 0) { + return voidType; + } + type = contextualSignature ? getUnionType(types) : getCommonSupertype(types); + if (!type) { + error(func, ts.Diagnostics.No_best_common_type_exists_among_return_expressions); + return unknownType; + } + } + if (!contextualSignature) { + reportErrorsFromWidening(func, type); + } + return getWidenedType(type); + } + function checkAndAggregateReturnExpressionTypes(body, contextualMapper) { + var aggregatedTypes = []; + ts.forEachReturnStatement(body, function (returnStatement) { + var expr = returnStatement.expression; + if (expr) { + var type = checkExpressionCached(expr, contextualMapper); + if (!ts.contains(aggregatedTypes, type)) { + aggregatedTypes.push(type); + } + } + }); + return aggregatedTypes; + } + function bodyContainsAReturnStatement(funcBody) { + return ts.forEachReturnStatement(funcBody, function (returnStatement) { + return true; + }); + } + function bodyContainsSingleThrowStatement(body) { + return (body.statements.length === 1) && (body.statements[0].kind === 195); + } + function checkIfNonVoidFunctionHasReturnExpressionsOrSingleThrowStatment(func, returnType) { + if (!produceDiagnostics) { + return; + } + if (returnType === voidType || returnType === anyType) { + return; + } + if (ts.nodeIsMissing(func.body) || func.body.kind !== 179) { + return; + } + var bodyBlock = func.body; + if (bodyContainsAReturnStatement(bodyBlock)) { + return; + } + if (bodyContainsSingleThrowStatement(bodyBlock)) { + return; + } + error(func.type, ts.Diagnostics.A_function_whose_declared_type_is_neither_void_nor_any_must_return_a_value_or_consist_of_a_single_throw_statement); + } + function checkFunctionExpressionOrObjectLiteralMethod(node, contextualMapper) { + ts.Debug.assert(node.kind !== 134 || ts.isObjectLiteralMethod(node)); + var hasGrammarError = checkGrammarFunctionLikeDeclaration(node); + if (!hasGrammarError && node.kind === 162) { + checkGrammarFunctionName(node.name) || checkGrammarForGenerator(node); + } + if (contextualMapper === identityMapper && isContextSensitive(node)) { + return anyFunctionType; + } + var links = getNodeLinks(node); + var type = getTypeOfSymbol(node.symbol); + if (!(links.flags & 64)) { + var contextualSignature = getContextualSignature(node); + if (!(links.flags & 64)) { + links.flags |= 64; + if (contextualSignature) { + var signature = getSignaturesOfType(type, 0)[0]; + if (isContextSensitive(node)) { + assignContextualParameterTypes(signature, contextualSignature, contextualMapper || identityMapper); + } + if (!node.type) { + signature.resolvedReturnType = resolvingType; + var returnType = getReturnTypeFromBody(node, contextualMapper); + if (signature.resolvedReturnType === resolvingType) { + signature.resolvedReturnType = returnType; + } + } + } + checkSignatureDeclaration(node); + } + } + if (produceDiagnostics && node.kind !== 134 && node.kind !== 133) { + checkCollisionWithCapturedSuperVariable(node, node.name); + checkCollisionWithCapturedThisVariable(node, node.name); + } + return type; + } + function checkFunctionExpressionOrObjectLiteralMethodBody(node) { + ts.Debug.assert(node.kind !== 134 || ts.isObjectLiteralMethod(node)); + if (node.type) { + checkIfNonVoidFunctionHasReturnExpressionsOrSingleThrowStatment(node, getTypeFromTypeNodeOrHeritageClauseElement(node.type)); + } + if (node.body) { + if (node.body.kind === 179) { + checkSourceElement(node.body); + } + else { + var exprType = checkExpression(node.body); + if (node.type) { + checkTypeAssignableTo(exprType, getTypeFromTypeNodeOrHeritageClauseElement(node.type), node.body, undefined); + } + checkFunctionExpressionBodies(node.body); + } + } + } + function checkArithmeticOperandType(operand, type, diagnostic) { + if (!allConstituentTypesHaveKind(type, 1 | 132)) { + error(operand, diagnostic); + return false; + } + return true; + } + function checkReferenceExpression(n, invalidReferenceMessage, constantVariableMessage) { + function findSymbol(n) { + var symbol = getNodeLinks(n).resolvedSymbol; + return symbol && getExportSymbolOfValueSymbolIfExported(symbol); + } + function isReferenceOrErrorExpression(n) { + switch (n.kind) { + case 65: { + var symbol = findSymbol(n); + return !symbol || symbol === unknownSymbol || symbol === argumentsSymbol || (symbol.flags & 3) !== 0; + } + case 155: { + var symbol = findSymbol(n); + return !symbol || symbol === unknownSymbol || (symbol.flags & ~8) !== 0; + } + case 156: + return true; + case 161: + return isReferenceOrErrorExpression(n.expression); + default: + return false; + } + } + function isConstVariableReference(n) { + switch (n.kind) { + case 65: + case 155: { + var symbol = findSymbol(n); + return symbol && (symbol.flags & 3) !== 0 && (getDeclarationFlagsFromSymbol(symbol) & 8192) !== 0; + } + case 156: { + var index = n.argumentExpression; + var symbol = findSymbol(n.expression); + if (symbol && index && index.kind === 8) { + var name_7 = index.text; + var prop = getPropertyOfType(getTypeOfSymbol(symbol), name_7); + return prop && (prop.flags & 3) !== 0 && (getDeclarationFlagsFromSymbol(prop) & 8192) !== 0; + } + return false; + } + case 161: + return isConstVariableReference(n.expression); + default: + return false; + } + } + if (!isReferenceOrErrorExpression(n)) { + error(n, invalidReferenceMessage); + return false; + } + if (isConstVariableReference(n)) { + error(n, constantVariableMessage); + return false; + } + return true; + } + function checkDeleteExpression(node) { + if (node.parserContextFlags & 1 && node.expression.kind === 65) { + grammarErrorOnNode(node.expression, ts.Diagnostics.delete_cannot_be_called_on_an_identifier_in_strict_mode); + } + var operandType = checkExpression(node.expression); + return booleanType; + } + function checkTypeOfExpression(node) { + var operandType = checkExpression(node.expression); + return stringType; + } + function checkVoidExpression(node) { + var operandType = checkExpression(node.expression); + return undefinedType; + } + function checkPrefixUnaryExpression(node) { + if ((node.operator === 38 || node.operator === 39)) { + checkGrammarEvalOrArgumentsInStrictMode(node, node.operand); + } + var operandType = checkExpression(node.operand); + switch (node.operator) { + case 33: + case 34: + case 47: + if (someConstituentTypeHasKind(operandType, 1048576)) { + error(node.operand, ts.Diagnostics.The_0_operator_cannot_be_applied_to_type_symbol, ts.tokenToString(node.operator)); + } + return numberType; + case 46: + return booleanType; + case 38: + case 39: + var ok = checkArithmeticOperandType(node.operand, operandType, ts.Diagnostics.An_arithmetic_operand_must_be_of_type_any_number_or_an_enum_type); + if (ok) { + checkReferenceExpression(node.operand, ts.Diagnostics.The_operand_of_an_increment_or_decrement_operator_must_be_a_variable_property_or_indexer, ts.Diagnostics.The_operand_of_an_increment_or_decrement_operator_cannot_be_a_constant); + } + return numberType; + } + return unknownType; + } + function checkPostfixUnaryExpression(node) { + checkGrammarEvalOrArgumentsInStrictMode(node, node.operand); + var operandType = checkExpression(node.operand); + var ok = checkArithmeticOperandType(node.operand, operandType, ts.Diagnostics.An_arithmetic_operand_must_be_of_type_any_number_or_an_enum_type); + if (ok) { + checkReferenceExpression(node.operand, ts.Diagnostics.The_operand_of_an_increment_or_decrement_operator_must_be_a_variable_property_or_indexer, ts.Diagnostics.The_operand_of_an_increment_or_decrement_operator_cannot_be_a_constant); + } + return numberType; + } + function someConstituentTypeHasKind(type, kind) { + if (type.flags & kind) { + return true; + } + if (type.flags & 16384) { + var types = type.types; + for (var _i = 0; _i < types.length; _i++) { + var current = types[_i]; + if (current.flags & kind) { + return true; + } + } + return false; + } + return false; + } + function allConstituentTypesHaveKind(type, kind) { + if (type.flags & kind) { + return true; + } + if (type.flags & 16384) { + var types = type.types; + for (var _i = 0; _i < types.length; _i++) { + var current = types[_i]; + if (!(current.flags & kind)) { + return false; + } + } + return true; + } + return false; + } + function isConstEnumObjectType(type) { + return type.flags & (48128 | 32768) && type.symbol && isConstEnumSymbol(type.symbol); + } + function isConstEnumSymbol(symbol) { + return (symbol.flags & 128) !== 0; + } + function checkInstanceOfExpression(node, leftType, rightType) { + if (allConstituentTypesHaveKind(leftType, 1049086)) { + error(node.left, ts.Diagnostics.The_left_hand_side_of_an_instanceof_expression_must_be_of_type_any_an_object_type_or_a_type_parameter); + } + if (!(rightType.flags & 1 || isTypeSubtypeOf(rightType, globalFunctionType))) { + error(node.right, ts.Diagnostics.The_right_hand_side_of_an_instanceof_expression_must_be_of_type_any_or_of_a_type_assignable_to_the_Function_interface_type); + } + return booleanType; + } + function checkInExpression(node, leftType, rightType) { + if (!allConstituentTypesHaveKind(leftType, 1 | 258 | 132 | 1048576)) { + error(node.left, ts.Diagnostics.The_left_hand_side_of_an_in_expression_must_be_of_type_any_string_number_or_symbol); + } + if (!allConstituentTypesHaveKind(rightType, 1 | 48128 | 512)) { + error(node.right, ts.Diagnostics.The_right_hand_side_of_an_in_expression_must_be_of_type_any_an_object_type_or_a_type_parameter); + } + return booleanType; + } + function checkObjectLiteralAssignment(node, sourceType, contextualMapper) { + var properties = node.properties; + for (var _i = 0; _i < properties.length; _i++) { + var p = properties[_i]; + if (p.kind === 224 || p.kind === 225) { + var name_8 = p.name; + var type = sourceType.flags & 1 ? sourceType : + getTypeOfPropertyOfType(sourceType, name_8.text) || + isNumericLiteralName(name_8.text) && getIndexTypeOfType(sourceType, 1) || + getIndexTypeOfType(sourceType, 0); + if (type) { + checkDestructuringAssignment(p.initializer || name_8, type); + } + else { + error(name_8, ts.Diagnostics.Type_0_has_no_property_1_and_no_string_index_signature, typeToString(sourceType), ts.declarationNameToString(name_8)); + } + } + else { + error(p, ts.Diagnostics.Property_assignment_expected); + } + } + return sourceType; + } + function checkArrayLiteralAssignment(node, sourceType, contextualMapper) { + if (!isArrayLikeType(sourceType)) { + error(node, ts.Diagnostics.Type_0_is_not_an_array_type, typeToString(sourceType)); + return sourceType; + } + var elements = node.elements; + for (var i = 0; i < elements.length; i++) { + var e = elements[i]; + if (e.kind !== 175) { + if (e.kind !== 173) { + var propName = "" + i; + var type = sourceType.flags & 1 ? sourceType : + isTupleLikeType(sourceType) ? getTypeOfPropertyOfType(sourceType, propName) : + getIndexTypeOfType(sourceType, 1); + if (type) { + checkDestructuringAssignment(e, type, contextualMapper); + } + else { + if (isTupleType(sourceType)) { + error(e, ts.Diagnostics.Tuple_type_0_with_length_1_cannot_be_assigned_to_tuple_with_length_2, typeToString(sourceType), sourceType.elementTypes.length, elements.length); + } + else { + error(e, ts.Diagnostics.Type_0_has_no_property_1, typeToString(sourceType), propName); + } + } + } + else { + if (i === elements.length - 1) { + checkReferenceAssignment(e.expression, sourceType, contextualMapper); + } + else { + error(e, ts.Diagnostics.A_rest_element_must_be_last_in_an_array_destructuring_pattern); + } + } + } + } + return sourceType; + } + function checkDestructuringAssignment(target, sourceType, contextualMapper) { + if (target.kind === 169 && target.operatorToken.kind === 53) { + checkBinaryExpression(target, contextualMapper); + target = target.left; + } + if (target.kind === 154) { + return checkObjectLiteralAssignment(target, sourceType, contextualMapper); + } + if (target.kind === 153) { + return checkArrayLiteralAssignment(target, sourceType, contextualMapper); + } + return checkReferenceAssignment(target, sourceType, contextualMapper); + } + function checkReferenceAssignment(target, sourceType, contextualMapper) { + var targetType = checkExpression(target, contextualMapper); + if (checkReferenceExpression(target, ts.Diagnostics.Invalid_left_hand_side_of_assignment_expression, ts.Diagnostics.Left_hand_side_of_assignment_expression_cannot_be_a_constant)) { + checkTypeAssignableTo(sourceType, targetType, target, undefined); + } + return sourceType; + } + function checkBinaryExpression(node, contextualMapper) { + if (ts.isLeftHandSideExpression(node.left) && ts.isAssignmentOperator(node.operatorToken.kind)) { + checkGrammarEvalOrArgumentsInStrictMode(node, node.left); + } + var operator = node.operatorToken.kind; + if (operator === 53 && (node.left.kind === 154 || node.left.kind === 153)) { + return checkDestructuringAssignment(node.left, checkExpression(node.right, contextualMapper), contextualMapper); + } + var leftType = checkExpression(node.left, contextualMapper); + var rightType = checkExpression(node.right, contextualMapper); + switch (operator) { + case 35: + case 56: + case 36: + case 57: + case 37: + case 58: + case 34: + case 55: + case 40: + case 59: + case 41: + case 60: + case 42: + case 61: + case 44: + case 63: + case 45: + case 64: + case 43: + case 62: + if (leftType.flags & (32 | 64)) + leftType = rightType; + if (rightType.flags & (32 | 64)) + rightType = leftType; + var suggestedOperator; + if ((leftType.flags & 8) && + (rightType.flags & 8) && + (suggestedOperator = getSuggestedBooleanOperator(node.operatorToken.kind)) !== undefined) { + error(node, ts.Diagnostics.The_0_operator_is_not_allowed_for_boolean_types_Consider_using_1_instead, ts.tokenToString(node.operatorToken.kind), ts.tokenToString(suggestedOperator)); + } + else { + var leftOk = checkArithmeticOperandType(node.left, leftType, ts.Diagnostics.The_left_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_or_an_enum_type); + var rightOk = checkArithmeticOperandType(node.right, rightType, ts.Diagnostics.The_right_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_or_an_enum_type); + if (leftOk && rightOk) { + checkAssignmentOperator(numberType); + } + } + return numberType; + case 33: + case 54: + if (leftType.flags & (32 | 64)) + leftType = rightType; + if (rightType.flags & (32 | 64)) + rightType = leftType; + var resultType; + if (allConstituentTypesHaveKind(leftType, 132) && allConstituentTypesHaveKind(rightType, 132)) { + resultType = numberType; + } + else { + if (allConstituentTypesHaveKind(leftType, 258) || allConstituentTypesHaveKind(rightType, 258)) { + resultType = stringType; + } + else if (leftType.flags & 1 || rightType.flags & 1) { + resultType = anyType; + } + if (resultType && !checkForDisallowedESSymbolOperand(operator)) { + return resultType; + } + } + if (!resultType) { + reportOperatorError(); + return anyType; + } + if (operator === 54) { + checkAssignmentOperator(resultType); + } + return resultType; + case 24: + case 25: + case 26: + case 27: + if (!checkForDisallowedESSymbolOperand(operator)) { + return booleanType; + } + case 28: + case 29: + case 30: + case 31: + if (!isTypeAssignableTo(leftType, rightType) && !isTypeAssignableTo(rightType, leftType)) { + reportOperatorError(); + } + return booleanType; + case 87: + return checkInstanceOfExpression(node, leftType, rightType); + case 86: + return checkInExpression(node, leftType, rightType); + case 48: + return rightType; + case 49: + return getUnionType([leftType, rightType]); + case 53: + checkAssignmentOperator(rightType); + return rightType; + case 23: + return rightType; + } + function checkForDisallowedESSymbolOperand(operator) { + var offendingSymbolOperand = someConstituentTypeHasKind(leftType, 1048576) ? node.left : + someConstituentTypeHasKind(rightType, 1048576) ? node.right : + undefined; + if (offendingSymbolOperand) { + error(offendingSymbolOperand, ts.Diagnostics.The_0_operator_cannot_be_applied_to_type_symbol, ts.tokenToString(operator)); + return false; + } + return true; + } + function getSuggestedBooleanOperator(operator) { + switch (operator) { + case 44: + case 63: + return 49; + case 45: + case 64: + return 31; + case 43: + case 62: + return 48; + default: + return undefined; + } + } + function checkAssignmentOperator(valueType) { + if (produceDiagnostics && operator >= 53 && operator <= 64) { + var ok = checkReferenceExpression(node.left, ts.Diagnostics.Invalid_left_hand_side_of_assignment_expression, ts.Diagnostics.Left_hand_side_of_assignment_expression_cannot_be_a_constant); + if (ok) { + checkTypeAssignableTo(valueType, leftType, node.left, undefined); + } + } + } + function reportOperatorError() { + error(node, ts.Diagnostics.Operator_0_cannot_be_applied_to_types_1_and_2, ts.tokenToString(node.operatorToken.kind), typeToString(leftType), typeToString(rightType)); + } + } + function checkYieldExpression(node) { + if (!(node.parserContextFlags & 4)) { + grammarErrorOnFirstToken(node, ts.Diagnostics.yield_expression_must_be_contained_within_a_generator_declaration); + } + else { + grammarErrorOnFirstToken(node, ts.Diagnostics.yield_expressions_are_not_currently_supported); + } + } + function checkConditionalExpression(node, contextualMapper) { + checkExpression(node.condition); + var type1 = checkExpression(node.whenTrue, contextualMapper); + var type2 = checkExpression(node.whenFalse, contextualMapper); + return getUnionType([type1, type2]); + } + function checkTemplateExpression(node) { + ts.forEach(node.templateSpans, function (templateSpan) { + checkExpression(templateSpan.expression); + }); + return stringType; + } + function checkExpressionWithContextualType(node, contextualType, contextualMapper) { + var saveContextualType = node.contextualType; + node.contextualType = contextualType; + var result = checkExpression(node, contextualMapper); + node.contextualType = saveContextualType; + return result; + } + function checkExpressionCached(node, contextualMapper) { + var links = getNodeLinks(node); + if (!links.resolvedType) { + links.resolvedType = checkExpression(node, contextualMapper); + } + return links.resolvedType; + } + function checkPropertyAssignment(node, contextualMapper) { + if (node.name.kind === 127) { + checkComputedPropertyName(node.name); + } + return checkExpression(node.initializer, contextualMapper); + } + function checkObjectLiteralMethod(node, contextualMapper) { + checkGrammarMethod(node); + if (node.name.kind === 127) { + checkComputedPropertyName(node.name); + } + var uninstantiatedType = checkFunctionExpressionOrObjectLiteralMethod(node, contextualMapper); + return instantiateTypeWithSingleGenericCallSignature(node, uninstantiatedType, contextualMapper); + } + function instantiateTypeWithSingleGenericCallSignature(node, type, contextualMapper) { + if (contextualMapper && contextualMapper !== identityMapper) { + var signature = getSingleCallSignature(type); + if (signature && signature.typeParameters) { + var contextualType = getContextualType(node); + if (contextualType) { + var contextualSignature = getSingleCallSignature(contextualType); + if (contextualSignature && !contextualSignature.typeParameters) { + return getOrCreateTypeFromSignature(instantiateSignatureInContextOf(signature, contextualSignature, contextualMapper)); + } + } + } + } + return type; + } + function checkExpression(node, contextualMapper) { + return checkExpressionOrQualifiedName(node, contextualMapper); + } + function checkExpressionOrQualifiedName(node, contextualMapper) { + var type; + if (node.kind == 126) { + type = checkQualifiedName(node); + } + else { + var uninstantiatedType = checkExpressionWorker(node, contextualMapper); + type = instantiateTypeWithSingleGenericCallSignature(node, uninstantiatedType, contextualMapper); + } + if (isConstEnumObjectType(type)) { + var ok = (node.parent.kind === 155 && node.parent.expression === node) || + (node.parent.kind === 156 && node.parent.expression === node) || + ((node.kind === 65 || node.kind === 126) && isInRightSideOfImportOrExportAssignment(node)); + if (!ok) { + error(node, ts.Diagnostics.const_enums_can_only_be_used_in_property_or_index_access_expressions_or_the_right_hand_side_of_an_import_declaration_or_export_assignment); + } + } + return type; + } + function checkNumericLiteral(node) { + checkGrammarNumbericLiteral(node); + return numberType; + } + function checkExpressionWorker(node, contextualMapper) { + switch (node.kind) { + case 65: + return checkIdentifier(node); + case 93: + return checkThisExpression(node); + case 91: + return checkSuperExpression(node); + case 89: + return nullType; + case 95: + case 80: + return booleanType; + case 7: + return checkNumericLiteral(node); + case 171: + return checkTemplateExpression(node); + case 8: + case 10: + return stringType; + case 9: + return globalRegExpType; + case 153: + return checkArrayLiteral(node, contextualMapper); + case 154: + return checkObjectLiteral(node, contextualMapper); + case 155: + return checkPropertyAccessExpression(node); + case 156: + return checkIndexedAccess(node); + case 157: + case 158: + return checkCallExpression(node); + case 159: + return checkTaggedTemplateExpression(node); + case 160: + return checkTypeAssertion(node); + case 161: + return checkExpression(node.expression, contextualMapper); + case 174: + return checkClassExpression(node); + case 162: + case 163: + return checkFunctionExpressionOrObjectLiteralMethod(node, contextualMapper); + case 165: + return checkTypeOfExpression(node); + case 164: + return checkDeleteExpression(node); + case 166: + return checkVoidExpression(node); + case 167: + return checkPrefixUnaryExpression(node); + case 168: + return checkPostfixUnaryExpression(node); + case 169: + return checkBinaryExpression(node, contextualMapper); + case 170: + return checkConditionalExpression(node, contextualMapper); + case 173: + return checkSpreadElementExpression(node, contextualMapper); + case 175: + return undefinedType; + case 172: + checkYieldExpression(node); + return unknownType; + } + return unknownType; + } + function checkTypeParameter(node) { + if (node.expression) { + grammarErrorOnFirstToken(node.expression, ts.Diagnostics.Type_expected); + } + checkSourceElement(node.constraint); + if (produceDiagnostics) { + checkTypeParameterHasIllegalReferencesInConstraint(node); + checkTypeNameIsReserved(node.name, ts.Diagnostics.Type_parameter_name_cannot_be_0); + } + } + function checkParameter(node) { + // Grammar checking + // It is a SyntaxError if the Identifier "eval" or the Identifier "arguments" occurs as the + // Identifier in a PropertySetParameterList of a PropertyAssignment that is contained in strict code + // or if its FunctionBody is strict code(11.1.5). + // It is a SyntaxError if the identifier eval or arguments appears within a FormalParameterList of a + // strict mode FunctionLikeDeclaration or FunctionExpression(13.1) + checkGrammarDecorators(node) || checkGrammarModifiers(node) || checkGrammarEvalOrArgumentsInStrictMode(node, node.name); + checkVariableLikeDeclaration(node); + var func = ts.getContainingFunction(node); + if (node.flags & 112) { + func = ts.getContainingFunction(node); + if (!(func.kind === 135 && ts.nodeIsPresent(func.body))) { + error(node, ts.Diagnostics.A_parameter_property_is_only_allowed_in_a_constructor_implementation); + } + } + if (node.questionToken && ts.isBindingPattern(node.name) && func.body) { + error(node, ts.Diagnostics.A_binding_pattern_parameter_cannot_be_optional_in_an_implementation_signature); + } + if (node.dotDotDotToken) { + if (!isArrayType(getTypeOfSymbol(node.symbol))) { + error(node, ts.Diagnostics.A_rest_parameter_must_be_of_an_array_type); + } + } + } + function checkSignatureDeclaration(node) { + if (node.kind === 140) { + checkGrammarIndexSignature(node); + } + else if (node.kind === 142 || node.kind === 200 || node.kind === 143 || + node.kind === 138 || node.kind === 135 || + node.kind === 139) { + checkGrammarFunctionLikeDeclaration(node); + } + checkTypeParameters(node.typeParameters); + ts.forEach(node.parameters, checkParameter); + if (node.type) { + checkSourceElement(node.type); + } + if (produceDiagnostics) { + checkCollisionWithArgumentsInGeneratedCode(node); + if (compilerOptions.noImplicitAny && !node.type) { + switch (node.kind) { + case 139: + error(node, ts.Diagnostics.Construct_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type); + break; + case 138: + error(node, ts.Diagnostics.Call_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type); + break; + } + } + } + checkSpecializedSignatureDeclaration(node); + } + function checkTypeForDuplicateIndexSignatures(node) { + if (node.kind === 202) { + var nodeSymbol = getSymbolOfNode(node); + if (nodeSymbol.declarations.length > 0 && nodeSymbol.declarations[0] !== node) { + return; + } + } + var indexSymbol = getIndexSymbol(getSymbolOfNode(node)); + if (indexSymbol) { + var seenNumericIndexer = false; + var seenStringIndexer = false; + for (var _i = 0, _a = indexSymbol.declarations; _i < _a.length; _i++) { + var decl = _a[_i]; + var declaration = decl; + if (declaration.parameters.length === 1 && declaration.parameters[0].type) { + switch (declaration.parameters[0].type.kind) { + case 121: + if (!seenStringIndexer) { + seenStringIndexer = true; + } + else { + error(declaration, ts.Diagnostics.Duplicate_string_index_signature); + } + break; + case 119: + if (!seenNumericIndexer) { + seenNumericIndexer = true; + } + else { + error(declaration, ts.Diagnostics.Duplicate_number_index_signature); + } + break; + } + } + } + } + } + function checkPropertyDeclaration(node) { + checkGrammarDecorators(node) || checkGrammarModifiers(node) || checkGrammarProperty(node) || checkGrammarComputedPropertyName(node.name); + checkVariableLikeDeclaration(node); + } + function checkMethodDeclaration(node) { + checkGrammarMethod(node) || checkGrammarComputedPropertyName(node.name); + checkFunctionLikeDeclaration(node); + } + function checkConstructorDeclaration(node) { + checkSignatureDeclaration(node); + checkGrammarConstructorTypeParameters(node) || checkGrammarConstructorTypeAnnotation(node); + checkSourceElement(node.body); + var symbol = getSymbolOfNode(node); + var firstDeclaration = ts.getDeclarationOfKind(symbol, node.kind); + if (node === firstDeclaration) { + checkFunctionOrConstructorSymbol(symbol); + } + if (ts.nodeIsMissing(node.body)) { + return; + } + if (!produceDiagnostics) { + return; + } + function isSuperCallExpression(n) { + return n.kind === 157 && n.expression.kind === 91; + } + function containsSuperCall(n) { + if (isSuperCallExpression(n)) { + return true; + } + switch (n.kind) { + case 162: + case 200: + case 163: + case 154: return false; + default: return ts.forEachChild(n, containsSuperCall); + } + } + function markThisReferencesAsErrors(n) { + if (n.kind === 93) { + error(n, ts.Diagnostics.this_cannot_be_referenced_in_current_location); + } + else if (n.kind !== 162 && n.kind !== 200) { + ts.forEachChild(n, markThisReferencesAsErrors); + } + } + function isInstancePropertyWithInitializer(n) { + return n.kind === 132 && + !(n.flags & 128) && + !!n.initializer; + } + if (ts.getClassExtendsHeritageClauseElement(node.parent)) { + if (containsSuperCall(node.body)) { + var superCallShouldBeFirst = ts.forEach(node.parent.members, isInstancePropertyWithInitializer) || + ts.forEach(node.parameters, function (p) { return p.flags & (16 | 32 | 64); }); + if (superCallShouldBeFirst) { + var statements = node.body.statements; + if (!statements.length || statements[0].kind !== 182 || !isSuperCallExpression(statements[0].expression)) { + error(node, ts.Diagnostics.A_super_call_must_be_the_first_statement_in_the_constructor_when_a_class_contains_initialized_properties_or_has_parameter_properties); + } + else { + markThisReferencesAsErrors(statements[0].expression); + } + } + } + else { + error(node, ts.Diagnostics.Constructors_for_derived_classes_must_contain_a_super_call); + } + } + } + function checkAccessorDeclaration(node) { + if (produceDiagnostics) { + checkGrammarFunctionLikeDeclaration(node) || checkGrammarAccessor(node) || checkGrammarComputedPropertyName(node.name); + if (node.kind === 136) { + if (!ts.isInAmbientContext(node) && ts.nodeIsPresent(node.body) && !(bodyContainsAReturnStatement(node.body) || bodyContainsSingleThrowStatement(node.body))) { + error(node.name, ts.Diagnostics.A_get_accessor_must_return_a_value_or_consist_of_a_single_throw_statement); + } + } + if (!ts.hasDynamicName(node)) { + var otherKind = node.kind === 136 ? 137 : 136; + var otherAccessor = ts.getDeclarationOfKind(node.symbol, otherKind); + if (otherAccessor) { + if (((node.flags & 112) !== (otherAccessor.flags & 112))) { + error(node.name, ts.Diagnostics.Getter_and_setter_accessors_do_not_agree_in_visibility); + } + var currentAccessorType = getAnnotatedAccessorType(node); + var otherAccessorType = getAnnotatedAccessorType(otherAccessor); + if (currentAccessorType && otherAccessorType) { + if (!isTypeIdenticalTo(currentAccessorType, otherAccessorType)) { + error(node, ts.Diagnostics.get_and_set_accessor_must_have_the_same_type); + } + } + } + } + checkAndStoreTypeOfAccessors(getSymbolOfNode(node)); + } + checkFunctionLikeDeclaration(node); + } + function checkMissingDeclaration(node) { + checkDecorators(node); + } + function checkTypeReferenceNode(node) { + return checkTypeReferenceOrHeritageClauseElement(node); + } + function checkHeritageClauseElement(node) { + return checkTypeReferenceOrHeritageClauseElement(node); + } + function checkTypeReferenceOrHeritageClauseElement(node) { + checkGrammarTypeArguments(node, node.typeArguments); + var type = getTypeFromTypeReferenceOrHeritageClauseElement(node); + if (type !== unknownType && node.typeArguments) { + var len = node.typeArguments.length; + for (var i = 0; i < len; i++) { + checkSourceElement(node.typeArguments[i]); + var constraint = getConstraintOfTypeParameter(type.target.typeParameters[i]); + if (produceDiagnostics && constraint) { + var typeArgument = type.typeArguments[i]; + checkTypeAssignableTo(typeArgument, constraint, node, ts.Diagnostics.Type_0_does_not_satisfy_the_constraint_1); + } + } + } + } + function checkTypeQuery(node) { + getTypeFromTypeQueryNode(node); + } + function checkTypeLiteral(node) { + ts.forEach(node.members, checkSourceElement); + if (produceDiagnostics) { + var type = getTypeFromTypeLiteralOrFunctionOrConstructorTypeNode(node); + checkIndexConstraints(type); + checkTypeForDuplicateIndexSignatures(node); + } + } + function checkArrayType(node) { + checkSourceElement(node.elementType); + } + function checkTupleType(node) { + var hasErrorFromDisallowedTrailingComma = checkGrammarForDisallowedTrailingComma(node.elementTypes); + if (!hasErrorFromDisallowedTrailingComma && node.elementTypes.length === 0) { + grammarErrorOnNode(node, ts.Diagnostics.A_tuple_type_element_list_cannot_be_empty); + } + ts.forEach(node.elementTypes, checkSourceElement); + } + function checkUnionType(node) { + ts.forEach(node.types, checkSourceElement); + } + function isPrivateWithinAmbient(node) { + return (node.flags & 32) && ts.isInAmbientContext(node); + } + function checkSpecializedSignatureDeclaration(signatureDeclarationNode) { + if (!produceDiagnostics) { + return; + } + var signature = getSignatureFromDeclaration(signatureDeclarationNode); + if (!signature.hasStringLiterals) { + return; + } + if (ts.nodeIsPresent(signatureDeclarationNode.body)) { + error(signatureDeclarationNode, ts.Diagnostics.A_signature_with_an_implementation_cannot_use_a_string_literal_type); + return; + } + var signaturesToCheck; + if (!signatureDeclarationNode.name && signatureDeclarationNode.parent && signatureDeclarationNode.parent.kind === 202) { + ts.Debug.assert(signatureDeclarationNode.kind === 138 || signatureDeclarationNode.kind === 139); + var signatureKind = signatureDeclarationNode.kind === 138 ? 0 : 1; + var containingSymbol = getSymbolOfNode(signatureDeclarationNode.parent); + var containingType = getDeclaredTypeOfSymbol(containingSymbol); + signaturesToCheck = getSignaturesOfType(containingType, signatureKind); + } + else { + signaturesToCheck = getSignaturesOfSymbol(getSymbolOfNode(signatureDeclarationNode)); + } + for (var _i = 0; _i < signaturesToCheck.length; _i++) { + var otherSignature = signaturesToCheck[_i]; + if (!otherSignature.hasStringLiterals && isSignatureAssignableTo(signature, otherSignature)) { + return; + } + } + error(signatureDeclarationNode, ts.Diagnostics.Specialized_overload_signature_is_not_assignable_to_any_non_specialized_signature); + } + function getEffectiveDeclarationFlags(n, flagsToCheck) { + var flags = ts.getCombinedNodeFlags(n); + if (n.parent.kind !== 202 && ts.isInAmbientContext(n)) { + if (!(flags & 2)) { + flags |= 1; + } + flags |= 2; + } + return flags & flagsToCheck; + } + function checkFunctionOrConstructorSymbol(symbol) { + if (!produceDiagnostics) { + return; + } + function getCanonicalOverload(overloads, implementation) { + var implementationSharesContainerWithFirstOverload = implementation !== undefined && implementation.parent === overloads[0].parent; + return implementationSharesContainerWithFirstOverload ? implementation : overloads[0]; + } + function checkFlagAgreementBetweenOverloads(overloads, implementation, flagsToCheck, someOverloadFlags, allOverloadFlags) { + var someButNotAllOverloadFlags = someOverloadFlags ^ allOverloadFlags; + if (someButNotAllOverloadFlags !== 0) { + var canonicalFlags = getEffectiveDeclarationFlags(getCanonicalOverload(overloads, implementation), flagsToCheck); + ts.forEach(overloads, function (o) { + var deviation = getEffectiveDeclarationFlags(o, flagsToCheck) ^ canonicalFlags; + if (deviation & 1) { + error(o.name, ts.Diagnostics.Overload_signatures_must_all_be_exported_or_not_exported); + } + else if (deviation & 2) { + error(o.name, ts.Diagnostics.Overload_signatures_must_all_be_ambient_or_non_ambient); + } + else if (deviation & (32 | 64)) { + error(o.name, ts.Diagnostics.Overload_signatures_must_all_be_public_private_or_protected); + } + }); + } + } + function checkQuestionTokenAgreementBetweenOverloads(overloads, implementation, someHaveQuestionToken, allHaveQuestionToken) { + if (someHaveQuestionToken !== allHaveQuestionToken) { + var canonicalHasQuestionToken = ts.hasQuestionToken(getCanonicalOverload(overloads, implementation)); + ts.forEach(overloads, function (o) { + var deviation = ts.hasQuestionToken(o) !== canonicalHasQuestionToken; + if (deviation) { + error(o.name, ts.Diagnostics.Overload_signatures_must_all_be_optional_or_required); + } + }); + } + } + var flagsToCheck = 1 | 2 | 32 | 64; + var someNodeFlags = 0; + var allNodeFlags = flagsToCheck; + var someHaveQuestionToken = false; + var allHaveQuestionToken = true; + var hasOverloads = false; + var bodyDeclaration; + var lastSeenNonAmbientDeclaration; + var previousDeclaration; + var declarations = symbol.declarations; + var isConstructor = (symbol.flags & 16384) !== 0; + function reportImplementationExpectedError(node) { + if (node.name && ts.nodeIsMissing(node.name)) { + return; + } + var seen = false; + var subsequentNode = ts.forEachChild(node.parent, function (c) { + if (seen) { + return c; + } + else { + seen = c === node; + } + }); + if (subsequentNode) { + if (subsequentNode.kind === node.kind) { + var errorNode_1 = subsequentNode.name || subsequentNode; + if (node.name && subsequentNode.name && node.name.text === subsequentNode.name.text) { + ts.Debug.assert(node.kind === 134 || node.kind === 133); + ts.Debug.assert((node.flags & 128) !== (subsequentNode.flags & 128)); + var diagnostic = node.flags & 128 ? ts.Diagnostics.Function_overload_must_be_static : ts.Diagnostics.Function_overload_must_not_be_static; + error(errorNode_1, diagnostic); + return; + } + else if (ts.nodeIsPresent(subsequentNode.body)) { + error(errorNode_1, ts.Diagnostics.Function_implementation_name_must_be_0, ts.declarationNameToString(node.name)); + return; + } + } + } + var errorNode = node.name || node; + if (isConstructor) { + error(errorNode, ts.Diagnostics.Constructor_implementation_is_missing); + } + else { + error(errorNode, ts.Diagnostics.Function_implementation_is_missing_or_not_immediately_following_the_declaration); + } + } + var isExportSymbolInsideModule = symbol.parent && symbol.parent.flags & 1536; + var duplicateFunctionDeclaration = false; + var multipleConstructorImplementation = false; + for (var _i = 0; _i < declarations.length; _i++) { + var current = declarations[_i]; + var node = current; + var inAmbientContext = ts.isInAmbientContext(node); + var inAmbientContextOrInterface = node.parent.kind === 202 || node.parent.kind === 145 || inAmbientContext; + if (inAmbientContextOrInterface) { + previousDeclaration = undefined; + } + if (node.kind === 200 || node.kind === 134 || node.kind === 133 || node.kind === 135) { + var currentNodeFlags = getEffectiveDeclarationFlags(node, flagsToCheck); + someNodeFlags |= currentNodeFlags; + allNodeFlags &= currentNodeFlags; + someHaveQuestionToken = someHaveQuestionToken || ts.hasQuestionToken(node); + allHaveQuestionToken = allHaveQuestionToken && ts.hasQuestionToken(node); + if (ts.nodeIsPresent(node.body) && bodyDeclaration) { + if (isConstructor) { + multipleConstructorImplementation = true; + } + else { + duplicateFunctionDeclaration = true; + } + } + else if (!isExportSymbolInsideModule && previousDeclaration && previousDeclaration.parent === node.parent && previousDeclaration.end !== node.pos) { + reportImplementationExpectedError(previousDeclaration); + } + if (ts.nodeIsPresent(node.body)) { + if (!bodyDeclaration) { + bodyDeclaration = node; + } + } + else { + hasOverloads = true; + } + previousDeclaration = node; + if (!inAmbientContextOrInterface) { + lastSeenNonAmbientDeclaration = node; + } + } + } + if (multipleConstructorImplementation) { + ts.forEach(declarations, function (declaration) { + error(declaration, ts.Diagnostics.Multiple_constructor_implementations_are_not_allowed); + }); + } + if (duplicateFunctionDeclaration) { + ts.forEach(declarations, function (declaration) { + error(declaration.name, ts.Diagnostics.Duplicate_function_implementation); + }); + } + if (!isExportSymbolInsideModule && lastSeenNonAmbientDeclaration && !lastSeenNonAmbientDeclaration.body) { + reportImplementationExpectedError(lastSeenNonAmbientDeclaration); + } + if (hasOverloads) { + checkFlagAgreementBetweenOverloads(declarations, bodyDeclaration, flagsToCheck, someNodeFlags, allNodeFlags); + checkQuestionTokenAgreementBetweenOverloads(declarations, bodyDeclaration, someHaveQuestionToken, allHaveQuestionToken); + if (bodyDeclaration) { + var signatures = getSignaturesOfSymbol(symbol); + var bodySignature = getSignatureFromDeclaration(bodyDeclaration); + if (!bodySignature.hasStringLiterals) { + for (var _a = 0; _a < signatures.length; _a++) { + var signature = signatures[_a]; + if (!signature.hasStringLiterals && !isSignatureAssignableTo(bodySignature, signature)) { + error(signature.declaration, ts.Diagnostics.Overload_signature_is_not_compatible_with_function_implementation); + break; + } + } + } + } + } + } + function checkExportsOnMergedDeclarations(node) { + if (!produceDiagnostics) { + return; + } + var symbol = node.localSymbol; + if (!symbol) { + symbol = getSymbolOfNode(node); + if (!(symbol.flags & 7340032)) { + return; + } + } + if (ts.getDeclarationOfKind(symbol, node.kind) !== node) { + return; + } + var exportedDeclarationSpaces = 0; + var nonExportedDeclarationSpaces = 0; + ts.forEach(symbol.declarations, function (d) { + var declarationSpaces = getDeclarationSpaces(d); + if (getEffectiveDeclarationFlags(d, 1)) { + exportedDeclarationSpaces |= declarationSpaces; + } + else { + nonExportedDeclarationSpaces |= declarationSpaces; + } + }); + var commonDeclarationSpace = exportedDeclarationSpaces & nonExportedDeclarationSpaces; + if (commonDeclarationSpace) { + ts.forEach(symbol.declarations, function (d) { + if (getDeclarationSpaces(d) & commonDeclarationSpace) { + error(d.name, ts.Diagnostics.Individual_declarations_in_merged_declaration_0_must_be_all_exported_or_all_local, ts.declarationNameToString(d.name)); + } + }); + } + function getDeclarationSpaces(d) { + switch (d.kind) { + case 202: + return 2097152; + case 205: + return d.name.kind === 8 || ts.getModuleInstanceState(d) !== 0 + ? 4194304 | 1048576 + : 4194304; + case 201: + case 204: + return 2097152 | 1048576; + case 208: + var result = 0; + var target = resolveAlias(getSymbolOfNode(d)); + ts.forEach(target.declarations, function (d) { result |= getDeclarationSpaces(d); }); + return result; + default: + return 1048576; + } + } + } + function checkDecorator(node) { + var expression = node.expression; + var exprType = checkExpression(expression); + switch (node.parent.kind) { + case 201: + var classSymbol = getSymbolOfNode(node.parent); + var classConstructorType = getTypeOfSymbol(classSymbol); + var classDecoratorType = instantiateSingleCallFunctionType(globalClassDecoratorType, [classConstructorType]); + checkTypeAssignableTo(exprType, classDecoratorType, node); + break; + case 132: + checkTypeAssignableTo(exprType, globalPropertyDecoratorType, node); + break; + case 134: + case 136: + case 137: + var methodType = getTypeOfNode(node.parent); + var methodDecoratorType = instantiateSingleCallFunctionType(globalMethodDecoratorType, [methodType]); + checkTypeAssignableTo(exprType, methodDecoratorType, node); + break; + case 129: + checkTypeAssignableTo(exprType, globalParameterDecoratorType, node); + break; + } + } + function checkDecorators(node) { + if (!node.decorators) { + return; + } + switch (node.kind) { + case 201: + case 134: + case 136: + case 137: + case 132: + case 129: + emitDecorate = true; + break; + default: + return; + } + ts.forEach(node.decorators, checkDecorator); + } + function checkFunctionDeclaration(node) { + if (produceDiagnostics) { + checkFunctionLikeDeclaration(node) || + checkGrammarDisallowedModifiersInBlockOrObjectLiteralExpression(node) || + checkGrammarFunctionName(node.name) || + checkGrammarForGenerator(node); + checkCollisionWithCapturedSuperVariable(node, node.name); + checkCollisionWithCapturedThisVariable(node, node.name); + checkCollisionWithRequireExportsInGeneratedCode(node, node.name); + } + } + function checkFunctionLikeDeclaration(node) { + checkDecorators(node); + checkSignatureDeclaration(node); + if (node.name && node.name.kind === 127) { + checkComputedPropertyName(node.name); + } + if (!ts.hasDynamicName(node)) { + var symbol = getSymbolOfNode(node); + var localSymbol = node.localSymbol || symbol; + var firstDeclaration = ts.getDeclarationOfKind(localSymbol, node.kind); + if (node === firstDeclaration) { + checkFunctionOrConstructorSymbol(localSymbol); + } + if (symbol.parent) { + if (ts.getDeclarationOfKind(symbol, node.kind) === node) { + checkFunctionOrConstructorSymbol(symbol); + } + } + } + checkSourceElement(node.body); + if (node.type && !isAccessor(node.kind)) { + checkIfNonVoidFunctionHasReturnExpressionsOrSingleThrowStatment(node, getTypeFromTypeNodeOrHeritageClauseElement(node.type)); + } + if (compilerOptions.noImplicitAny && ts.nodeIsMissing(node.body) && !node.type && !isPrivateWithinAmbient(node)) { + reportImplicitAnyError(node, anyType); + } + } + function checkBlock(node) { + if (node.kind === 179) { + checkGrammarStatementInAmbientContext(node); + } + ts.forEach(node.statements, checkSourceElement); + if (ts.isFunctionBlock(node) || node.kind === 206) { + checkFunctionExpressionBodies(node); + } + } + function checkCollisionWithArgumentsInGeneratedCode(node) { + if (!ts.hasRestParameters(node) || ts.isInAmbientContext(node) || ts.nodeIsMissing(node.body)) { + return; + } + ts.forEach(node.parameters, function (p) { + if (p.name && !ts.isBindingPattern(p.name) && p.name.text === argumentsSymbol.name) { + error(p, ts.Diagnostics.Duplicate_identifier_arguments_Compiler_uses_arguments_to_initialize_rest_parameters); + } + }); + } + function needCollisionCheckForIdentifier(node, identifier, name) { + if (!(identifier && identifier.text === name)) { + return false; + } + if (node.kind === 132 || + node.kind === 131 || + node.kind === 134 || + node.kind === 133 || + node.kind === 136 || + node.kind === 137) { + return false; + } + if (ts.isInAmbientContext(node)) { + return false; + } + var root = getRootDeclaration(node); + if (root.kind === 129 && ts.nodeIsMissing(root.parent.body)) { + return false; + } + return true; + } + function checkCollisionWithCapturedThisVariable(node, name) { + if (needCollisionCheckForIdentifier(node, name, "_this")) { + potentialThisCollisions.push(node); + } + } + function checkIfThisIsCapturedInEnclosingScope(node) { + var current = node; + while (current) { + if (getNodeCheckFlags(current) & 4) { + var isDeclaration_1 = node.kind !== 65; + if (isDeclaration_1) { + error(node.name, ts.Diagnostics.Duplicate_identifier_this_Compiler_uses_variable_declaration_this_to_capture_this_reference); + } + else { + error(node, ts.Diagnostics.Expression_resolves_to_variable_declaration_this_that_compiler_uses_to_capture_this_reference); + } + return; + } + current = current.parent; + } + } + function checkCollisionWithCapturedSuperVariable(node, name) { + if (!needCollisionCheckForIdentifier(node, name, "_super")) { + return; + } + var enclosingClass = ts.getAncestor(node, 201); + if (!enclosingClass || ts.isInAmbientContext(enclosingClass)) { + return; + } + if (ts.getClassExtendsHeritageClauseElement(enclosingClass)) { + var isDeclaration_2 = node.kind !== 65; + if (isDeclaration_2) { + error(node, ts.Diagnostics.Duplicate_identifier_super_Compiler_uses_super_to_capture_base_class_reference); + } + else { + error(node, ts.Diagnostics.Expression_resolves_to_super_that_compiler_uses_to_capture_base_class_reference); + } + } + } + function checkCollisionWithRequireExportsInGeneratedCode(node, name) { + if (!needCollisionCheckForIdentifier(node, name, "require") && !needCollisionCheckForIdentifier(node, name, "exports")) { + return; + } + if (node.kind === 205 && ts.getModuleInstanceState(node) !== 1) { + return; + } + var parent = getDeclarationContainer(node); + if (parent.kind === 227 && ts.isExternalModule(parent)) { + error(name, ts.Diagnostics.Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_an_external_module, ts.declarationNameToString(name), ts.declarationNameToString(name)); + } + } + function checkVarDeclaredNamesNotShadowed(node) { + // - ScriptBody : StatementList + // It is a Syntax Error if any element of the LexicallyDeclaredNames of StatementList + // also occurs in the VarDeclaredNames of StatementList. + if ((ts.getCombinedNodeFlags(node) & 12288) !== 0 || isParameterDeclaration(node)) { + return; + } + if (node.kind === 198 && !node.initializer) { + return; + } + var symbol = getSymbolOfNode(node); + if (symbol.flags & 1) { + var localDeclarationSymbol = resolveName(node, node.name.text, 3, undefined, undefined); + if (localDeclarationSymbol && + localDeclarationSymbol !== symbol && + localDeclarationSymbol.flags & 2) { + if (getDeclarationFlagsFromSymbol(localDeclarationSymbol) & 12288) { + var varDeclList = ts.getAncestor(localDeclarationSymbol.valueDeclaration, 199); + var container = varDeclList.parent.kind === 180 && varDeclList.parent.parent + ? varDeclList.parent.parent + : undefined; + var namesShareScope = container && + (container.kind === 179 && ts.isFunctionLike(container.parent) || + container.kind === 206 || + container.kind === 205 || + container.kind === 227); + if (!namesShareScope) { + var name_9 = symbolToString(localDeclarationSymbol); + error(node, ts.Diagnostics.Cannot_initialize_outer_scoped_variable_0_in_the_same_scope_as_block_scoped_declaration_1, name_9, name_9); + } + } + } + } + } + function isParameterDeclaration(node) { + while (node.kind === 152) { + node = node.parent.parent; + } + return node.kind === 129; + } + function checkParameterInitializer(node) { + if (getRootDeclaration(node).kind !== 129) { + return; + } + var func = ts.getContainingFunction(node); + visit(node.initializer); + function visit(n) { + if (n.kind === 65) { + var referencedSymbol = getNodeLinks(n).resolvedSymbol; + if (referencedSymbol && referencedSymbol !== unknownSymbol && getSymbol(func.locals, referencedSymbol.name, 107455) === referencedSymbol) { + if (referencedSymbol.valueDeclaration.kind === 129) { + if (referencedSymbol.valueDeclaration === node) { + error(n, ts.Diagnostics.Parameter_0_cannot_be_referenced_in_its_initializer, ts.declarationNameToString(node.name)); + return; + } + if (referencedSymbol.valueDeclaration.pos < node.pos) { + return; + } + } + error(n, ts.Diagnostics.Initializer_of_parameter_0_cannot_reference_identifier_1_declared_after_it, ts.declarationNameToString(node.name), ts.declarationNameToString(n)); + } + } + else { + ts.forEachChild(n, visit); + } + } + } + function checkVariableLikeDeclaration(node) { + checkDecorators(node); + checkSourceElement(node.type); + if (node.name.kind === 127) { + checkComputedPropertyName(node.name); + if (node.initializer) { + checkExpressionCached(node.initializer); + } + } + if (ts.isBindingPattern(node.name)) { + ts.forEach(node.name.elements, checkSourceElement); + } + if (node.initializer && getRootDeclaration(node).kind === 129 && ts.nodeIsMissing(ts.getContainingFunction(node).body)) { + error(node, ts.Diagnostics.A_parameter_initializer_is_only_allowed_in_a_function_or_constructor_implementation); + return; + } + if (ts.isBindingPattern(node.name)) { + if (node.initializer) { + checkTypeAssignableTo(checkExpressionCached(node.initializer), getWidenedTypeForVariableLikeDeclaration(node), node, undefined); + checkParameterInitializer(node); + } + return; + } + var symbol = getSymbolOfNode(node); + var type = getTypeOfVariableOrParameterOrProperty(symbol); + if (node === symbol.valueDeclaration) { + if (node.initializer) { + checkTypeAssignableTo(checkExpressionCached(node.initializer), type, node, undefined); + checkParameterInitializer(node); + } + } + else { + var declarationType = getWidenedTypeForVariableLikeDeclaration(node); + if (type !== unknownType && declarationType !== unknownType && !isTypeIdenticalTo(type, declarationType)) { + error(node.name, ts.Diagnostics.Subsequent_variable_declarations_must_have_the_same_type_Variable_0_must_be_of_type_1_but_here_has_type_2, ts.declarationNameToString(node.name), typeToString(type), typeToString(declarationType)); + } + if (node.initializer) { + checkTypeAssignableTo(checkExpressionCached(node.initializer), declarationType, node, undefined); + } + } + if (node.kind !== 132 && node.kind !== 131) { + checkExportsOnMergedDeclarations(node); + if (node.kind === 198 || node.kind === 152) { + checkVarDeclaredNamesNotShadowed(node); + } + checkCollisionWithCapturedSuperVariable(node, node.name); + checkCollisionWithCapturedThisVariable(node, node.name); + checkCollisionWithRequireExportsInGeneratedCode(node, node.name); + } + } + function checkVariableDeclaration(node) { + checkGrammarVariableDeclaration(node); + return checkVariableLikeDeclaration(node); + } + function checkBindingElement(node) { + checkGrammarBindingElement(node); + return checkVariableLikeDeclaration(node); + } + function checkVariableStatement(node) { + checkGrammarDecorators(node) || checkGrammarDisallowedModifiersInBlockOrObjectLiteralExpression(node) || checkGrammarModifiers(node) || checkGrammarVariableDeclarationList(node.declarationList) || checkGrammarForDisallowedLetOrConstStatement(node); + ts.forEach(node.declarationList.declarations, checkSourceElement); + } + function checkGrammarDisallowedModifiersInBlockOrObjectLiteralExpression(node) { + if (node.modifiers) { + if (inBlockOrObjectLiteralExpression(node)) { + return grammarErrorOnFirstToken(node, ts.Diagnostics.Modifiers_cannot_appear_here); + } + } + } + function inBlockOrObjectLiteralExpression(node) { + while (node) { + if (node.kind === 179 || node.kind === 154) { + return true; + } + node = node.parent; + } + } + function checkExpressionStatement(node) { + checkGrammarStatementInAmbientContext(node); + checkExpression(node.expression); + } + function checkIfStatement(node) { + checkGrammarStatementInAmbientContext(node); + checkExpression(node.expression); + checkSourceElement(node.thenStatement); + checkSourceElement(node.elseStatement); + } + function checkDoStatement(node) { + checkGrammarStatementInAmbientContext(node); + checkSourceElement(node.statement); + checkExpression(node.expression); + } + function checkWhileStatement(node) { + checkGrammarStatementInAmbientContext(node); + checkExpression(node.expression); + checkSourceElement(node.statement); + } + function checkForStatement(node) { + if (!checkGrammarStatementInAmbientContext(node)) { + if (node.initializer && node.initializer.kind == 199) { + checkGrammarVariableDeclarationList(node.initializer); + } + } + if (node.initializer) { + if (node.initializer.kind === 199) { + ts.forEach(node.initializer.declarations, checkVariableDeclaration); + } + else { + checkExpression(node.initializer); + } + } + if (node.condition) + checkExpression(node.condition); + if (node.iterator) + checkExpression(node.iterator); + checkSourceElement(node.statement); + } + function checkForOfStatement(node) { + checkGrammarForInOrForOfStatement(node); + if (node.initializer.kind === 199) { + checkForInOrForOfVariableDeclaration(node); + } + else { + var varExpr = node.initializer; + var iteratedType = checkRightHandSideOfForOf(node.expression); + if (varExpr.kind === 153 || varExpr.kind === 154) { + checkDestructuringAssignment(varExpr, iteratedType || unknownType); + } + else { + var leftType = checkExpression(varExpr); + checkReferenceExpression(varExpr, ts.Diagnostics.Invalid_left_hand_side_in_for_of_statement, ts.Diagnostics.The_left_hand_side_of_a_for_of_statement_cannot_be_a_previously_defined_constant); + if (iteratedType) { + checkTypeAssignableTo(iteratedType, leftType, varExpr, undefined); + } + } + } + checkSourceElement(node.statement); + } + function checkForInStatement(node) { + checkGrammarForInOrForOfStatement(node); + if (node.initializer.kind === 199) { + var variable = node.initializer.declarations[0]; + if (variable && ts.isBindingPattern(variable.name)) { + error(variable.name, ts.Diagnostics.The_left_hand_side_of_a_for_in_statement_cannot_be_a_destructuring_pattern); + } + checkForInOrForOfVariableDeclaration(node); + } + else { + var varExpr = node.initializer; + var leftType = checkExpression(varExpr); + if (varExpr.kind === 153 || varExpr.kind === 154) { + error(varExpr, ts.Diagnostics.The_left_hand_side_of_a_for_in_statement_cannot_be_a_destructuring_pattern); + } + else if (!allConstituentTypesHaveKind(leftType, 1 | 258)) { + error(varExpr, ts.Diagnostics.The_left_hand_side_of_a_for_in_statement_must_be_of_type_string_or_any); + } + else { + checkReferenceExpression(varExpr, ts.Diagnostics.Invalid_left_hand_side_in_for_in_statement, ts.Diagnostics.The_left_hand_side_of_a_for_in_statement_cannot_be_a_previously_defined_constant); + } + } + var rightType = checkExpression(node.expression); + if (!allConstituentTypesHaveKind(rightType, 1 | 48128 | 512)) { + error(node.expression, ts.Diagnostics.The_right_hand_side_of_a_for_in_statement_must_be_of_type_any_an_object_type_or_a_type_parameter); + } + checkSourceElement(node.statement); + } + function checkForInOrForOfVariableDeclaration(iterationStatement) { + var variableDeclarationList = iterationStatement.initializer; + if (variableDeclarationList.declarations.length >= 1) { + var decl = variableDeclarationList.declarations[0]; + checkVariableDeclaration(decl); + } + } + function checkRightHandSideOfForOf(rhsExpression) { + var expressionType = getTypeOfExpression(rhsExpression); + return languageVersion >= 2 + ? checkIteratedType(expressionType, rhsExpression) + : checkElementTypeOfArrayOrString(expressionType, rhsExpression); + } + function checkIteratedType(iterable, expressionForError) { + ts.Debug.assert(languageVersion >= 2); + var iteratedType = getIteratedType(iterable, expressionForError); + if (expressionForError && iteratedType) { + var completeIterableType = globalIterableType !== emptyObjectType + ? createTypeReference(globalIterableType, [iteratedType]) + : emptyObjectType; + checkTypeAssignableTo(iterable, completeIterableType, expressionForError); + } + return iteratedType; + function getIteratedType(iterable, expressionForError) { + // We want to treat type as an iterable, and get the type it is an iterable of. The iterable + // must have the following structure (annotated with the names of the variables below): + // + // { // iterable + // [Symbol.iterator]: { // iteratorFunction + // (): { // iterator + // next: { // iteratorNextFunction + // (): { // iteratorNextResult + // value: T // iteratorNextValue + // } + // } + // } + // } + // } + // + // T is the type we are after. At every level that involves analyzing return types + // of signatures, we union the return types of all the signatures. + // + // Another thing to note is that at any step of this process, we could run into a dead end, + // meaning either the property is missing, or we run into the anyType. If either of these things + // happens, we return undefined to signal that we could not find the iterated type. If a property + // is missing, and the previous step did not result in 'any', then we also give an error if the + // caller requested it. Then the caller can decide what to do in the case where there is no iterated + // type. This is different from returning anyType, because that would signify that we have matched the + // whole pattern and that T (above) is 'any'. + if (allConstituentTypesHaveKind(iterable, 1)) { + return undefined; + } + var iteratorFunction = getTypeOfPropertyOfType(iterable, ts.getPropertyNameForKnownSymbolName("iterator")); + if (iteratorFunction && allConstituentTypesHaveKind(iteratorFunction, 1)) { + return undefined; + } + var iteratorFunctionSignatures = iteratorFunction ? getSignaturesOfType(iteratorFunction, 0) : emptyArray; + if (iteratorFunctionSignatures.length === 0) { + if (expressionForError) { + error(expressionForError, ts.Diagnostics.The_right_hand_side_of_a_for_of_statement_must_have_a_Symbol_iterator_method_that_returns_an_iterator); + } + return undefined; + } + var iterator = getUnionType(ts.map(iteratorFunctionSignatures, getReturnTypeOfSignature)); + if (allConstituentTypesHaveKind(iterator, 1)) { + return undefined; + } + var iteratorNextFunction = getTypeOfPropertyOfType(iterator, "next"); + if (iteratorNextFunction && allConstituentTypesHaveKind(iteratorNextFunction, 1)) { + return undefined; + } + var iteratorNextFunctionSignatures = iteratorNextFunction ? getSignaturesOfType(iteratorNextFunction, 0) : emptyArray; + if (iteratorNextFunctionSignatures.length === 0) { + if (expressionForError) { + error(expressionForError, ts.Diagnostics.The_iterator_returned_by_the_right_hand_side_of_a_for_of_statement_must_have_a_next_method); + } + return undefined; + } + var iteratorNextResult = getUnionType(ts.map(iteratorNextFunctionSignatures, getReturnTypeOfSignature)); + if (allConstituentTypesHaveKind(iteratorNextResult, 1)) { + return undefined; + } + var iteratorNextValue = getTypeOfPropertyOfType(iteratorNextResult, "value"); + if (!iteratorNextValue) { + if (expressionForError) { + error(expressionForError, ts.Diagnostics.The_type_returned_by_the_next_method_of_an_iterator_must_have_a_value_property); + } + return undefined; + } + return iteratorNextValue; + } + } + function checkElementTypeOfArrayOrString(arrayOrStringType, expressionForError) { + ts.Debug.assert(languageVersion < 2); + var arrayType = removeTypesFromUnionType(arrayOrStringType, 258, true, true); + var hasStringConstituent = arrayOrStringType !== arrayType; + var reportedError = false; + if (hasStringConstituent) { + if (languageVersion < 1) { + error(expressionForError, ts.Diagnostics.Using_a_string_in_a_for_of_statement_is_only_supported_in_ECMAScript_5_and_higher); + reportedError = true; + } + if (arrayType === emptyObjectType) { + return stringType; + } + } + if (!isArrayLikeType(arrayType)) { + if (!reportedError) { + var diagnostic = hasStringConstituent + ? ts.Diagnostics.Type_0_is_not_an_array_type + : ts.Diagnostics.Type_0_is_not_an_array_type_or_a_string_type; + error(expressionForError, diagnostic, typeToString(arrayType)); + } + return hasStringConstituent ? stringType : unknownType; + } + var arrayElementType = getIndexTypeOfType(arrayType, 1) || unknownType; + if (hasStringConstituent) { + if (arrayElementType.flags & 258) { + return stringType; + } + return getUnionType([arrayElementType, stringType]); + } + return arrayElementType; + } + function checkBreakOrContinueStatement(node) { + checkGrammarStatementInAmbientContext(node) || checkGrammarBreakOrContinueStatement(node); + } + function isGetAccessorWithAnnotatatedSetAccessor(node) { + return !!(node.kind === 136 && getSetAccessorTypeAnnotationNode(ts.getDeclarationOfKind(node.symbol, 137))); + } + function checkReturnStatement(node) { + if (!checkGrammarStatementInAmbientContext(node)) { + var functionBlock = ts.getContainingFunction(node); + if (!functionBlock) { + grammarErrorOnFirstToken(node, ts.Diagnostics.A_return_statement_can_only_be_used_within_a_function_body); + } + } + if (node.expression) { + var func = ts.getContainingFunction(node); + if (func) { + var returnType = getReturnTypeOfSignature(getSignatureFromDeclaration(func)); + var exprType = checkExpressionCached(node.expression); + if (func.kind === 137) { + error(node.expression, ts.Diagnostics.Setters_cannot_return_a_value); + } + else { + if (func.kind === 135) { + if (!isTypeAssignableTo(exprType, returnType)) { + error(node.expression, ts.Diagnostics.Return_type_of_constructor_signature_must_be_assignable_to_the_instance_type_of_the_class); + } + } + else if (func.type || isGetAccessorWithAnnotatatedSetAccessor(func)) { + checkTypeAssignableTo(exprType, returnType, node.expression, undefined); + } + } + } + } + } + function checkWithStatement(node) { + if (!checkGrammarStatementInAmbientContext(node)) { + if (node.parserContextFlags & 1) { + grammarErrorOnFirstToken(node, ts.Diagnostics.with_statements_are_not_allowed_in_strict_mode); + } + } + checkExpression(node.expression); + error(node.expression, ts.Diagnostics.All_symbols_within_a_with_block_will_be_resolved_to_any); + } + function checkSwitchStatement(node) { + checkGrammarStatementInAmbientContext(node); + var firstDefaultClause; + var hasDuplicateDefaultClause = false; + var expressionType = checkExpression(node.expression); + ts.forEach(node.caseBlock.clauses, function (clause) { + if (clause.kind === 221 && !hasDuplicateDefaultClause) { + if (firstDefaultClause === undefined) { + firstDefaultClause = clause; + } + else { + var sourceFile = ts.getSourceFileOfNode(node); + var start = ts.skipTrivia(sourceFile.text, clause.pos); + var end = clause.statements.length > 0 ? clause.statements[0].pos : clause.end; + grammarErrorAtPos(sourceFile, start, end - start, ts.Diagnostics.A_default_clause_cannot_appear_more_than_once_in_a_switch_statement); + hasDuplicateDefaultClause = true; + } + } + if (produceDiagnostics && clause.kind === 220) { + var caseClause = clause; + var caseType = checkExpression(caseClause.expression); + if (!isTypeAssignableTo(expressionType, caseType)) { + checkTypeAssignableTo(caseType, expressionType, caseClause.expression, undefined); + } + } + ts.forEach(clause.statements, checkSourceElement); + }); + } + function checkLabeledStatement(node) { + if (!checkGrammarStatementInAmbientContext(node)) { + var current = node.parent; + while (current) { + if (ts.isFunctionLike(current)) { + break; + } + if (current.kind === 194 && current.label.text === node.label.text) { + var sourceFile = ts.getSourceFileOfNode(node); + grammarErrorOnNode(node.label, ts.Diagnostics.Duplicate_label_0, ts.getTextOfNodeFromSourceText(sourceFile.text, node.label)); + break; + } + current = current.parent; + } + } + checkSourceElement(node.statement); + } + function checkThrowStatement(node) { + if (!checkGrammarStatementInAmbientContext(node)) { + if (node.expression === undefined) { + grammarErrorAfterFirstToken(node, ts.Diagnostics.Line_break_not_permitted_here); + } + } + if (node.expression) { + checkExpression(node.expression); + } + } + function checkTryStatement(node) { + checkGrammarStatementInAmbientContext(node); + checkBlock(node.tryBlock); + var catchClause = node.catchClause; + if (catchClause) { + if (catchClause.variableDeclaration) { + if (catchClause.variableDeclaration.name.kind !== 65) { + grammarErrorOnFirstToken(catchClause.variableDeclaration.name, ts.Diagnostics.Catch_clause_variable_name_must_be_an_identifier); + } + else if (catchClause.variableDeclaration.type) { + grammarErrorOnFirstToken(catchClause.variableDeclaration.type, ts.Diagnostics.Catch_clause_variable_cannot_have_a_type_annotation); + } + else if (catchClause.variableDeclaration.initializer) { + grammarErrorOnFirstToken(catchClause.variableDeclaration.initializer, ts.Diagnostics.Catch_clause_variable_cannot_have_an_initializer); + } + else { + var identifierName = catchClause.variableDeclaration.name.text; + var locals = catchClause.block.locals; + if (locals && ts.hasProperty(locals, identifierName)) { + var localSymbol = locals[identifierName]; + if (localSymbol && (localSymbol.flags & 2) !== 0) { + grammarErrorOnNode(localSymbol.valueDeclaration, ts.Diagnostics.Cannot_redeclare_identifier_0_in_catch_clause, identifierName); + } + } + checkGrammarEvalOrArgumentsInStrictMode(node, catchClause.variableDeclaration.name); + } + } + checkBlock(catchClause.block); + } + if (node.finallyBlock) { + checkBlock(node.finallyBlock); + } + } + function checkIndexConstraints(type) { + var declaredNumberIndexer = getIndexDeclarationOfSymbol(type.symbol, 1); + var declaredStringIndexer = getIndexDeclarationOfSymbol(type.symbol, 0); + var stringIndexType = getIndexTypeOfType(type, 0); + var numberIndexType = getIndexTypeOfType(type, 1); + if (stringIndexType || numberIndexType) { + ts.forEach(getPropertiesOfObjectType(type), function (prop) { + var propType = getTypeOfSymbol(prop); + checkIndexConstraintForProperty(prop, propType, type, declaredStringIndexer, stringIndexType, 0); + checkIndexConstraintForProperty(prop, propType, type, declaredNumberIndexer, numberIndexType, 1); + }); + if (type.flags & 1024 && type.symbol.valueDeclaration.kind === 201) { + var classDeclaration = type.symbol.valueDeclaration; + for (var _i = 0, _a = classDeclaration.members; _i < _a.length; _i++) { + var member = _a[_i]; + if (!(member.flags & 128) && ts.hasDynamicName(member)) { + var propType = getTypeOfSymbol(member.symbol); + checkIndexConstraintForProperty(member.symbol, propType, type, declaredStringIndexer, stringIndexType, 0); + checkIndexConstraintForProperty(member.symbol, propType, type, declaredNumberIndexer, numberIndexType, 1); + } + } + } + } + var errorNode; + if (stringIndexType && numberIndexType) { + errorNode = declaredNumberIndexer || declaredStringIndexer; + if (!errorNode && (type.flags & 2048)) { + var someBaseTypeHasBothIndexers = ts.forEach(type.baseTypes, function (base) { return getIndexTypeOfType(base, 0) && getIndexTypeOfType(base, 1); }); + errorNode = someBaseTypeHasBothIndexers ? undefined : type.symbol.declarations[0]; + } + } + if (errorNode && !isTypeAssignableTo(numberIndexType, stringIndexType)) { + error(errorNode, ts.Diagnostics.Numeric_index_type_0_is_not_assignable_to_string_index_type_1, typeToString(numberIndexType), typeToString(stringIndexType)); + } + function checkIndexConstraintForProperty(prop, propertyType, containingType, indexDeclaration, indexType, indexKind) { + if (!indexType) { + return; + } + if (indexKind === 1 && !isNumericName(prop.valueDeclaration.name)) { + return; + } + var errorNode; + if (prop.valueDeclaration.name.kind === 127 || prop.parent === containingType.symbol) { + errorNode = prop.valueDeclaration; + } + else if (indexDeclaration) { + errorNode = indexDeclaration; + } + else if (containingType.flags & 2048) { + var someBaseClassHasBothPropertyAndIndexer = ts.forEach(containingType.baseTypes, function (base) { return getPropertyOfObjectType(base, prop.name) && getIndexTypeOfType(base, indexKind); }); + errorNode = someBaseClassHasBothPropertyAndIndexer ? undefined : containingType.symbol.declarations[0]; + } + if (errorNode && !isTypeAssignableTo(propertyType, indexType)) { + var errorMessage = indexKind === 0 + ? ts.Diagnostics.Property_0_of_type_1_is_not_assignable_to_string_index_type_2 + : ts.Diagnostics.Property_0_of_type_1_is_not_assignable_to_numeric_index_type_2; + error(errorNode, errorMessage, symbolToString(prop), typeToString(propertyType), typeToString(indexType)); + } + } + } + function checkTypeNameIsReserved(name, message) { + switch (name.text) { + case "any": + case "number": + case "boolean": + case "string": + case "symbol": + case "void": + error(name, message, name.text); + } + } + function checkTypeParameters(typeParameterDeclarations) { + if (typeParameterDeclarations) { + for (var i = 0, n = typeParameterDeclarations.length; i < n; i++) { + var node = typeParameterDeclarations[i]; + checkTypeParameter(node); + if (produceDiagnostics) { + for (var j = 0; j < i; j++) { + if (typeParameterDeclarations[j].symbol === node.symbol) { + error(node.name, ts.Diagnostics.Duplicate_identifier_0, ts.declarationNameToString(node.name)); + } + } + } + } + } + } + function checkClassExpression(node) { + grammarErrorOnNode(node, ts.Diagnostics.class_expressions_are_not_currently_supported); + ts.forEach(node.members, checkSourceElement); + return unknownType; + } + function checkClassDeclaration(node) { + if (node.parent.kind !== 206 && node.parent.kind !== 227) { + grammarErrorOnNode(node, ts.Diagnostics.class_declarations_are_only_supported_directly_inside_a_module_or_as_a_top_level_declaration); + } + checkGrammarClassDeclarationHeritageClauses(node); + checkDecorators(node); + if (node.name) { + checkTypeNameIsReserved(node.name, ts.Diagnostics.Class_name_cannot_be_0); + checkCollisionWithCapturedThisVariable(node, node.name); + checkCollisionWithRequireExportsInGeneratedCode(node, node.name); + } + checkTypeParameters(node.typeParameters); + checkExportsOnMergedDeclarations(node); + var symbol = getSymbolOfNode(node); + var type = getDeclaredTypeOfSymbol(symbol); + var staticType = getTypeOfSymbol(symbol); + var baseTypeNode = ts.getClassExtendsHeritageClauseElement(node); + if (baseTypeNode) { + if (!ts.isSupportedHeritageClauseElement(baseTypeNode)) { + error(baseTypeNode.expression, ts.Diagnostics.Only_identifiers_Slashqualified_names_with_optional_type_arguments_are_currently_supported_in_a_class_extends_clauses); + } + emitExtends = emitExtends || !ts.isInAmbientContext(node); + checkHeritageClauseElement(baseTypeNode); + } + if (type.baseTypes.length) { + if (produceDiagnostics) { + var baseType = type.baseTypes[0]; + checkTypeAssignableTo(type, baseType, node.name || node, ts.Diagnostics.Class_0_incorrectly_extends_base_class_1); + var staticBaseType = getTypeOfSymbol(baseType.symbol); + checkTypeAssignableTo(staticType, getTypeWithoutConstructors(staticBaseType), node.name || node, ts.Diagnostics.Class_static_side_0_incorrectly_extends_base_class_static_side_1); + if (baseType.symbol !== resolveEntityName(baseTypeNode.expression, 107455)) { + error(baseTypeNode, ts.Diagnostics.Type_name_0_in_extends_clause_does_not_reference_constructor_function_for_0, typeToString(baseType)); + } + checkKindsOfPropertyMemberOverrides(type, baseType); + } + } + if (type.baseTypes.length || (baseTypeNode && compilerOptions.separateCompilation)) { + checkExpressionOrQualifiedName(baseTypeNode.expression); + } + var implementedTypeNodes = ts.getClassImplementsHeritageClauseElements(node); + if (implementedTypeNodes) { + ts.forEach(implementedTypeNodes, function (typeRefNode) { + if (!ts.isSupportedHeritageClauseElement(typeRefNode)) { + error(typeRefNode.expression, ts.Diagnostics.A_class_can_only_implement_an_identifier_Slashqualified_name_with_optional_type_arguments); + } + checkHeritageClauseElement(typeRefNode); + if (produceDiagnostics) { + var t = getTypeFromHeritageClauseElement(typeRefNode); + if (t !== unknownType) { + var declaredType = (t.flags & 4096) ? t.target : t; + if (declaredType.flags & (1024 | 2048)) { + checkTypeAssignableTo(type, t, node.name || node, ts.Diagnostics.Class_0_incorrectly_implements_interface_1); + } + else { + error(typeRefNode, ts.Diagnostics.A_class_may_only_implement_another_class_or_interface); + } + } + } + }); + } + ts.forEach(node.members, checkSourceElement); + if (produceDiagnostics) { + checkIndexConstraints(type); + checkTypeForDuplicateIndexSignatures(node); + } + } + function getTargetSymbol(s) { + return s.flags & 16777216 ? getSymbolLinks(s).target : s; + } + function checkKindsOfPropertyMemberOverrides(type, baseType) { + // TypeScript 1.0 spec (April 2014): 8.2.3 + // A derived class inherits all members from its base class it doesn't override. + // Inheritance means that a derived class implicitly contains all non - overridden members of the base class. + // Both public and private property members are inherited, but only public property members can be overridden. + // A property member in a derived class is said to override a property member in a base class + // when the derived class property member has the same name and kind(instance or static) + // as the base class property member. + // The type of an overriding property member must be assignable(section 3.8.4) + // to the type of the overridden property member, or otherwise a compile - time error occurs. + // Base class instance member functions can be overridden by derived class instance member functions, + // but not by other kinds of members. + // Base class instance member variables and accessors can be overridden by + // derived class instance member variables and accessors, but not by other kinds of members. + var baseProperties = getPropertiesOfObjectType(baseType); + for (var _i = 0; _i < baseProperties.length; _i++) { + var baseProperty = baseProperties[_i]; + var base = getTargetSymbol(baseProperty); + if (base.flags & 134217728) { + continue; + } + var derived = getTargetSymbol(getPropertyOfObjectType(type, base.name)); + if (derived) { + var baseDeclarationFlags = getDeclarationFlagsFromSymbol(base); + var derivedDeclarationFlags = getDeclarationFlagsFromSymbol(derived); + if ((baseDeclarationFlags & 32) || (derivedDeclarationFlags & 32)) { + continue; + } + if ((baseDeclarationFlags & 128) !== (derivedDeclarationFlags & 128)) { + continue; + } + if ((base.flags & derived.flags & 8192) || ((base.flags & 98308) && (derived.flags & 98308))) { + continue; + } + var errorMessage = void 0; + if (base.flags & 8192) { + if (derived.flags & 98304) { + errorMessage = ts.Diagnostics.Class_0_defines_instance_member_function_1_but_extended_class_2_defines_it_as_instance_member_accessor; + } + else { + ts.Debug.assert((derived.flags & 4) !== 0); + errorMessage = ts.Diagnostics.Class_0_defines_instance_member_function_1_but_extended_class_2_defines_it_as_instance_member_property; + } + } + else if (base.flags & 4) { + ts.Debug.assert((derived.flags & 8192) !== 0); + errorMessage = ts.Diagnostics.Class_0_defines_instance_member_property_1_but_extended_class_2_defines_it_as_instance_member_function; + } + else { + ts.Debug.assert((base.flags & 98304) !== 0); + ts.Debug.assert((derived.flags & 8192) !== 0); + errorMessage = ts.Diagnostics.Class_0_defines_instance_member_accessor_1_but_extended_class_2_defines_it_as_instance_member_function; + } + error(derived.valueDeclaration.name, errorMessage, typeToString(baseType), symbolToString(base), typeToString(type)); + } + } + } + function isAccessor(kind) { + return kind === 136 || kind === 137; + } + function areTypeParametersIdentical(list1, list2) { + if (!list1 && !list2) { + return true; + } + if (!list1 || !list2 || list1.length !== list2.length) { + return false; + } + for (var i = 0, len = list1.length; i < len; i++) { + var tp1 = list1[i]; + var tp2 = list2[i]; + if (tp1.name.text !== tp2.name.text) { + return false; + } + if (!tp1.constraint && !tp2.constraint) { + continue; + } + if (!tp1.constraint || !tp2.constraint) { + return false; + } + if (!isTypeIdenticalTo(getTypeFromTypeNodeOrHeritageClauseElement(tp1.constraint), getTypeFromTypeNodeOrHeritageClauseElement(tp2.constraint))) { + return false; + } + } + return true; + } + function checkInheritedPropertiesAreIdentical(type, typeNode) { + if (!type.baseTypes.length || type.baseTypes.length === 1) { + return true; + } + var seen = {}; + ts.forEach(type.declaredProperties, function (p) { seen[p.name] = { prop: p, containingType: type }; }); + var ok = true; + for (var _i = 0, _a = type.baseTypes; _i < _a.length; _i++) { + var base = _a[_i]; + var properties = getPropertiesOfObjectType(base); + for (var _b = 0; _b < properties.length; _b++) { + var prop = properties[_b]; + if (!ts.hasProperty(seen, prop.name)) { + seen[prop.name] = { prop: prop, containingType: base }; + } + else { + var existing = seen[prop.name]; + var isInheritedProperty = existing.containingType !== type; + if (isInheritedProperty && !isPropertyIdenticalTo(existing.prop, prop)) { + ok = false; + var typeName1 = typeToString(existing.containingType); + var typeName2 = typeToString(base); + var errorInfo = ts.chainDiagnosticMessages(undefined, ts.Diagnostics.Named_property_0_of_types_1_and_2_are_not_identical, symbolToString(prop), typeName1, typeName2); + errorInfo = ts.chainDiagnosticMessages(errorInfo, ts.Diagnostics.Interface_0_cannot_simultaneously_extend_types_1_and_2, typeToString(type), typeName1, typeName2); + diagnostics.add(ts.createDiagnosticForNodeFromMessageChain(typeNode, errorInfo)); + } + } + } + } + return ok; + } + function checkInterfaceDeclaration(node) { + checkGrammarDecorators(node) || checkGrammarModifiers(node) || checkGrammarInterfaceDeclaration(node); + checkTypeParameters(node.typeParameters); + if (produceDiagnostics) { + checkTypeNameIsReserved(node.name, ts.Diagnostics.Interface_name_cannot_be_0); + checkExportsOnMergedDeclarations(node); + var symbol = getSymbolOfNode(node); + var firstInterfaceDecl = ts.getDeclarationOfKind(symbol, 202); + if (symbol.declarations.length > 1) { + if (node !== firstInterfaceDecl && !areTypeParametersIdentical(firstInterfaceDecl.typeParameters, node.typeParameters)) { + error(node.name, ts.Diagnostics.All_declarations_of_an_interface_must_have_identical_type_parameters); + } + } + if (node === firstInterfaceDecl) { + var type = getDeclaredTypeOfSymbol(symbol); + if (checkInheritedPropertiesAreIdentical(type, node.name)) { + ts.forEach(type.baseTypes, function (baseType) { + checkTypeAssignableTo(type, baseType, node.name, ts.Diagnostics.Interface_0_incorrectly_extends_interface_1); + }); + checkIndexConstraints(type); + } + } + } + ts.forEach(ts.getInterfaceBaseTypeNodes(node), function (heritageElement) { + if (!ts.isSupportedHeritageClauseElement(heritageElement)) { + error(heritageElement.expression, ts.Diagnostics.An_interface_can_only_extend_an_identifier_Slashqualified_name_with_optional_type_arguments); + } + checkHeritageClauseElement(heritageElement); + }); + ts.forEach(node.members, checkSourceElement); + if (produceDiagnostics) { + checkTypeForDuplicateIndexSignatures(node); + } + } + function checkTypeAliasDeclaration(node) { + checkGrammarDecorators(node) || checkGrammarModifiers(node); + checkTypeNameIsReserved(node.name, ts.Diagnostics.Type_alias_name_cannot_be_0); + checkSourceElement(node.type); + } + function computeEnumMemberValues(node) { + var nodeLinks = getNodeLinks(node); + if (!(nodeLinks.flags & 128)) { + var enumSymbol = getSymbolOfNode(node); + var enumType = getDeclaredTypeOfSymbol(enumSymbol); + var autoValue = 0; + var ambient = ts.isInAmbientContext(node); + var enumIsConst = ts.isConst(node); + ts.forEach(node.members, function (member) { + if (member.name.kind !== 127 && isNumericLiteralName(member.name.text)) { + error(member.name, ts.Diagnostics.An_enum_member_cannot_have_a_numeric_name); + } + var initializer = member.initializer; + if (initializer) { + autoValue = getConstantValueForEnumMemberInitializer(initializer); + if (autoValue === undefined) { + if (enumIsConst) { + error(initializer, ts.Diagnostics.In_const_enum_declarations_member_initializer_must_be_constant_expression); + } + else if (!ambient) { + checkTypeAssignableTo(checkExpression(initializer), enumType, initializer, undefined); + } + } + else if (enumIsConst) { + if (isNaN(autoValue)) { + error(initializer, ts.Diagnostics.const_enum_member_initializer_was_evaluated_to_disallowed_value_NaN); + } + else if (!isFinite(autoValue)) { + error(initializer, ts.Diagnostics.const_enum_member_initializer_was_evaluated_to_a_non_finite_value); + } + } + } + else if (ambient && !enumIsConst) { + autoValue = undefined; + } + if (autoValue !== undefined) { + getNodeLinks(member).enumMemberValue = autoValue++; + } + }); + nodeLinks.flags |= 128; + } + function getConstantValueForEnumMemberInitializer(initializer) { + return evalConstant(initializer); + function evalConstant(e) { + switch (e.kind) { + case 167: + var value = evalConstant(e.operand); + if (value === undefined) { + return undefined; + } + switch (e.operator) { + case 33: return value; + case 34: return -value; + case 47: return ~value; + } + return undefined; + case 169: + var left = evalConstant(e.left); + if (left === undefined) { + return undefined; + } + var right = evalConstant(e.right); + if (right === undefined) { + return undefined; + } + switch (e.operatorToken.kind) { + case 44: return left | right; + case 43: return left & right; + case 41: return left >> right; + case 42: return left >>> right; + case 40: return left << right; + case 45: return left ^ right; + case 35: return left * right; + case 36: return left / right; + case 33: return left + right; + case 34: return left - right; + case 37: return left % right; + } + return undefined; + case 7: + return +e.text; + case 161: + return evalConstant(e.expression); + case 65: + case 156: + case 155: + var member = initializer.parent; + var currentType = getTypeOfSymbol(getSymbolOfNode(member.parent)); + var enumType; + var propertyName; + if (e.kind === 65) { + enumType = currentType; + propertyName = e.text; + } + else { + var expression; + if (e.kind === 156) { + if (e.argumentExpression === undefined || + e.argumentExpression.kind !== 8) { + return undefined; + } + expression = e.expression; + propertyName = e.argumentExpression.text; + } + else { + expression = e.expression; + propertyName = e.name.text; + } + var current = expression; + while (current) { + if (current.kind === 65) { + break; + } + else if (current.kind === 155) { + current = current.expression; + } + else { + return undefined; + } + } + enumType = checkExpression(expression); + if (!(enumType.symbol && (enumType.symbol.flags & 384))) { + return undefined; + } + } + if (propertyName === undefined) { + return undefined; + } + var property = getPropertyOfObjectType(enumType, propertyName); + if (!property || !(property.flags & 8)) { + return undefined; + } + var propertyDecl = property.valueDeclaration; + if (member === propertyDecl) { + return undefined; + } + if (!isDefinedBefore(propertyDecl, member)) { + return undefined; + } + return getNodeLinks(propertyDecl).enumMemberValue; + } + } + } + } + function checkEnumDeclaration(node) { + if (!produceDiagnostics) { + return; + } + checkGrammarDecorators(node) || checkGrammarModifiers(node) || checkGrammarEnumDeclaration(node); + checkTypeNameIsReserved(node.name, ts.Diagnostics.Enum_name_cannot_be_0); + checkCollisionWithCapturedThisVariable(node, node.name); + checkCollisionWithRequireExportsInGeneratedCode(node, node.name); + checkExportsOnMergedDeclarations(node); + computeEnumMemberValues(node); + var enumIsConst = ts.isConst(node); + if (compilerOptions.separateCompilation && enumIsConst && ts.isInAmbientContext(node)) { + error(node.name, ts.Diagnostics.Ambient_const_enums_are_not_allowed_when_the_separateCompilation_flag_is_provided); + } + var enumSymbol = getSymbolOfNode(node); + var firstDeclaration = ts.getDeclarationOfKind(enumSymbol, node.kind); + if (node === firstDeclaration) { + if (enumSymbol.declarations.length > 1) { + ts.forEach(enumSymbol.declarations, function (decl) { + if (ts.isConstEnumDeclaration(decl) !== enumIsConst) { + error(decl.name, ts.Diagnostics.Enum_declarations_must_all_be_const_or_non_const); + } + }); + } + var seenEnumMissingInitialInitializer = false; + ts.forEach(enumSymbol.declarations, function (declaration) { + if (declaration.kind !== 204) { + return false; + } + var enumDeclaration = declaration; + if (!enumDeclaration.members.length) { + return false; + } + var firstEnumMember = enumDeclaration.members[0]; + if (!firstEnumMember.initializer) { + if (seenEnumMissingInitialInitializer) { + error(firstEnumMember.name, ts.Diagnostics.In_an_enum_with_multiple_declarations_only_one_declaration_can_omit_an_initializer_for_its_first_enum_element); + } + else { + seenEnumMissingInitialInitializer = true; + } + } + }); + } + } + function getFirstNonAmbientClassOrFunctionDeclaration(symbol) { + var declarations = symbol.declarations; + for (var _i = 0; _i < declarations.length; _i++) { + var declaration = declarations[_i]; + if ((declaration.kind === 201 || (declaration.kind === 200 && ts.nodeIsPresent(declaration.body))) && !ts.isInAmbientContext(declaration)) { + return declaration; + } + } + return undefined; + } + function checkModuleDeclaration(node) { + if (produceDiagnostics) { + if (!checkGrammarDecorators(node) && !checkGrammarModifiers(node)) { + if (!ts.isInAmbientContext(node) && node.name.kind === 8) { + grammarErrorOnNode(node.name, ts.Diagnostics.Only_ambient_modules_can_use_quoted_names); + } + } + checkCollisionWithCapturedThisVariable(node, node.name); + checkCollisionWithRequireExportsInGeneratedCode(node, node.name); + checkExportsOnMergedDeclarations(node); + var symbol = getSymbolOfNode(node); + if (symbol.flags & 512 + && symbol.declarations.length > 1 + && !ts.isInAmbientContext(node) + && ts.isInstantiatedModule(node, compilerOptions.preserveConstEnums || compilerOptions.separateCompilation)) { + var classOrFunc = getFirstNonAmbientClassOrFunctionDeclaration(symbol); + if (classOrFunc) { + if (ts.getSourceFileOfNode(node) !== ts.getSourceFileOfNode(classOrFunc)) { + error(node.name, ts.Diagnostics.A_module_declaration_cannot_be_in_a_different_file_from_a_class_or_function_with_which_it_is_merged); + } + else if (node.pos < classOrFunc.pos) { + error(node.name, ts.Diagnostics.A_module_declaration_cannot_be_located_prior_to_a_class_or_function_with_which_it_is_merged); + } + } + } + if (node.name.kind === 8) { + if (!isGlobalSourceFile(node.parent)) { + error(node.name, ts.Diagnostics.Ambient_external_modules_cannot_be_nested_in_other_modules); + } + if (isExternalModuleNameRelative(node.name.text)) { + error(node.name, ts.Diagnostics.Ambient_external_module_declaration_cannot_specify_relative_module_name); + } + } + } + checkSourceElement(node.body); + } + function getFirstIdentifier(node) { + while (true) { + if (node.kind === 126) { + node = node.left; + } + else if (node.kind === 155) { + node = node.expression; + } + else { + break; + } + } + ts.Debug.assert(node.kind === 65); + return node; + } + function checkExternalImportOrExportDeclaration(node) { + var moduleName = ts.getExternalModuleName(node); + if (!ts.nodeIsMissing(moduleName) && moduleName.kind !== 8) { + error(moduleName, ts.Diagnostics.String_literal_expected); + return false; + } + var inAmbientExternalModule = node.parent.kind === 206 && node.parent.parent.name.kind === 8; + if (node.parent.kind !== 227 && !inAmbientExternalModule) { + error(moduleName, node.kind === 215 ? + ts.Diagnostics.Export_declarations_are_not_permitted_in_an_internal_module : + ts.Diagnostics.Import_declarations_in_an_internal_module_cannot_reference_an_external_module); + return false; + } + if (inAmbientExternalModule && isExternalModuleNameRelative(moduleName.text)) { + error(node, ts.Diagnostics.Import_or_export_declaration_in_an_ambient_external_module_declaration_cannot_reference_external_module_through_relative_external_module_name); + return false; + } + return true; + } + function checkAliasSymbol(node) { + var symbol = getSymbolOfNode(node); + var target = resolveAlias(symbol); + if (target !== unknownSymbol) { + var excludedMeanings = (symbol.flags & 107455 ? 107455 : 0) | + (symbol.flags & 793056 ? 793056 : 0) | + (symbol.flags & 1536 ? 1536 : 0); + if (target.flags & excludedMeanings) { + var message = node.kind === 217 ? + ts.Diagnostics.Export_declaration_conflicts_with_exported_declaration_of_0 : + ts.Diagnostics.Import_declaration_conflicts_with_local_declaration_of_0; + error(node, message, symbolToString(symbol)); + } + } + } + function checkImportBinding(node) { + checkCollisionWithCapturedThisVariable(node, node.name); + checkCollisionWithRequireExportsInGeneratedCode(node, node.name); + checkAliasSymbol(node); + } + function checkImportDeclaration(node) { + if (!checkGrammarDecorators(node) && !checkGrammarModifiers(node) && (node.flags & 499)) { + grammarErrorOnFirstToken(node, ts.Diagnostics.An_import_declaration_cannot_have_modifiers); + } + if (checkExternalImportOrExportDeclaration(node)) { + var importClause = node.importClause; + if (importClause) { + if (importClause.name) { + checkImportBinding(importClause); + } + if (importClause.namedBindings) { + if (importClause.namedBindings.kind === 211) { + checkImportBinding(importClause.namedBindings); + } + else { + ts.forEach(importClause.namedBindings.elements, checkImportBinding); + } + } + } + } + } + function checkImportEqualsDeclaration(node) { + checkGrammarDecorators(node) || checkGrammarModifiers(node); + if (ts.isInternalModuleImportEqualsDeclaration(node) || checkExternalImportOrExportDeclaration(node)) { + checkImportBinding(node); + if (node.flags & 1) { + markExportAsReferenced(node); + } + if (ts.isInternalModuleImportEqualsDeclaration(node)) { + var target = resolveAlias(getSymbolOfNode(node)); + if (target !== unknownSymbol) { + if (target.flags & 107455) { + var moduleName = getFirstIdentifier(node.moduleReference); + if (!(resolveEntityName(moduleName, 107455 | 1536).flags & 1536)) { + error(moduleName, ts.Diagnostics.Module_0_is_hidden_by_a_local_declaration_with_the_same_name, ts.declarationNameToString(moduleName)); + } + } + if (target.flags & 793056) { + checkTypeNameIsReserved(node.name, ts.Diagnostics.Import_name_cannot_be_0); + } + } + } + else { + if (languageVersion >= 2) { + grammarErrorOnNode(node, ts.Diagnostics.Import_assignment_cannot_be_used_when_targeting_ECMAScript_6_or_higher_Consider_using_import_Asterisk_as_ns_from_mod_import_a_from_mod_or_import_d_from_mod_instead); + } + } + } + } + function checkExportDeclaration(node) { + if (!checkGrammarDecorators(node) && !checkGrammarModifiers(node) && (node.flags & 499)) { + grammarErrorOnFirstToken(node, ts.Diagnostics.An_export_declaration_cannot_have_modifiers); + } + if (!node.moduleSpecifier || checkExternalImportOrExportDeclaration(node)) { + if (node.exportClause) { + ts.forEach(node.exportClause.elements, checkExportSpecifier); + var inAmbientExternalModule = node.parent.kind === 206 && node.parent.parent.name.kind === 8; + if (node.parent.kind !== 227 && !inAmbientExternalModule) { + error(node, ts.Diagnostics.Export_declarations_are_not_permitted_in_an_internal_module); + } + } + else { + var moduleSymbol = resolveExternalModuleName(node, node.moduleSpecifier); + if (moduleSymbol && moduleSymbol.exports["export="]) { + error(node.moduleSpecifier, ts.Diagnostics.External_module_0_uses_export_and_cannot_be_used_with_export_Asterisk, symbolToString(moduleSymbol)); + } + } + } + } + function checkExportSpecifier(node) { + checkAliasSymbol(node); + if (!node.parent.parent.moduleSpecifier) { + markExportAsReferenced(node); + } + } + function checkExportAssignment(node) { + var container = node.parent.kind === 227 ? node.parent : node.parent.parent; + if (container.kind === 205 && container.name.kind === 65) { + error(node, ts.Diagnostics.An_export_assignment_cannot_be_used_in_an_internal_module); + return; + } + if (!checkGrammarDecorators(node) && !checkGrammarModifiers(node) && (node.flags & 499)) { + grammarErrorOnFirstToken(node, ts.Diagnostics.An_export_assignment_cannot_have_modifiers); + } + if (node.expression) { + if (node.expression.kind === 65) { + markExportAsReferenced(node); + } + else { + checkExpressionCached(node.expression); + } + } + if (node.type) { + checkSourceElement(node.type); + if (!ts.isInAmbientContext(node)) { + grammarErrorOnFirstToken(node.type, ts.Diagnostics.A_type_annotation_on_an_export_statement_is_only_allowed_in_an_ambient_external_module_declaration); + } + } + checkExternalModuleExports(container); + if (node.isExportEquals && languageVersion >= 2) { + grammarErrorOnNode(node, ts.Diagnostics.Export_assignment_cannot_be_used_when_targeting_ECMAScript_6_or_higher_Consider_using_export_default_instead); + } + } + function getModuleStatements(node) { + if (node.kind === 227) { + return node.statements; + } + if (node.kind === 205 && node.body.kind === 206) { + return node.body.statements; + } + return emptyArray; + } + function hasExportedMembers(moduleSymbol) { + for (var id in moduleSymbol.exports) { + if (id !== "export=") { + return true; + } + } + return false; + } + function checkExternalModuleExports(node) { + var moduleSymbol = getSymbolOfNode(node); + var links = getSymbolLinks(moduleSymbol); + if (!links.exportsChecked) { + var exportEqualsSymbol = moduleSymbol.exports["export="]; + if (exportEqualsSymbol && hasExportedMembers(moduleSymbol)) { + var declaration = getDeclarationOfAliasSymbol(exportEqualsSymbol) || exportEqualsSymbol.valueDeclaration; + error(declaration, ts.Diagnostics.An_export_assignment_cannot_be_used_in_a_module_with_other_exported_elements); + } + links.exportsChecked = true; + } + } + function checkSourceElement(node) { + if (!node) + return; + switch (node.kind) { + case 128: + return checkTypeParameter(node); + case 129: + return checkParameter(node); + case 132: + case 131: + return checkPropertyDeclaration(node); + case 142: + case 143: + case 138: + case 139: + return checkSignatureDeclaration(node); + case 140: + return checkSignatureDeclaration(node); + case 134: + case 133: + return checkMethodDeclaration(node); + case 135: + return checkConstructorDeclaration(node); + case 136: + case 137: + return checkAccessorDeclaration(node); + case 141: + return checkTypeReferenceNode(node); + case 144: + return checkTypeQuery(node); + case 145: + return checkTypeLiteral(node); + case 146: + return checkArrayType(node); + case 147: + return checkTupleType(node); + case 148: + return checkUnionType(node); + case 149: + return checkSourceElement(node.type); + case 200: + return checkFunctionDeclaration(node); + case 179: + case 206: + return checkBlock(node); + case 180: + return checkVariableStatement(node); + case 182: + return checkExpressionStatement(node); + case 183: + return checkIfStatement(node); + case 184: + return checkDoStatement(node); + case 185: + return checkWhileStatement(node); + case 186: + return checkForStatement(node); + case 187: + return checkForInStatement(node); + case 188: + return checkForOfStatement(node); + case 189: + case 190: + return checkBreakOrContinueStatement(node); + case 191: + return checkReturnStatement(node); + case 192: + return checkWithStatement(node); + case 193: + return checkSwitchStatement(node); + case 194: + return checkLabeledStatement(node); + case 195: + return checkThrowStatement(node); + case 196: + return checkTryStatement(node); + case 198: + return checkVariableDeclaration(node); + case 152: + return checkBindingElement(node); + case 201: + return checkClassDeclaration(node); + case 202: + return checkInterfaceDeclaration(node); + case 203: + return checkTypeAliasDeclaration(node); + case 204: + return checkEnumDeclaration(node); + case 205: + return checkModuleDeclaration(node); + case 209: + return checkImportDeclaration(node); + case 208: + return checkImportEqualsDeclaration(node); + case 215: + return checkExportDeclaration(node); + case 214: + return checkExportAssignment(node); + case 181: + checkGrammarStatementInAmbientContext(node); + return; + case 197: + checkGrammarStatementInAmbientContext(node); + return; + case 218: + return checkMissingDeclaration(node); + } + } + function checkFunctionExpressionBodies(node) { + switch (node.kind) { + case 162: + case 163: + ts.forEach(node.parameters, checkFunctionExpressionBodies); + checkFunctionExpressionOrObjectLiteralMethodBody(node); + break; + case 134: + case 133: + ts.forEach(node.parameters, checkFunctionExpressionBodies); + if (ts.isObjectLiteralMethod(node)) { + checkFunctionExpressionOrObjectLiteralMethodBody(node); + } + break; + case 135: + case 136: + case 137: + case 200: + ts.forEach(node.parameters, checkFunctionExpressionBodies); + break; + case 192: + checkFunctionExpressionBodies(node.expression); + break; + case 129: + case 132: + case 131: + case 150: + case 151: + case 152: + case 153: + case 154: + case 224: + case 155: + case 156: + case 157: + case 158: + case 159: + case 171: + case 176: + case 160: + case 161: + case 165: + case 166: + case 164: + case 167: + case 168: + case 169: + case 170: + case 173: + case 179: + case 206: + case 180: + case 182: + case 183: + case 184: + case 185: + case 186: + case 187: + case 188: + case 189: + case 190: + case 191: + case 193: + case 207: + case 220: + case 221: + case 194: + case 195: + case 196: + case 223: + case 198: + case 199: + case 201: + case 204: + case 226: + case 214: + case 227: + ts.forEachChild(node, checkFunctionExpressionBodies); + break; + } + } + function checkSourceFile(node) { + var start = new Date().getTime(); + checkSourceFileWorker(node); + ts.checkTime += new Date().getTime() - start; + } + function checkSourceFileWorker(node) { + var links = getNodeLinks(node); + if (!(links.flags & 1)) { + checkGrammarSourceFile(node); + emitExtends = false; + potentialThisCollisions.length = 0; + ts.forEach(node.statements, checkSourceElement); + checkFunctionExpressionBodies(node); + if (ts.isExternalModule(node)) { + checkExternalModuleExports(node); + } + if (potentialThisCollisions.length) { + ts.forEach(potentialThisCollisions, checkIfThisIsCapturedInEnclosingScope); + potentialThisCollisions.length = 0; + } + if (emitExtends) { + links.flags |= 8; + } + if (emitDecorate) { + links.flags |= 512; + } + links.flags |= 1; + } + } + function getDiagnostics(sourceFile) { + throwIfNonDiagnosticsProducing(); + if (sourceFile) { + checkSourceFile(sourceFile); + return diagnostics.getDiagnostics(sourceFile.fileName); + } + ts.forEach(host.getSourceFiles(), checkSourceFile); + return diagnostics.getDiagnostics(); + } + function getGlobalDiagnostics() { + throwIfNonDiagnosticsProducing(); + return diagnostics.getGlobalDiagnostics(); + } + function throwIfNonDiagnosticsProducing() { + if (!produceDiagnostics) { + throw new Error("Trying to get diagnostics from a type checker that does not produce them."); + } + } + function isInsideWithStatementBody(node) { + if (node) { + while (node.parent) { + if (node.parent.kind === 192 && node.parent.statement === node) { + return true; + } + node = node.parent; + } + } + return false; + } + function getSymbolsInScope(location, meaning) { + var symbols = {}; + var memberFlags = 0; + if (isInsideWithStatementBody(location)) { + return []; + } + populateSymbols(); + return symbolsToArray(symbols); + function populateSymbols() { + while (location) { + if (location.locals && !isGlobalSourceFile(location)) { + copySymbols(location.locals, meaning); + } + switch (location.kind) { + case 227: + if (!ts.isExternalModule(location)) { + break; + } + case 205: + copySymbols(getSymbolOfNode(location).exports, meaning & 8914931); + break; + case 204: + copySymbols(getSymbolOfNode(location).exports, meaning & 8); + break; + case 201: + case 202: + if (!(memberFlags & 128)) { + copySymbols(getSymbolOfNode(location).members, meaning & 793056); + } + break; + case 162: + if (location.name) { + copySymbol(location.symbol, meaning); + } + break; + } + memberFlags = location.flags; + location = location.parent; + } + copySymbols(globals, meaning); + } + function copySymbol(symbol, meaning) { + if (symbol.flags & meaning) { + var id = symbol.name; + if (!isReservedMemberName(id) && !ts.hasProperty(symbols, id)) { + symbols[id] = symbol; + } + } + } + function copySymbols(source, meaning) { + if (meaning) { + for (var id in source) { + if (ts.hasProperty(source, id)) { + copySymbol(source[id], meaning); + } + } + } + } + if (isInsideWithStatementBody(location)) { + return []; + } + while (location) { + if (location.locals && !isGlobalSourceFile(location)) { + copySymbols(location.locals, meaning); + } + switch (location.kind) { + case 227: + if (!ts.isExternalModule(location)) + break; + case 205: + copySymbols(getSymbolOfNode(location).exports, meaning & 8914931); + break; + case 204: + copySymbols(getSymbolOfNode(location).exports, meaning & 8); + break; + case 201: + case 202: + if (!(memberFlags & 128)) { + copySymbols(getSymbolOfNode(location).members, meaning & 793056); + } + break; + case 162: + if (location.name) { + copySymbol(location.symbol, meaning); + } + break; + } + memberFlags = location.flags; + location = location.parent; + } + copySymbols(globals, meaning); + return symbolsToArray(symbols); + } + function isTypeDeclarationName(name) { + return name.kind == 65 && + isTypeDeclaration(name.parent) && + name.parent.name === name; + } + function isTypeDeclaration(node) { + switch (node.kind) { + case 128: + case 201: + case 202: + case 203: + case 204: + return true; + } + } + function isTypeReferenceIdentifier(entityName) { + var node = entityName; + while (node.parent && node.parent.kind === 126) { + node = node.parent; + } + return node.parent && node.parent.kind === 141; + } + function isHeritageClauseElementIdentifier(entityName) { + var node = entityName; + while (node.parent && node.parent.kind === 155) { + node = node.parent; + } + return node.parent && node.parent.kind === 177; + } + function isTypeNodeOrHeritageClauseElement(node) { + if (141 <= node.kind && node.kind <= 149) { + return true; + } + switch (node.kind) { + case 112: + case 119: + case 121: + case 113: + case 122: + return true; + case 99: + return node.parent.kind !== 166; + case 8: + return node.parent.kind === 129; + case 177: + return true; + case 65: + if (node.parent.kind === 126 && node.parent.right === node) { + node = node.parent; + } + else if (node.parent.kind === 155 && node.parent.name === node) { + node = node.parent; + } + case 126: + case 155: + ts.Debug.assert(node.kind === 65 || node.kind === 126 || node.kind === 155, "'node' was expected to be a qualified name, identifier or property access in 'isTypeNode'."); + var parent_5 = node.parent; + if (parent_5.kind === 144) { + return false; + } + if (141 <= parent_5.kind && parent_5.kind <= 149) { + return true; + } + switch (parent_5.kind) { + case 177: + return true; + case 128: + return node === parent_5.constraint; + case 132: + case 131: + case 129: + case 198: + return node === parent_5.type; + case 200: + case 162: + case 163: + case 135: + case 134: + case 133: + case 136: + case 137: + return node === parent_5.type; + case 138: + case 139: + case 140: + return node === parent_5.type; + case 160: + return node === parent_5.type; + case 157: + case 158: + return parent_5.typeArguments && ts.indexOf(parent_5.typeArguments, node) >= 0; + case 159: + return false; + } + } + return false; + } + function getLeftSideOfImportEqualsOrExportAssignment(nodeOnRightSide) { + while (nodeOnRightSide.parent.kind === 126) { + nodeOnRightSide = nodeOnRightSide.parent; + } + if (nodeOnRightSide.parent.kind === 208) { + return nodeOnRightSide.parent.moduleReference === nodeOnRightSide && nodeOnRightSide.parent; + } + if (nodeOnRightSide.parent.kind === 214) { + return nodeOnRightSide.parent.expression === nodeOnRightSide && nodeOnRightSide.parent; + } + return undefined; + } + function isInRightSideOfImportOrExportAssignment(node) { + return getLeftSideOfImportEqualsOrExportAssignment(node) !== undefined; + } + function getSymbolOfEntityNameOrPropertyAccessExpression(entityName) { + if (ts.isDeclarationName(entityName)) { + return getSymbolOfNode(entityName.parent); + } + if (entityName.parent.kind === 214) { + return resolveEntityName(entityName, 107455 | 793056 | 1536 | 8388608); + } + if (entityName.kind !== 155) { + if (isInRightSideOfImportOrExportAssignment(entityName)) { + return getSymbolOfPartOfRightHandSideOfImportEquals(entityName); + } + } + if (ts.isRightSideOfQualifiedNameOrPropertyAccess(entityName)) { + entityName = entityName.parent; + } + if (isHeritageClauseElementIdentifier(entityName)) { + var meaning = entityName.parent.kind === 177 ? 793056 : 1536; + meaning |= 8388608; + return resolveEntityName(entityName, meaning); + } + else if (ts.isExpression(entityName)) { + if (ts.nodeIsMissing(entityName)) { + return undefined; + } + if (entityName.kind === 65) { + var meaning = 107455 | 8388608; + return resolveEntityName(entityName, meaning); + } + else if (entityName.kind === 155) { + var symbol = getNodeLinks(entityName).resolvedSymbol; + if (!symbol) { + checkPropertyAccessExpression(entityName); + } + return getNodeLinks(entityName).resolvedSymbol; + } + else if (entityName.kind === 126) { + var symbol = getNodeLinks(entityName).resolvedSymbol; + if (!symbol) { + checkQualifiedName(entityName); + } + return getNodeLinks(entityName).resolvedSymbol; + } + } + else if (isTypeReferenceIdentifier(entityName)) { + var meaning = entityName.parent.kind === 141 ? 793056 : 1536; + meaning |= 8388608; + return resolveEntityName(entityName, meaning); + } + return undefined; + } + function getSymbolInfo(node) { + if (isInsideWithStatementBody(node)) { + return undefined; + } + if (ts.isDeclarationName(node)) { + return getSymbolOfNode(node.parent); + } + if (node.kind === 65 && isInRightSideOfImportOrExportAssignment(node)) { + return node.parent.kind === 214 + ? getSymbolOfEntityNameOrPropertyAccessExpression(node) + : getSymbolOfPartOfRightHandSideOfImportEquals(node); + } + switch (node.kind) { + case 65: + case 155: + case 126: + return getSymbolOfEntityNameOrPropertyAccessExpression(node); + case 93: + case 91: + var type = checkExpression(node); + return type.symbol; + case 114: + var constructorDeclaration = node.parent; + if (constructorDeclaration && constructorDeclaration.kind === 135) { + return constructorDeclaration.parent.symbol; + } + return undefined; + case 8: + var moduleName; + if ((ts.isExternalModuleImportEqualsDeclaration(node.parent.parent) && + ts.getExternalModuleImportEqualsDeclarationExpression(node.parent.parent) === node) || + ((node.parent.kind === 209 || node.parent.kind === 215) && + node.parent.moduleSpecifier === node)) { + return resolveExternalModuleName(node, node); + } + case 7: + if (node.parent.kind == 156 && node.parent.argumentExpression === node) { + var objectType = checkExpression(node.parent.expression); + if (objectType === unknownType) + return undefined; + var apparentType = getApparentType(objectType); + if (apparentType === unknownType) + return undefined; + return getPropertyOfType(apparentType, node.text); + } + break; + } + return undefined; + } + function getShorthandAssignmentValueSymbol(location) { + if (location && location.kind === 225) { + return resolveEntityName(location.name, 107455); + } + return undefined; + } + function getTypeOfNode(node) { + if (isInsideWithStatementBody(node)) { + return unknownType; + } + if (isTypeNodeOrHeritageClauseElement(node)) { + return getTypeFromTypeNodeOrHeritageClauseElement(node); + } + if (ts.isExpression(node)) { + return getTypeOfExpression(node); + } + if (isTypeDeclaration(node)) { + var symbol = getSymbolOfNode(node); + return getDeclaredTypeOfSymbol(symbol); + } + if (isTypeDeclarationName(node)) { + var symbol = getSymbolInfo(node); + return symbol && getDeclaredTypeOfSymbol(symbol); + } + if (ts.isDeclaration(node)) { + var symbol = getSymbolOfNode(node); + return getTypeOfSymbol(symbol); + } + if (ts.isDeclarationName(node)) { + var symbol = getSymbolInfo(node); + return symbol && getTypeOfSymbol(symbol); + } + if (isInRightSideOfImportOrExportAssignment(node)) { + var symbol = getSymbolInfo(node); + var declaredType = symbol && getDeclaredTypeOfSymbol(symbol); + return declaredType !== unknownType ? declaredType : getTypeOfSymbol(symbol); + } + return unknownType; + } + function getTypeOfExpression(expr) { + if (ts.isRightSideOfQualifiedNameOrPropertyAccess(expr)) { + expr = expr.parent; + } + return checkExpression(expr); + } + function getAugmentedPropertiesOfType(type) { + type = getApparentType(type); + var propsByName = createSymbolTable(getPropertiesOfType(type)); + if (getSignaturesOfType(type, 0).length || getSignaturesOfType(type, 1).length) { + ts.forEach(getPropertiesOfType(globalFunctionType), function (p) { + if (!ts.hasProperty(propsByName, p.name)) { + propsByName[p.name] = p; + } + }); + } + return getNamedMembers(propsByName); + } + function getRootSymbols(symbol) { + if (symbol.flags & 268435456) { + var symbols = []; + var name_10 = symbol.name; + ts.forEach(getSymbolLinks(symbol).unionType.types, function (t) { + symbols.push(getPropertyOfType(t, name_10)); + }); + return symbols; + } + else if (symbol.flags & 67108864) { + var target = getSymbolLinks(symbol).target; + if (target) { + return [target]; + } + } + return [symbol]; + } + function isExternalModuleSymbol(symbol) { + return symbol.flags & 512 && symbol.declarations.length === 1 && symbol.declarations[0].kind === 227; + } + function getAliasNameSubstitution(symbol, getGeneratedNameForNode) { + if (languageVersion >= 2) { + return undefined; + } + var node = getDeclarationOfAliasSymbol(symbol); + if (node) { + if (node.kind === 210) { + return getGeneratedNameForNode(node.parent) + ".default"; + } + if (node.kind === 213) { + var moduleName = getGeneratedNameForNode(node.parent.parent.parent); + var propertyName = node.propertyName || node.name; + return moduleName + "." + ts.unescapeIdentifier(propertyName.text); + } + } + } + function getExportNameSubstitution(symbol, location, getGeneratedNameForNode) { + if (isExternalModuleSymbol(symbol.parent)) { + if (languageVersion >= 2) { + return undefined; + } + return "exports." + ts.unescapeIdentifier(symbol.name); + } + var node = location; + var containerSymbol = getParentOfSymbol(symbol); + while (node) { + if ((node.kind === 205 || node.kind === 204) && getSymbolOfNode(node) === containerSymbol) { + return getGeneratedNameForNode(node) + "." + ts.unescapeIdentifier(symbol.name); + } + node = node.parent; + } + } + function getExpressionNameSubstitution(node, getGeneratedNameForNode) { + var symbol = getNodeLinks(node).resolvedSymbol || (ts.isDeclarationName(node) ? getSymbolOfNode(node.parent) : undefined); + if (symbol) { + if (symbol.parent) { + return getExportNameSubstitution(symbol, node.parent, getGeneratedNameForNode); + } + var exportSymbol = getExportSymbolOfValueSymbolIfExported(symbol); + if (symbol !== exportSymbol && !(exportSymbol.flags & 944)) { + return getExportNameSubstitution(exportSymbol, node.parent, getGeneratedNameForNode); + } + if (symbol.flags & 8388608) { + return getAliasNameSubstitution(symbol, getGeneratedNameForNode); + } + } + } + function isValueAliasDeclaration(node) { + switch (node.kind) { + case 208: + case 210: + case 211: + case 213: + case 217: + return isAliasResolvedToValue(getSymbolOfNode(node)); + case 215: + var exportClause = node.exportClause; + return exportClause && ts.forEach(exportClause.elements, isValueAliasDeclaration); + case 214: + return node.expression && node.expression.kind === 65 ? isAliasResolvedToValue(getSymbolOfNode(node)) : true; + } + return false; + } + function isTopLevelValueImportEqualsWithEntityName(node) { + if (node.parent.kind !== 227 || !ts.isInternalModuleImportEqualsDeclaration(node)) { + return false; + } + var isValue = isAliasResolvedToValue(getSymbolOfNode(node)); + return isValue && node.moduleReference && !ts.nodeIsMissing(node.moduleReference); + } + function isAliasResolvedToValue(symbol) { + var target = resolveAlias(symbol); + if (target === unknownSymbol && compilerOptions.separateCompilation) { + return true; + } + return target !== unknownSymbol && target && target.flags & 107455 && !isConstEnumOrConstEnumOnlyModule(target); + } + function isConstEnumOrConstEnumOnlyModule(s) { + return isConstEnumSymbol(s) || s.constEnumOnlyModule; + } + function isReferencedAliasDeclaration(node, checkChildren) { + if (ts.isAliasSymbolDeclaration(node)) { + var symbol = getSymbolOfNode(node); + if (getSymbolLinks(symbol).referenced) { + return true; + } + } + if (checkChildren) { + return ts.forEachChild(node, function (node) { return isReferencedAliasDeclaration(node, checkChildren); }); + } + return false; + } + function isImplementationOfOverload(node) { + if (ts.nodeIsPresent(node.body)) { + var symbol = getSymbolOfNode(node); + var signaturesOfSymbol = getSignaturesOfSymbol(symbol); + return signaturesOfSymbol.length > 1 || + (signaturesOfSymbol.length === 1 && signaturesOfSymbol[0].declaration !== node); + } + return false; + } + function getNodeCheckFlags(node) { + return getNodeLinks(node).flags; + } + function getEnumMemberValue(node) { + computeEnumMemberValues(node.parent); + return getNodeLinks(node).enumMemberValue; + } + function getConstantValue(node) { + if (node.kind === 226) { + return getEnumMemberValue(node); + } + var symbol = getNodeLinks(node).resolvedSymbol; + if (symbol && (symbol.flags & 8)) { + if (ts.isConstEnumDeclaration(symbol.valueDeclaration.parent)) { + return getEnumMemberValue(symbol.valueDeclaration); + } + } + return undefined; + } + function writeTypeOfDeclaration(declaration, enclosingDeclaration, flags, writer) { + var symbol = getSymbolOfNode(declaration); + var type = symbol && !(symbol.flags & (2048 | 131072)) + ? getTypeOfSymbol(symbol) + : unknownType; + getSymbolDisplayBuilder().buildTypeDisplay(type, writer, enclosingDeclaration, flags); + } + function writeReturnTypeOfSignatureDeclaration(signatureDeclaration, enclosingDeclaration, flags, writer) { + var signature = getSignatureFromDeclaration(signatureDeclaration); + getSymbolDisplayBuilder().buildTypeDisplay(getReturnTypeOfSignature(signature), writer, enclosingDeclaration, flags); + } + function writeTypeOfExpression(expr, enclosingDeclaration, flags, writer) { + var type = getTypeOfExpression(expr); + getSymbolDisplayBuilder().buildTypeDisplay(type, writer, enclosingDeclaration, flags); + } + function hasGlobalName(name) { + return ts.hasProperty(globals, name); + } + function resolvesToSomeValue(location, name) { + ts.Debug.assert(!ts.nodeIsSynthesized(location), "resolvesToSomeValue called with a synthesized location"); + return !!resolveName(location, name, 107455, undefined, undefined); + } + function getBlockScopedVariableId(n) { + ts.Debug.assert(!ts.nodeIsSynthesized(n)); + var isVariableDeclarationOrBindingElement = n.parent.kind === 152 || (n.parent.kind === 198 && n.parent.name === n); + var symbol = (isVariableDeclarationOrBindingElement ? getSymbolOfNode(n.parent) : undefined) || + getNodeLinks(n).resolvedSymbol || + resolveName(n, n.text, 107455 | 8388608, undefined, undefined); + var isLetOrConst = symbol && + (symbol.flags & 2) && + symbol.valueDeclaration.parent.kind !== 223; + if (isLetOrConst) { + getSymbolLinks(symbol); + return symbol.id; + } + return undefined; + } + function instantiateSingleCallFunctionType(functionType, typeArguments) { + if (functionType === unknownType) { + return unknownType; + } + var signature = getSingleCallSignature(functionType); + if (!signature) { + return unknownType; + } + var instantiatedSignature = getSignatureInstantiation(signature, typeArguments); + return getOrCreateTypeFromSignature(instantiatedSignature); + } + function createResolver() { + return { + getExpressionNameSubstitution: getExpressionNameSubstitution, + isValueAliasDeclaration: isValueAliasDeclaration, + hasGlobalName: hasGlobalName, + isReferencedAliasDeclaration: isReferencedAliasDeclaration, + getNodeCheckFlags: getNodeCheckFlags, + isTopLevelValueImportEqualsWithEntityName: isTopLevelValueImportEqualsWithEntityName, + isDeclarationVisible: isDeclarationVisible, + isImplementationOfOverload: isImplementationOfOverload, + writeTypeOfDeclaration: writeTypeOfDeclaration, + writeReturnTypeOfSignatureDeclaration: writeReturnTypeOfSignatureDeclaration, + writeTypeOfExpression: writeTypeOfExpression, + isSymbolAccessible: isSymbolAccessible, + isEntityNameVisible: isEntityNameVisible, + getConstantValue: getConstantValue, + resolvesToSomeValue: resolvesToSomeValue, + collectLinkedAliases: collectLinkedAliases, + getBlockScopedVariableId: getBlockScopedVariableId + }; + } + function initializeTypeChecker() { + ts.forEach(host.getSourceFiles(), function (file) { + ts.bindSourceFile(file); + }); + ts.forEach(host.getSourceFiles(), function (file) { + if (!ts.isExternalModule(file)) { + mergeSymbolTable(globals, file.locals); + } + }); + getSymbolLinks(undefinedSymbol).type = undefinedType; + getSymbolLinks(argumentsSymbol).type = getGlobalType("IArguments"); + getSymbolLinks(unknownSymbol).type = unknownType; + globals[undefinedSymbol.name] = undefinedSymbol; + globalArraySymbol = getGlobalTypeSymbol("Array"); + globalArrayType = getTypeOfGlobalSymbol(globalArraySymbol, 1); + globalObjectType = getGlobalType("Object"); + globalFunctionType = getGlobalType("Function"); + globalStringType = getGlobalType("String"); + globalNumberType = getGlobalType("Number"); + globalBooleanType = getGlobalType("Boolean"); + globalRegExpType = getGlobalType("RegExp"); + globalTypedPropertyDescriptorType = getTypeOfGlobalSymbol(getGlobalTypeSymbol("TypedPropertyDescriptor"), 1); + globalClassDecoratorType = getGlobalType("ClassDecorator"); + globalPropertyDecoratorType = getGlobalType("PropertyDecorator"); + globalMethodDecoratorType = getGlobalType("MethodDecorator"); + globalParameterDecoratorType = getGlobalType("ParameterDecorator"); + if (languageVersion >= 2) { + globalTemplateStringsArrayType = getGlobalType("TemplateStringsArray"); + globalESSymbolType = getGlobalType("Symbol"); + globalESSymbolConstructorSymbol = getGlobalValueSymbol("Symbol"); + globalIterableType = getGlobalType("Iterable", 1); + } + else { + globalTemplateStringsArrayType = unknownType; + globalESSymbolType = createAnonymousType(undefined, emptySymbols, emptyArray, emptyArray, undefined, undefined); + globalESSymbolConstructorSymbol = undefined; + } + anyArrayType = createArrayType(anyType); + } + function checkGrammarDecorators(node) { + if (!node.decorators) { + return false; + } + if (!ts.nodeCanBeDecorated(node)) { + return grammarErrorOnNode(node, ts.Diagnostics.Decorators_are_not_valid_here); + } + else if (languageVersion < 1) { + return grammarErrorOnNode(node, ts.Diagnostics.Decorators_are_only_available_when_targeting_ECMAScript_5_and_higher); + } + else if (node.kind === 136 || node.kind === 137) { + var accessors = ts.getAllAccessorDeclarations(node.parent.members, node); + if (accessors.firstAccessor.decorators && node === accessors.secondAccessor) { + return grammarErrorOnNode(node, ts.Diagnostics.Decorators_cannot_be_applied_to_multiple_get_Slashset_accessors_of_the_same_name); + } + } + return false; + } + function checkGrammarModifiers(node) { + switch (node.kind) { + case 136: + case 137: + case 135: + case 132: + case 131: + case 134: + case 133: + case 140: + case 201: + case 202: + case 205: + case 204: + case 180: + case 200: + case 203: + case 209: + case 208: + case 215: + case 214: + case 129: + break; + default: + return false; + } + if (!node.modifiers) { + return; + } + var lastStatic, lastPrivate, lastProtected, lastDeclare; + var flags = 0; + for (var _i = 0, _a = node.modifiers; _i < _a.length; _i++) { + var modifier = _a[_i]; + switch (modifier.kind) { + case 109: + case 108: + case 107: + var text = void 0; + if (modifier.kind === 109) { + text = "public"; + } + else if (modifier.kind === 108) { + text = "protected"; + lastProtected = modifier; + } + else { + text = "private"; + lastPrivate = modifier; + } + if (flags & 112) { + return grammarErrorOnNode(modifier, ts.Diagnostics.Accessibility_modifier_already_seen); + } + else if (flags & 128) { + return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_must_precede_1_modifier, text, "static"); + } + else if (node.parent.kind === 206 || node.parent.kind === 227) { + return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_cannot_appear_on_a_module_element, text); + } + flags |= ts.modifierToFlag(modifier.kind); + break; + case 110: + if (flags & 128) { + return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_already_seen, "static"); + } + else if (node.parent.kind === 206 || node.parent.kind === 227) { + return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_cannot_appear_on_a_module_element, "static"); + } + else if (node.kind === 129) { + return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_cannot_appear_on_a_parameter, "static"); + } + flags |= 128; + lastStatic = modifier; + break; + case 78: + if (flags & 1) { + return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_already_seen, "export"); + } + else if (flags & 2) { + return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_must_precede_1_modifier, "export", "declare"); + } + else if (node.parent.kind === 201) { + return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_cannot_appear_on_a_class_element, "export"); + } + else if (node.kind === 129) { + return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_cannot_appear_on_a_parameter, "export"); + } + flags |= 1; + break; + case 115: + if (flags & 2) { + return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_already_seen, "declare"); + } + else if (node.parent.kind === 201) { + return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_cannot_appear_on_a_class_element, "declare"); + } + else if (node.kind === 129) { + return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_cannot_appear_on_a_parameter, "declare"); + } + else if (ts.isInAmbientContext(node.parent) && node.parent.kind === 206) { + return grammarErrorOnNode(modifier, ts.Diagnostics.A_declare_modifier_cannot_be_used_in_an_already_ambient_context); + } + flags |= 2; + lastDeclare = modifier; + break; + } + } + if (node.kind === 135) { + if (flags & 128) { + return grammarErrorOnNode(lastStatic, ts.Diagnostics._0_modifier_cannot_appear_on_a_constructor_declaration, "static"); + } + else if (flags & 64) { + return grammarErrorOnNode(lastProtected, ts.Diagnostics._0_modifier_cannot_appear_on_a_constructor_declaration, "protected"); + } + else if (flags & 32) { + return grammarErrorOnNode(lastPrivate, ts.Diagnostics._0_modifier_cannot_appear_on_a_constructor_declaration, "private"); + } + } + else if ((node.kind === 209 || node.kind === 208) && flags & 2) { + return grammarErrorOnNode(lastDeclare, ts.Diagnostics.A_declare_modifier_cannot_be_used_with_an_import_declaration, "declare"); + } + else if (node.kind === 202 && flags & 2) { + return grammarErrorOnNode(lastDeclare, ts.Diagnostics.A_declare_modifier_cannot_be_used_with_an_interface_declaration, "declare"); + } + else if (node.kind === 129 && (flags & 112) && ts.isBindingPattern(node.name)) { + return grammarErrorOnNode(node, ts.Diagnostics.A_parameter_property_may_not_be_a_binding_pattern); + } + } + function checkGrammarForDisallowedTrailingComma(list) { + if (list && list.hasTrailingComma) { + var start = list.end - ",".length; + var end = list.end; + var sourceFile = ts.getSourceFileOfNode(list[0]); + return grammarErrorAtPos(sourceFile, start, end - start, ts.Diagnostics.Trailing_comma_not_allowed); + } + } + function checkGrammarTypeParameterList(node, typeParameters, file) { + if (checkGrammarForDisallowedTrailingComma(typeParameters)) { + return true; + } + if (typeParameters && typeParameters.length === 0) { + var start = typeParameters.pos - "<".length; + var end = ts.skipTrivia(file.text, typeParameters.end) + ">".length; + return grammarErrorAtPos(file, start, end - start, ts.Diagnostics.Type_parameter_list_cannot_be_empty); + } + } + function checkGrammarParameterList(parameters) { + if (checkGrammarForDisallowedTrailingComma(parameters)) { + return true; + } + var seenOptionalParameter = false; + var parameterCount = parameters.length; + for (var i = 0; i < parameterCount; i++) { + var parameter = parameters[i]; + if (parameter.dotDotDotToken) { + if (i !== (parameterCount - 1)) { + return grammarErrorOnNode(parameter.dotDotDotToken, ts.Diagnostics.A_rest_parameter_must_be_last_in_a_parameter_list); + } + if (parameter.questionToken) { + return grammarErrorOnNode(parameter.questionToken, ts.Diagnostics.A_rest_parameter_cannot_be_optional); + } + if (parameter.initializer) { + return grammarErrorOnNode(parameter.name, ts.Diagnostics.A_rest_parameter_cannot_have_an_initializer); + } + } + else if (parameter.questionToken || parameter.initializer) { + seenOptionalParameter = true; + if (parameter.questionToken && parameter.initializer) { + return grammarErrorOnNode(parameter.name, ts.Diagnostics.Parameter_cannot_have_question_mark_and_initializer); + } + } + else { + if (seenOptionalParameter) { + return grammarErrorOnNode(parameter.name, ts.Diagnostics.A_required_parameter_cannot_follow_an_optional_parameter); + } + } + } + } + function checkGrammarFunctionLikeDeclaration(node) { + var file = ts.getSourceFileOfNode(node); + return checkGrammarDecorators(node) || checkGrammarModifiers(node) || checkGrammarTypeParameterList(node, node.typeParameters, file) || + checkGrammarParameterList(node.parameters) || checkGrammarArrowFunction(node, file); + } + function checkGrammarArrowFunction(node, file) { + if (node.kind === 163) { + var arrowFunction = node; + var startLine = ts.getLineAndCharacterOfPosition(file, arrowFunction.equalsGreaterThanToken.pos).line; + var endLine = ts.getLineAndCharacterOfPosition(file, arrowFunction.equalsGreaterThanToken.end).line; + if (startLine !== endLine) { + return grammarErrorOnNode(arrowFunction.equalsGreaterThanToken, ts.Diagnostics.Line_terminator_not_permitted_before_arrow); + } + } + return false; + } + function checkGrammarIndexSignatureParameters(node) { + var parameter = node.parameters[0]; + if (node.parameters.length !== 1) { + if (parameter) { + return grammarErrorOnNode(parameter.name, ts.Diagnostics.An_index_signature_must_have_exactly_one_parameter); + } + else { + return grammarErrorOnNode(node, ts.Diagnostics.An_index_signature_must_have_exactly_one_parameter); + } + } + if (parameter.dotDotDotToken) { + return grammarErrorOnNode(parameter.dotDotDotToken, ts.Diagnostics.An_index_signature_cannot_have_a_rest_parameter); + } + if (parameter.flags & 499) { + return grammarErrorOnNode(parameter.name, ts.Diagnostics.An_index_signature_parameter_cannot_have_an_accessibility_modifier); + } + if (parameter.questionToken) { + return grammarErrorOnNode(parameter.questionToken, ts.Diagnostics.An_index_signature_parameter_cannot_have_a_question_mark); + } + if (parameter.initializer) { + return grammarErrorOnNode(parameter.name, ts.Diagnostics.An_index_signature_parameter_cannot_have_an_initializer); + } + if (!parameter.type) { + return grammarErrorOnNode(parameter.name, ts.Diagnostics.An_index_signature_parameter_must_have_a_type_annotation); + } + if (parameter.type.kind !== 121 && parameter.type.kind !== 119) { + return grammarErrorOnNode(parameter.name, ts.Diagnostics.An_index_signature_parameter_type_must_be_string_or_number); + } + if (!node.type) { + return grammarErrorOnNode(node, ts.Diagnostics.An_index_signature_must_have_a_type_annotation); + } + } + function checkGrammarForIndexSignatureModifier(node) { + if (node.flags & 499) { + grammarErrorOnFirstToken(node, ts.Diagnostics.Modifiers_not_permitted_on_index_signature_members); + } + } + function checkGrammarIndexSignature(node) { + return checkGrammarDecorators(node) || checkGrammarModifiers(node) || checkGrammarIndexSignatureParameters(node) || checkGrammarForIndexSignatureModifier(node); + } + function checkGrammarForAtLeastOneTypeArgument(node, typeArguments) { + if (typeArguments && typeArguments.length === 0) { + var sourceFile = ts.getSourceFileOfNode(node); + var start = typeArguments.pos - "<".length; + var end = ts.skipTrivia(sourceFile.text, typeArguments.end) + ">".length; + return grammarErrorAtPos(sourceFile, start, end - start, ts.Diagnostics.Type_argument_list_cannot_be_empty); + } + } + function checkGrammarTypeArguments(node, typeArguments) { + return checkGrammarForDisallowedTrailingComma(typeArguments) || + checkGrammarForAtLeastOneTypeArgument(node, typeArguments); + } + function checkGrammarForOmittedArgument(node, arguments) { + if (arguments) { + var sourceFile = ts.getSourceFileOfNode(node); + for (var _i = 0; _i < arguments.length; _i++) { + var arg = arguments[_i]; + if (arg.kind === 175) { + return grammarErrorAtPos(sourceFile, arg.pos, 0, ts.Diagnostics.Argument_expression_expected); + } + } + } + } + function checkGrammarArguments(node, arguments) { + return checkGrammarForDisallowedTrailingComma(arguments) || + checkGrammarForOmittedArgument(node, arguments); + } + function checkGrammarHeritageClause(node) { + var types = node.types; + if (checkGrammarForDisallowedTrailingComma(types)) { + return true; + } + if (types && types.length === 0) { + var listType = ts.tokenToString(node.token); + var sourceFile = ts.getSourceFileOfNode(node); + return grammarErrorAtPos(sourceFile, types.pos, 0, ts.Diagnostics._0_list_cannot_be_empty, listType); + } + } + function checkGrammarClassDeclarationHeritageClauses(node) { + var seenExtendsClause = false; + var seenImplementsClause = false; + if (!checkGrammarDecorators(node) && !checkGrammarModifiers(node) && node.heritageClauses) { + for (var _i = 0, _a = node.heritageClauses; _i < _a.length; _i++) { + var heritageClause = _a[_i]; + if (heritageClause.token === 79) { + if (seenExtendsClause) { + return grammarErrorOnFirstToken(heritageClause, ts.Diagnostics.extends_clause_already_seen); + } + if (seenImplementsClause) { + return grammarErrorOnFirstToken(heritageClause, ts.Diagnostics.extends_clause_must_precede_implements_clause); + } + if (heritageClause.types.length > 1) { + return grammarErrorOnFirstToken(heritageClause.types[1], ts.Diagnostics.Classes_can_only_extend_a_single_class); + } + seenExtendsClause = true; + } + else { + ts.Debug.assert(heritageClause.token === 103); + if (seenImplementsClause) { + return grammarErrorOnFirstToken(heritageClause, ts.Diagnostics.implements_clause_already_seen); + } + seenImplementsClause = true; + } + checkGrammarHeritageClause(heritageClause); + } + } + } + function checkGrammarInterfaceDeclaration(node) { + var seenExtendsClause = false; + if (node.heritageClauses) { + for (var _i = 0, _a = node.heritageClauses; _i < _a.length; _i++) { + var heritageClause = _a[_i]; + if (heritageClause.token === 79) { + if (seenExtendsClause) { + return grammarErrorOnFirstToken(heritageClause, ts.Diagnostics.extends_clause_already_seen); + } + seenExtendsClause = true; + } + else { + ts.Debug.assert(heritageClause.token === 103); + return grammarErrorOnFirstToken(heritageClause, ts.Diagnostics.Interface_declaration_cannot_have_implements_clause); + } + checkGrammarHeritageClause(heritageClause); + } + } + return false; + } + function checkGrammarComputedPropertyName(node) { + if (node.kind !== 127) { + return false; + } + var computedPropertyName = node; + if (computedPropertyName.expression.kind === 169 && computedPropertyName.expression.operatorToken.kind === 23) { + return grammarErrorOnNode(computedPropertyName.expression, ts.Diagnostics.A_comma_expression_is_not_allowed_in_a_computed_property_name); + } + } + function checkGrammarForGenerator(node) { + if (node.asteriskToken) { + return grammarErrorOnNode(node.asteriskToken, ts.Diagnostics.Generators_are_not_currently_supported); + } + } + function checkGrammarFunctionName(name) { + return checkGrammarEvalOrArgumentsInStrictMode(name, name); + } + function checkGrammarForInvalidQuestionMark(node, questionToken, message) { + if (questionToken) { + return grammarErrorOnNode(questionToken, message); + } + } + function checkGrammarObjectLiteralExpression(node) { + var seen = {}; + var Property = 1; + var GetAccessor = 2; + var SetAccesor = 4; + var GetOrSetAccessor = GetAccessor | SetAccesor; + var inStrictMode = (node.parserContextFlags & 1) !== 0; + for (var _i = 0, _a = node.properties; _i < _a.length; _i++) { + var prop = _a[_i]; + var name_11 = prop.name; + if (prop.kind === 175 || + name_11.kind === 127) { + checkGrammarComputedPropertyName(name_11); + continue; + } + var currentKind = void 0; + if (prop.kind === 224 || prop.kind === 225) { + checkGrammarForInvalidQuestionMark(prop, prop.questionToken, ts.Diagnostics.An_object_member_cannot_be_declared_optional); + if (name_11.kind === 7) { + checkGrammarNumbericLiteral(name_11); + } + currentKind = Property; + } + else if (prop.kind === 134) { + currentKind = Property; + } + else if (prop.kind === 136) { + currentKind = GetAccessor; + } + else if (prop.kind === 137) { + currentKind = SetAccesor; + } + else { + ts.Debug.fail("Unexpected syntax kind:" + prop.kind); + } + if (!ts.hasProperty(seen, name_11.text)) { + seen[name_11.text] = currentKind; + } + else { + var existingKind = seen[name_11.text]; + if (currentKind === Property && existingKind === Property) { + if (inStrictMode) { + grammarErrorOnNode(name_11, ts.Diagnostics.An_object_literal_cannot_have_multiple_properties_with_the_same_name_in_strict_mode); + } + } + else if ((currentKind & GetOrSetAccessor) && (existingKind & GetOrSetAccessor)) { + if (existingKind !== GetOrSetAccessor && currentKind !== existingKind) { + seen[name_11.text] = currentKind | existingKind; + } + else { + return grammarErrorOnNode(name_11, ts.Diagnostics.An_object_literal_cannot_have_multiple_get_Slashset_accessors_with_the_same_name); + } + } + else { + return grammarErrorOnNode(name_11, ts.Diagnostics.An_object_literal_cannot_have_property_and_accessor_with_the_same_name); + } + } + } + } + function checkGrammarForInOrForOfStatement(forInOrOfStatement) { + if (checkGrammarStatementInAmbientContext(forInOrOfStatement)) { + return true; + } + if (forInOrOfStatement.initializer.kind === 199) { + var variableList = forInOrOfStatement.initializer; + if (!checkGrammarVariableDeclarationList(variableList)) { + if (variableList.declarations.length > 1) { + var diagnostic = forInOrOfStatement.kind === 187 + ? ts.Diagnostics.Only_a_single_variable_declaration_is_allowed_in_a_for_in_statement + : ts.Diagnostics.Only_a_single_variable_declaration_is_allowed_in_a_for_of_statement; + return grammarErrorOnFirstToken(variableList.declarations[1], diagnostic); + } + var firstDeclaration = variableList.declarations[0]; + if (firstDeclaration.initializer) { + var diagnostic = forInOrOfStatement.kind === 187 + ? ts.Diagnostics.The_variable_declaration_of_a_for_in_statement_cannot_have_an_initializer + : ts.Diagnostics.The_variable_declaration_of_a_for_of_statement_cannot_have_an_initializer; + return grammarErrorOnNode(firstDeclaration.name, diagnostic); + } + if (firstDeclaration.type) { + var diagnostic = forInOrOfStatement.kind === 187 + ? ts.Diagnostics.The_left_hand_side_of_a_for_in_statement_cannot_use_a_type_annotation + : ts.Diagnostics.The_left_hand_side_of_a_for_of_statement_cannot_use_a_type_annotation; + return grammarErrorOnNode(firstDeclaration, diagnostic); + } + } + } + return false; + } + function checkGrammarAccessor(accessor) { + var kind = accessor.kind; + if (languageVersion < 1) { + return grammarErrorOnNode(accessor.name, ts.Diagnostics.Accessors_are_only_available_when_targeting_ECMAScript_5_and_higher); + } + else if (ts.isInAmbientContext(accessor)) { + return grammarErrorOnNode(accessor.name, ts.Diagnostics.An_accessor_cannot_be_declared_in_an_ambient_context); + } + else if (accessor.body === undefined) { + return grammarErrorAtPos(ts.getSourceFileOfNode(accessor), accessor.end - 1, ";".length, ts.Diagnostics._0_expected, "{"); + } + else if (accessor.typeParameters) { + return grammarErrorOnNode(accessor.name, ts.Diagnostics.An_accessor_cannot_have_type_parameters); + } + else if (kind === 136 && accessor.parameters.length) { + return grammarErrorOnNode(accessor.name, ts.Diagnostics.A_get_accessor_cannot_have_parameters); + } + else if (kind === 137) { + if (accessor.type) { + return grammarErrorOnNode(accessor.name, ts.Diagnostics.A_set_accessor_cannot_have_a_return_type_annotation); + } + else if (accessor.parameters.length !== 1) { + return grammarErrorOnNode(accessor.name, ts.Diagnostics.A_set_accessor_must_have_exactly_one_parameter); + } + else { + var parameter = accessor.parameters[0]; + if (parameter.dotDotDotToken) { + return grammarErrorOnNode(parameter.dotDotDotToken, ts.Diagnostics.A_set_accessor_cannot_have_rest_parameter); + } + else if (parameter.flags & 499) { + return grammarErrorOnNode(accessor.name, ts.Diagnostics.A_parameter_property_is_only_allowed_in_a_constructor_implementation); + } + else if (parameter.questionToken) { + return grammarErrorOnNode(parameter.questionToken, ts.Diagnostics.A_set_accessor_cannot_have_an_optional_parameter); + } + else if (parameter.initializer) { + return grammarErrorOnNode(accessor.name, ts.Diagnostics.A_set_accessor_parameter_cannot_have_an_initializer); + } + } + } + } + function checkGrammarForNonSymbolComputedProperty(node, message) { + if (node.kind === 127 && !ts.isWellKnownSymbolSyntactically(node.expression)) { + return grammarErrorOnNode(node, message); + } + } + function checkGrammarMethod(node) { + if (checkGrammarDisallowedModifiersInBlockOrObjectLiteralExpression(node) || + checkGrammarFunctionLikeDeclaration(node) || + checkGrammarForGenerator(node)) { + return true; + } + if (node.parent.kind === 154) { + if (checkGrammarForInvalidQuestionMark(node, node.questionToken, ts.Diagnostics.A_class_member_cannot_be_declared_optional)) { + return true; + } + else if (node.body === undefined) { + return grammarErrorAtPos(getSourceFile(node), node.end - 1, ";".length, ts.Diagnostics._0_expected, "{"); + } + } + if (node.parent.kind === 201) { + if (checkGrammarForInvalidQuestionMark(node, node.questionToken, ts.Diagnostics.A_class_member_cannot_be_declared_optional)) { + return true; + } + if (ts.isInAmbientContext(node)) { + return checkGrammarForNonSymbolComputedProperty(node.name, ts.Diagnostics.A_computed_property_name_in_an_ambient_context_must_directly_refer_to_a_built_in_symbol); + } + else if (!node.body) { + return checkGrammarForNonSymbolComputedProperty(node.name, ts.Diagnostics.A_computed_property_name_in_a_method_overload_must_directly_refer_to_a_built_in_symbol); + } + } + else if (node.parent.kind === 202) { + return checkGrammarForNonSymbolComputedProperty(node.name, ts.Diagnostics.A_computed_property_name_in_an_interface_must_directly_refer_to_a_built_in_symbol); + } + else if (node.parent.kind === 145) { + return checkGrammarForNonSymbolComputedProperty(node.name, ts.Diagnostics.A_computed_property_name_in_a_type_literal_must_directly_refer_to_a_built_in_symbol); + } + } + function isIterationStatement(node, lookInLabeledStatements) { + switch (node.kind) { + case 186: + case 187: + case 188: + case 184: + case 185: + return true; + case 194: + return lookInLabeledStatements && isIterationStatement(node.statement, lookInLabeledStatements); + } + return false; + } + function checkGrammarBreakOrContinueStatement(node) { + var current = node; + while (current) { + if (ts.isFunctionLike(current)) { + return grammarErrorOnNode(node, ts.Diagnostics.Jump_target_cannot_cross_function_boundary); + } + switch (current.kind) { + case 194: + if (node.label && current.label.text === node.label.text) { + var isMisplacedContinueLabel = node.kind === 189 + && !isIterationStatement(current.statement, true); + if (isMisplacedContinueLabel) { + return grammarErrorOnNode(node, ts.Diagnostics.A_continue_statement_can_only_jump_to_a_label_of_an_enclosing_iteration_statement); + } + return false; + } + break; + case 193: + if (node.kind === 190 && !node.label) { + return false; + } + break; + default: + if (isIterationStatement(current, false) && !node.label) { + return false; + } + break; + } + current = current.parent; + } + if (node.label) { + var message = node.kind === 190 + ? ts.Diagnostics.A_break_statement_can_only_jump_to_a_label_of_an_enclosing_statement + : ts.Diagnostics.A_continue_statement_can_only_jump_to_a_label_of_an_enclosing_iteration_statement; + return grammarErrorOnNode(node, message); + } + else { + var message = node.kind === 190 + ? ts.Diagnostics.A_break_statement_can_only_be_used_within_an_enclosing_iteration_or_switch_statement + : ts.Diagnostics.A_continue_statement_can_only_be_used_within_an_enclosing_iteration_statement; + return grammarErrorOnNode(node, message); + } + } + function checkGrammarBindingElement(node) { + if (node.dotDotDotToken) { + var elements = node.parent.elements; + if (node !== elements[elements.length - 1]) { + return grammarErrorOnNode(node, ts.Diagnostics.A_rest_element_must_be_last_in_an_array_destructuring_pattern); + } + if (node.initializer) { + return grammarErrorAtPos(ts.getSourceFileOfNode(node), node.initializer.pos - 1, 1, ts.Diagnostics.A_rest_element_cannot_have_an_initializer); + } + } + return checkGrammarEvalOrArgumentsInStrictMode(node, node.name); + } + function checkGrammarVariableDeclaration(node) { + if (node.parent.parent.kind !== 187 && node.parent.parent.kind !== 188) { + if (ts.isInAmbientContext(node)) { + if (node.initializer) { + var equalsTokenLength = "=".length; + return grammarErrorAtPos(ts.getSourceFileOfNode(node), node.initializer.pos - equalsTokenLength, equalsTokenLength, ts.Diagnostics.Initializers_are_not_allowed_in_ambient_contexts); + } + } + else if (!node.initializer) { + if (ts.isBindingPattern(node.name) && !ts.isBindingPattern(node.parent)) { + return grammarErrorOnNode(node, ts.Diagnostics.A_destructuring_declaration_must_have_an_initializer); + } + if (ts.isConst(node)) { + return grammarErrorOnNode(node, ts.Diagnostics.const_declarations_must_be_initialized); + } + } + } + var checkLetConstNames = languageVersion >= 2 && (ts.isLet(node) || ts.isConst(node)); + return (checkLetConstNames && checkGrammarNameInLetOrConstDeclarations(node.name)) || + checkGrammarEvalOrArgumentsInStrictMode(node, node.name); + } + function checkGrammarNameInLetOrConstDeclarations(name) { + if (name.kind === 65) { + if (name.text === "let") { + return grammarErrorOnNode(name, ts.Diagnostics.let_is_not_allowed_to_be_used_as_a_name_in_let_or_const_declarations); + } + } + else { + var elements = name.elements; + for (var _i = 0; _i < elements.length; _i++) { + var element = elements[_i]; + checkGrammarNameInLetOrConstDeclarations(element.name); + } + } + } + function checkGrammarVariableDeclarationList(declarationList) { + var declarations = declarationList.declarations; + if (checkGrammarForDisallowedTrailingComma(declarationList.declarations)) { + return true; + } + if (!declarationList.declarations.length) { + return grammarErrorAtPos(ts.getSourceFileOfNode(declarationList), declarations.pos, declarations.end - declarations.pos, ts.Diagnostics.Variable_declaration_list_cannot_be_empty); + } + } + function allowLetAndConstDeclarations(parent) { + switch (parent.kind) { + case 183: + case 184: + case 185: + case 192: + case 186: + case 187: + case 188: + return false; + case 194: + return allowLetAndConstDeclarations(parent.parent); + } + return true; + } + function checkGrammarForDisallowedLetOrConstStatement(node) { + if (!allowLetAndConstDeclarations(node.parent)) { + if (ts.isLet(node.declarationList)) { + return grammarErrorOnNode(node, ts.Diagnostics.let_declarations_can_only_be_declared_inside_a_block); + } + else if (ts.isConst(node.declarationList)) { + return grammarErrorOnNode(node, ts.Diagnostics.const_declarations_can_only_be_declared_inside_a_block); + } + } + } + function isIntegerLiteral(expression) { + if (expression.kind === 167) { + var unaryExpression = expression; + if (unaryExpression.operator === 33 || unaryExpression.operator === 34) { + expression = unaryExpression.operand; + } + } + if (expression.kind === 7) { + return /^[0-9]+([eE]\+?[0-9]+)?$/.test(expression.text); + } + return false; + } + function checkGrammarEnumDeclaration(enumDecl) { + var enumIsConst = (enumDecl.flags & 8192) !== 0; + var hasError = false; + if (!enumIsConst) { + var inConstantEnumMemberSection = true; + var inAmbientContext = ts.isInAmbientContext(enumDecl); + for (var _i = 0, _a = enumDecl.members; _i < _a.length; _i++) { + var node = _a[_i]; + if (node.name.kind === 127) { + hasError = grammarErrorOnNode(node.name, ts.Diagnostics.Computed_property_names_are_not_allowed_in_enums); + } + else if (inAmbientContext) { + if (node.initializer && !isIntegerLiteral(node.initializer)) { + hasError = grammarErrorOnNode(node.name, ts.Diagnostics.Ambient_enum_elements_can_only_have_integer_literal_initializers) || hasError; + } + } + else if (node.initializer) { + inConstantEnumMemberSection = isIntegerLiteral(node.initializer); + } + else if (!inConstantEnumMemberSection) { + hasError = grammarErrorOnNode(node.name, ts.Diagnostics.Enum_member_must_have_initializer) || hasError; + } + } + } + return hasError; + } + function hasParseDiagnostics(sourceFile) { + return sourceFile.parseDiagnostics.length > 0; + } + function grammarErrorOnFirstToken(node, message, arg0, arg1, arg2) { + var sourceFile = ts.getSourceFileOfNode(node); + if (!hasParseDiagnostics(sourceFile)) { + var span = ts.getSpanOfTokenAtPosition(sourceFile, node.pos); + diagnostics.add(ts.createFileDiagnostic(sourceFile, span.start, span.length, message, arg0, arg1, arg2)); + return true; + } + } + function grammarErrorAtPos(sourceFile, start, length, message, arg0, arg1, arg2) { + if (!hasParseDiagnostics(sourceFile)) { + diagnostics.add(ts.createFileDiagnostic(sourceFile, start, length, message, arg0, arg1, arg2)); + return true; + } + } + function grammarErrorOnNode(node, message, arg0, arg1, arg2) { + var sourceFile = ts.getSourceFileOfNode(node); + if (!hasParseDiagnostics(sourceFile)) { + diagnostics.add(ts.createDiagnosticForNode(node, message, arg0, arg1, arg2)); + return true; + } + } + function checkGrammarEvalOrArgumentsInStrictMode(contextNode, name) { + if (name && name.kind === 65) { + var identifier = name; + if (contextNode && (contextNode.parserContextFlags & 1) && ts.isEvalOrArgumentsIdentifier(identifier)) { + var nameText = ts.declarationNameToString(identifier); + return grammarErrorOnNode(identifier, ts.Diagnostics.Invalid_use_of_0_in_strict_mode, nameText); + } + } + } + function checkGrammarConstructorTypeParameters(node) { + if (node.typeParameters) { + return grammarErrorAtPos(ts.getSourceFileOfNode(node), node.typeParameters.pos, node.typeParameters.end - node.typeParameters.pos, ts.Diagnostics.Type_parameters_cannot_appear_on_a_constructor_declaration); + } + } + function checkGrammarConstructorTypeAnnotation(node) { + if (node.type) { + return grammarErrorOnNode(node.type, ts.Diagnostics.Type_annotation_cannot_appear_on_a_constructor_declaration); + } + } + function checkGrammarProperty(node) { + if (node.parent.kind === 201) { + if (checkGrammarForInvalidQuestionMark(node, node.questionToken, ts.Diagnostics.A_class_member_cannot_be_declared_optional) || + checkGrammarForNonSymbolComputedProperty(node.name, ts.Diagnostics.A_computed_property_name_in_a_class_property_declaration_must_directly_refer_to_a_built_in_symbol)) { + return true; + } + } + else if (node.parent.kind === 202) { + if (checkGrammarForNonSymbolComputedProperty(node.name, ts.Diagnostics.A_computed_property_name_in_an_interface_must_directly_refer_to_a_built_in_symbol)) { + return true; + } + } + else if (node.parent.kind === 145) { + if (checkGrammarForNonSymbolComputedProperty(node.name, ts.Diagnostics.A_computed_property_name_in_a_type_literal_must_directly_refer_to_a_built_in_symbol)) { + return true; + } + } + if (ts.isInAmbientContext(node) && node.initializer) { + return grammarErrorOnFirstToken(node.initializer, ts.Diagnostics.Initializers_are_not_allowed_in_ambient_contexts); + } + } + function checkGrammarTopLevelElementForRequiredDeclareModifier(node) { + if (node.kind === 202 || + node.kind === 209 || + node.kind === 208 || + node.kind === 215 || + node.kind === 214 || + (node.flags & 2) || + (node.flags & (1 | 256))) { + return false; + } + return grammarErrorOnFirstToken(node, ts.Diagnostics.A_declare_modifier_is_required_for_a_top_level_declaration_in_a_d_ts_file); + } + function checkGrammarTopLevelElementsForRequiredDeclareModifier(file) { + for (var _i = 0, _a = file.statements; _i < _a.length; _i++) { + var decl = _a[_i]; + if (ts.isDeclaration(decl) || decl.kind === 180) { + if (checkGrammarTopLevelElementForRequiredDeclareModifier(decl)) { + return true; + } + } + } + } + function checkGrammarSourceFile(node) { + return ts.isInAmbientContext(node) && checkGrammarTopLevelElementsForRequiredDeclareModifier(node); + } + function checkGrammarStatementInAmbientContext(node) { + if (ts.isInAmbientContext(node)) { + if (isAccessor(node.parent.kind)) { + return getNodeLinks(node).hasReportedStatementInAmbientContext = true; + } + var links = getNodeLinks(node); + if (!links.hasReportedStatementInAmbientContext && ts.isFunctionLike(node.parent)) { + return getNodeLinks(node).hasReportedStatementInAmbientContext = grammarErrorOnFirstToken(node, ts.Diagnostics.An_implementation_cannot_be_declared_in_ambient_contexts); + } + if (node.parent.kind === 179 || node.parent.kind === 206 || node.parent.kind === 227) { + var links_1 = getNodeLinks(node.parent); + if (!links_1.hasReportedStatementInAmbientContext) { + return links_1.hasReportedStatementInAmbientContext = grammarErrorOnFirstToken(node, ts.Diagnostics.Statements_are_not_allowed_in_ambient_contexts); + } + } + else { + } + } + } + function checkGrammarNumbericLiteral(node) { + if (node.flags & 16384) { + if (node.parserContextFlags & 1) { + return grammarErrorOnNode(node, ts.Diagnostics.Octal_literals_are_not_allowed_in_strict_mode); + } + else if (languageVersion >= 1) { + return grammarErrorOnNode(node, ts.Diagnostics.Octal_literals_are_not_available_when_targeting_ECMAScript_5_and_higher); + } + } + } + function grammarErrorAfterFirstToken(node, message, arg0, arg1, arg2) { + var sourceFile = ts.getSourceFileOfNode(node); + if (!hasParseDiagnostics(sourceFile)) { + var span = ts.getSpanOfTokenAtPosition(sourceFile, node.pos); + diagnostics.add(ts.createFileDiagnostic(sourceFile, ts.textSpanEnd(span), 0, message, arg0, arg1, arg2)); + return true; + } + } + initializeTypeChecker(); + return checker; + } + ts.createTypeChecker = createTypeChecker; +})(ts || (ts = {})); +/// +var ts; +(function (ts) { + function getDeclarationDiagnostics(host, resolver, targetSourceFile) { + var diagnostics = []; + var jsFilePath = ts.getOwnEmitOutputFilePath(targetSourceFile, host, ".js"); + emitDeclarations(host, resolver, diagnostics, jsFilePath, targetSourceFile); + return diagnostics; + } + ts.getDeclarationDiagnostics = getDeclarationDiagnostics; + function emitDeclarations(host, resolver, diagnostics, jsFilePath, root) { + var newLine = host.getNewLine(); + var compilerOptions = host.getCompilerOptions(); + var languageVersion = compilerOptions.target || 0; + var write; + var writeLine; + var increaseIndent; + var decreaseIndent; + var writeTextOfNode; + var writer = createAndSetNewTextWriterWithSymbolWriter(); + var enclosingDeclaration; + var currentSourceFile; + var reportedDeclarationError = false; + var emitJsDocComments = compilerOptions.removeComments ? function (declaration) { } : writeJsDocComments; + var emit = compilerOptions.stripInternal ? stripInternal : emitNode; + var moduleElementDeclarationEmitInfo = []; + var asynchronousSubModuleDeclarationEmitInfo; + var referencePathsOutput = ""; + if (root) { + if (!compilerOptions.noResolve) { + var addedGlobalFileReference = false; + ts.forEach(root.referencedFiles, function (fileReference) { + var referencedFile = ts.tryResolveScriptReference(host, root, fileReference); + if (referencedFile && ((referencedFile.flags & 2048) || + ts.shouldEmitToOwnFile(referencedFile, compilerOptions) || + !addedGlobalFileReference)) { + writeReferencePath(referencedFile); + if (!ts.isExternalModuleOrDeclarationFile(referencedFile)) { + addedGlobalFileReference = true; + } + } + }); + } + emitSourceFile(root); + if (moduleElementDeclarationEmitInfo.length) { + var oldWriter = writer; + ts.forEach(moduleElementDeclarationEmitInfo, function (aliasEmitInfo) { + if (aliasEmitInfo.isVisible) { + ts.Debug.assert(aliasEmitInfo.node.kind === 209); + createAndSetNewTextWriterWithSymbolWriter(); + ts.Debug.assert(aliasEmitInfo.indent === 0); + writeImportDeclaration(aliasEmitInfo.node); + aliasEmitInfo.asynchronousOutput = writer.getText(); + } + }); + setWriter(oldWriter); + } + } + else { + var emittedReferencedFiles = []; + ts.forEach(host.getSourceFiles(), function (sourceFile) { + if (!ts.isExternalModuleOrDeclarationFile(sourceFile)) { + if (!compilerOptions.noResolve) { + ts.forEach(sourceFile.referencedFiles, function (fileReference) { + var referencedFile = ts.tryResolveScriptReference(host, sourceFile, fileReference); + if (referencedFile && (ts.isExternalModuleOrDeclarationFile(referencedFile) && + !ts.contains(emittedReferencedFiles, referencedFile))) { + writeReferencePath(referencedFile); + emittedReferencedFiles.push(referencedFile); + } + }); + } + emitSourceFile(sourceFile); + } + }); + } + return { + reportedDeclarationError: reportedDeclarationError, + moduleElementDeclarationEmitInfo: moduleElementDeclarationEmitInfo, + synchronousDeclarationOutput: writer.getText(), + referencePathsOutput: referencePathsOutput + }; + function hasInternalAnnotation(range) { + var text = currentSourceFile.text; + var comment = text.substring(range.pos, range.end); + return comment.indexOf("@internal") >= 0; + } + function stripInternal(node) { + if (node) { + var leadingCommentRanges = ts.getLeadingCommentRanges(currentSourceFile.text, node.pos); + if (ts.forEach(leadingCommentRanges, hasInternalAnnotation)) { + return; + } + emitNode(node); + } + } + function createAndSetNewTextWriterWithSymbolWriter() { + var writer = ts.createTextWriter(newLine); + writer.trackSymbol = trackSymbol; + writer.writeKeyword = writer.write; + writer.writeOperator = writer.write; + writer.writePunctuation = writer.write; + writer.writeSpace = writer.write; + writer.writeStringLiteral = writer.writeLiteral; + writer.writeParameter = writer.write; + writer.writeSymbol = writer.write; + setWriter(writer); + return writer; + } + function setWriter(newWriter) { + writer = newWriter; + write = newWriter.write; + writeTextOfNode = newWriter.writeTextOfNode; + writeLine = newWriter.writeLine; + increaseIndent = newWriter.increaseIndent; + decreaseIndent = newWriter.decreaseIndent; + } + function writeAsynchronousModuleElements(nodes) { + var oldWriter = writer; + ts.forEach(nodes, function (declaration) { + var nodeToCheck; + if (declaration.kind === 198) { + nodeToCheck = declaration.parent.parent; + } + else if (declaration.kind === 212 || declaration.kind === 213 || declaration.kind === 210) { + ts.Debug.fail("We should be getting ImportDeclaration instead to write"); + } + else { + nodeToCheck = declaration; + } + var moduleElementEmitInfo = ts.forEach(moduleElementDeclarationEmitInfo, function (declEmitInfo) { return declEmitInfo.node === nodeToCheck ? declEmitInfo : undefined; }); + if (!moduleElementEmitInfo && asynchronousSubModuleDeclarationEmitInfo) { + moduleElementEmitInfo = ts.forEach(asynchronousSubModuleDeclarationEmitInfo, function (declEmitInfo) { return declEmitInfo.node === nodeToCheck ? declEmitInfo : undefined; }); + } + if (moduleElementEmitInfo) { + if (moduleElementEmitInfo.node.kind === 209) { + moduleElementEmitInfo.isVisible = true; + } + else { + createAndSetNewTextWriterWithSymbolWriter(); + for (var declarationIndent = moduleElementEmitInfo.indent; declarationIndent; declarationIndent--) { + increaseIndent(); + } + if (nodeToCheck.kind === 205) { + ts.Debug.assert(asynchronousSubModuleDeclarationEmitInfo === undefined); + asynchronousSubModuleDeclarationEmitInfo = []; + } + writeModuleElement(nodeToCheck); + if (nodeToCheck.kind === 205) { + moduleElementEmitInfo.subModuleElementDeclarationEmitInfo = asynchronousSubModuleDeclarationEmitInfo; + asynchronousSubModuleDeclarationEmitInfo = undefined; + } + moduleElementEmitInfo.asynchronousOutput = writer.getText(); + } + } + }); + setWriter(oldWriter); + } + function handleSymbolAccessibilityError(symbolAccesibilityResult) { + if (symbolAccesibilityResult.accessibility === 0) { + if (symbolAccesibilityResult && symbolAccesibilityResult.aliasesToMakeVisible) { + writeAsynchronousModuleElements(symbolAccesibilityResult.aliasesToMakeVisible); + } + } + else { + reportedDeclarationError = true; + var errorInfo = writer.getSymbolAccessibilityDiagnostic(symbolAccesibilityResult); + if (errorInfo) { + if (errorInfo.typeName) { + diagnostics.push(ts.createDiagnosticForNode(symbolAccesibilityResult.errorNode || errorInfo.errorNode, errorInfo.diagnosticMessage, ts.getSourceTextOfNodeFromSourceFile(currentSourceFile, errorInfo.typeName), symbolAccesibilityResult.errorSymbolName, symbolAccesibilityResult.errorModuleName)); + } + else { + diagnostics.push(ts.createDiagnosticForNode(symbolAccesibilityResult.errorNode || errorInfo.errorNode, errorInfo.diagnosticMessage, symbolAccesibilityResult.errorSymbolName, symbolAccesibilityResult.errorModuleName)); + } + } + } + } + function trackSymbol(symbol, enclosingDeclaration, meaning) { + handleSymbolAccessibilityError(resolver.isSymbolAccessible(symbol, enclosingDeclaration, meaning)); + } + function writeTypeOfDeclaration(declaration, type, getSymbolAccessibilityDiagnostic) { + writer.getSymbolAccessibilityDiagnostic = getSymbolAccessibilityDiagnostic; + write(": "); + if (type) { + emitType(type); + } + else { + resolver.writeTypeOfDeclaration(declaration, enclosingDeclaration, 2, writer); + } + } + function writeReturnTypeAtSignature(signature, getSymbolAccessibilityDiagnostic) { + writer.getSymbolAccessibilityDiagnostic = getSymbolAccessibilityDiagnostic; + write(": "); + if (signature.type) { + emitType(signature.type); + } + else { + resolver.writeReturnTypeOfSignatureDeclaration(signature, enclosingDeclaration, 2, writer); + } + } + function emitLines(nodes) { + for (var _i = 0; _i < nodes.length; _i++) { + var node = nodes[_i]; + emit(node); + } + } + function emitSeparatedList(nodes, separator, eachNodeEmitFn, canEmitFn) { + var currentWriterPos = writer.getTextPos(); + for (var _i = 0; _i < nodes.length; _i++) { + var node = nodes[_i]; + if (!canEmitFn || canEmitFn(node)) { + if (currentWriterPos !== writer.getTextPos()) { + write(separator); + } + currentWriterPos = writer.getTextPos(); + eachNodeEmitFn(node); + } + } + } + function emitCommaList(nodes, eachNodeEmitFn, canEmitFn) { + emitSeparatedList(nodes, ", ", eachNodeEmitFn, canEmitFn); + } + function writeJsDocComments(declaration) { + if (declaration) { + var jsDocComments = ts.getJsDocComments(declaration, currentSourceFile); + ts.emitNewLineBeforeLeadingComments(currentSourceFile, writer, declaration, jsDocComments); + ts.emitComments(currentSourceFile, writer, jsDocComments, true, newLine, ts.writeCommentRange); + } + } + function emitTypeWithNewGetSymbolAccessibilityDiagnostic(type, getSymbolAccessibilityDiagnostic) { + writer.getSymbolAccessibilityDiagnostic = getSymbolAccessibilityDiagnostic; + emitType(type); + } + function emitType(type) { + switch (type.kind) { + case 112: + case 121: + case 119: + case 113: + case 122: + case 99: + case 8: + return writeTextOfNode(currentSourceFile, type); + case 177: + return emitHeritageClauseElement(type); + case 141: + return emitTypeReference(type); + case 144: + return emitTypeQuery(type); + case 146: + return emitArrayType(type); + case 147: + return emitTupleType(type); + case 148: + return emitUnionType(type); + case 149: + return emitParenType(type); + case 142: + case 143: + return emitSignatureDeclarationWithJsDocComments(type); + case 145: + return emitTypeLiteral(type); + case 65: + return emitEntityName(type); + case 126: + return emitEntityName(type); + } + function emitEntityName(entityName) { + var visibilityResult = resolver.isEntityNameVisible(entityName, entityName.parent.kind === 208 ? entityName.parent : enclosingDeclaration); + handleSymbolAccessibilityError(visibilityResult); + writeEntityName(entityName); + function writeEntityName(entityName) { + if (entityName.kind === 65) { + writeTextOfNode(currentSourceFile, entityName); + } + else { + var left = entityName.kind === 126 ? entityName.left : entityName.expression; + var right = entityName.kind === 126 ? entityName.right : entityName.name; + writeEntityName(left); + write("."); + writeTextOfNode(currentSourceFile, right); + } + } + } + function emitHeritageClauseElement(node) { + if (ts.isSupportedHeritageClauseElement(node)) { + ts.Debug.assert(node.expression.kind === 65 || node.expression.kind === 155); + emitEntityName(node.expression); + if (node.typeArguments) { + write("<"); + emitCommaList(node.typeArguments, emitType); + write(">"); + } + } + } + function emitTypeReference(type) { + emitEntityName(type.typeName); + if (type.typeArguments) { + write("<"); + emitCommaList(type.typeArguments, emitType); + write(">"); + } + } + function emitTypeQuery(type) { + write("typeof "); + emitEntityName(type.exprName); + } + function emitArrayType(type) { + emitType(type.elementType); + write("[]"); + } + function emitTupleType(type) { + write("["); + emitCommaList(type.elementTypes, emitType); + write("]"); + } + function emitUnionType(type) { + emitSeparatedList(type.types, " | ", emitType); + } + function emitParenType(type) { + write("("); + emitType(type.type); + write(")"); + } + function emitTypeLiteral(type) { + write("{"); + if (type.members.length) { + writeLine(); + increaseIndent(); + emitLines(type.members); + decreaseIndent(); + } + write("}"); + } + } + function emitSourceFile(node) { + currentSourceFile = node; + enclosingDeclaration = node; + emitLines(node.statements); + } + function emitExportAssignment(node) { + write(node.isExportEquals ? "export = " : "export default "); + if (node.expression.kind === 65) { + writeTextOfNode(currentSourceFile, node.expression); + } + else { + write(": "); + if (node.type) { + emitType(node.type); + } + else { + writer.getSymbolAccessibilityDiagnostic = getDefaultExportAccessibilityDiagnostic; + resolver.writeTypeOfExpression(node.expression, enclosingDeclaration, 2, writer); + } + } + write(";"); + writeLine(); + if (node.expression.kind === 65) { + var nodes = resolver.collectLinkedAliases(node.expression); + writeAsynchronousModuleElements(nodes); + } + function getDefaultExportAccessibilityDiagnostic(diagnostic) { + return { + diagnosticMessage: ts.Diagnostics.Default_export_of_the_module_has_or_is_using_private_name_0, + errorNode: node + }; + } + } + function isModuleElementVisible(node) { + return resolver.isDeclarationVisible(node); + } + function emitModuleElement(node, isModuleElementVisible) { + if (isModuleElementVisible) { + writeModuleElement(node); + } + else if (node.kind === 208 || + (node.parent.kind === 227 && ts.isExternalModule(currentSourceFile))) { + var isVisible; + if (asynchronousSubModuleDeclarationEmitInfo && node.parent.kind !== 227) { + asynchronousSubModuleDeclarationEmitInfo.push({ + node: node, + outputPos: writer.getTextPos(), + indent: writer.getIndent(), + isVisible: isVisible + }); + } + else { + if (node.kind === 209) { + var importDeclaration = node; + if (importDeclaration.importClause) { + isVisible = (importDeclaration.importClause.name && resolver.isDeclarationVisible(importDeclaration.importClause)) || + isVisibleNamedBinding(importDeclaration.importClause.namedBindings); + } + } + moduleElementDeclarationEmitInfo.push({ + node: node, + outputPos: writer.getTextPos(), + indent: writer.getIndent(), + isVisible: isVisible + }); + } + } + } + function writeModuleElement(node) { + switch (node.kind) { + case 200: + return writeFunctionDeclaration(node); + case 180: + return writeVariableStatement(node); + case 202: + return writeInterfaceDeclaration(node); + case 201: + return writeClassDeclaration(node); + case 203: + return writeTypeAliasDeclaration(node); + case 204: + return writeEnumDeclaration(node); + case 205: + return writeModuleDeclaration(node); + case 208: + return writeImportEqualsDeclaration(node); + case 209: + return writeImportDeclaration(node); + default: + ts.Debug.fail("Unknown symbol kind"); + } + } + function emitModuleElementDeclarationFlags(node) { + if (node.parent === currentSourceFile) { + if (node.flags & 1) { + write("export "); + } + if (node.flags & 256) { + write("default "); + } + else if (node.kind !== 202) { + write("declare "); + } + } + } + function emitClassMemberDeclarationFlags(node) { + if (node.flags & 32) { + write("private "); + } + else if (node.flags & 64) { + write("protected "); + } + if (node.flags & 128) { + write("static "); + } + } + function writeImportEqualsDeclaration(node) { + emitJsDocComments(node); + if (node.flags & 1) { + write("export "); + } + write("import "); + writeTextOfNode(currentSourceFile, node.name); + write(" = "); + if (ts.isInternalModuleImportEqualsDeclaration(node)) { + emitTypeWithNewGetSymbolAccessibilityDiagnostic(node.moduleReference, getImportEntityNameVisibilityError); + write(";"); + } + else { + write("require("); + writeTextOfNode(currentSourceFile, ts.getExternalModuleImportEqualsDeclarationExpression(node)); + write(");"); + } + writer.writeLine(); + function getImportEntityNameVisibilityError(symbolAccesibilityResult) { + return { + diagnosticMessage: ts.Diagnostics.Import_declaration_0_is_using_private_name_1, + errorNode: node, + typeName: node.name + }; + } + } + function isVisibleNamedBinding(namedBindings) { + if (namedBindings) { + if (namedBindings.kind === 211) { + return resolver.isDeclarationVisible(namedBindings); + } + else { + return ts.forEach(namedBindings.elements, function (namedImport) { return resolver.isDeclarationVisible(namedImport); }); + } + } + } + function writeImportDeclaration(node) { + if (!node.importClause && !(node.flags & 1)) { + return; + } + emitJsDocComments(node); + if (node.flags & 1) { + write("export "); + } + write("import "); + if (node.importClause) { + var currentWriterPos = writer.getTextPos(); + if (node.importClause.name && resolver.isDeclarationVisible(node.importClause)) { + writeTextOfNode(currentSourceFile, node.importClause.name); + } + if (node.importClause.namedBindings && isVisibleNamedBinding(node.importClause.namedBindings)) { + if (currentWriterPos !== writer.getTextPos()) { + write(", "); + } + if (node.importClause.namedBindings.kind === 211) { + write("* as "); + writeTextOfNode(currentSourceFile, node.importClause.namedBindings.name); + } + else { + write("{ "); + emitCommaList(node.importClause.namedBindings.elements, emitImportOrExportSpecifier, resolver.isDeclarationVisible); + write(" }"); + } + } + write(" from "); + } + writeTextOfNode(currentSourceFile, node.moduleSpecifier); + write(";"); + writer.writeLine(); + } + function emitImportOrExportSpecifier(node) { + if (node.propertyName) { + writeTextOfNode(currentSourceFile, node.propertyName); + write(" as "); + } + writeTextOfNode(currentSourceFile, node.name); + } + function emitExportSpecifier(node) { + emitImportOrExportSpecifier(node); + var nodes = resolver.collectLinkedAliases(node.propertyName || node.name); + writeAsynchronousModuleElements(nodes); + } + function emitExportDeclaration(node) { + emitJsDocComments(node); + write("export "); + if (node.exportClause) { + write("{ "); + emitCommaList(node.exportClause.elements, emitExportSpecifier); + write(" }"); + } + else { + write("*"); + } + if (node.moduleSpecifier) { + write(" from "); + writeTextOfNode(currentSourceFile, node.moduleSpecifier); + } + write(";"); + writer.writeLine(); + } + function writeModuleDeclaration(node) { + emitJsDocComments(node); + emitModuleElementDeclarationFlags(node); + write("module "); + writeTextOfNode(currentSourceFile, node.name); + while (node.body.kind !== 206) { + node = node.body; + write("."); + writeTextOfNode(currentSourceFile, node.name); + } + var prevEnclosingDeclaration = enclosingDeclaration; + enclosingDeclaration = node; + write(" {"); + writeLine(); + increaseIndent(); + emitLines(node.body.statements); + decreaseIndent(); + write("}"); + writeLine(); + enclosingDeclaration = prevEnclosingDeclaration; + } + function writeTypeAliasDeclaration(node) { + emitJsDocComments(node); + emitModuleElementDeclarationFlags(node); + write("type "); + writeTextOfNode(currentSourceFile, node.name); + write(" = "); + emitTypeWithNewGetSymbolAccessibilityDiagnostic(node.type, getTypeAliasDeclarationVisibilityError); + write(";"); + writeLine(); + function getTypeAliasDeclarationVisibilityError(symbolAccesibilityResult) { + return { + diagnosticMessage: ts.Diagnostics.Exported_type_alias_0_has_or_is_using_private_name_1, + errorNode: node.type, + typeName: node.name + }; + } + } + function writeEnumDeclaration(node) { + emitJsDocComments(node); + emitModuleElementDeclarationFlags(node); + if (ts.isConst(node)) { + write("const "); + } + write("enum "); + writeTextOfNode(currentSourceFile, node.name); + write(" {"); + writeLine(); + increaseIndent(); + emitLines(node.members); + decreaseIndent(); + write("}"); + writeLine(); + } + function emitEnumMemberDeclaration(node) { + emitJsDocComments(node); + writeTextOfNode(currentSourceFile, node.name); + var enumMemberValue = resolver.getConstantValue(node); + if (enumMemberValue !== undefined) { + write(" = "); + write(enumMemberValue.toString()); + } + write(","); + writeLine(); + } + function isPrivateMethodTypeParameter(node) { + return node.parent.kind === 134 && (node.parent.flags & 32); + } + function emitTypeParameters(typeParameters) { + function emitTypeParameter(node) { + increaseIndent(); + emitJsDocComments(node); + decreaseIndent(); + writeTextOfNode(currentSourceFile, node.name); + if (node.constraint && !isPrivateMethodTypeParameter(node)) { + write(" extends "); + if (node.parent.kind === 142 || + node.parent.kind === 143 || + (node.parent.parent && node.parent.parent.kind === 145)) { + ts.Debug.assert(node.parent.kind === 134 || + node.parent.kind === 133 || + node.parent.kind === 142 || + node.parent.kind === 143 || + node.parent.kind === 138 || + node.parent.kind === 139); + emitType(node.constraint); + } + else { + emitTypeWithNewGetSymbolAccessibilityDiagnostic(node.constraint, getTypeParameterConstraintVisibilityError); + } + } + function getTypeParameterConstraintVisibilityError(symbolAccesibilityResult) { + var diagnosticMessage; + switch (node.parent.kind) { + case 201: + diagnosticMessage = ts.Diagnostics.Type_parameter_0_of_exported_class_has_or_is_using_private_name_1; + break; + case 202: + diagnosticMessage = ts.Diagnostics.Type_parameter_0_of_exported_interface_has_or_is_using_private_name_1; + break; + case 139: + diagnosticMessage = ts.Diagnostics.Type_parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1; + break; + case 138: + diagnosticMessage = ts.Diagnostics.Type_parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1; + break; + case 134: + case 133: + if (node.parent.flags & 128) { + diagnosticMessage = ts.Diagnostics.Type_parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1; + } + else if (node.parent.parent.kind === 201) { + diagnosticMessage = ts.Diagnostics.Type_parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1; + } + else { + diagnosticMessage = ts.Diagnostics.Type_parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1; + } + break; + case 200: + diagnosticMessage = ts.Diagnostics.Type_parameter_0_of_exported_function_has_or_is_using_private_name_1; + break; + default: + ts.Debug.fail("This is unknown parent for type parameter: " + node.parent.kind); + } + return { + diagnosticMessage: diagnosticMessage, + errorNode: node, + typeName: node.name + }; + } + } + if (typeParameters) { + write("<"); + emitCommaList(typeParameters, emitTypeParameter); + write(">"); + } + } + function emitHeritageClause(typeReferences, isImplementsList) { + if (typeReferences) { + write(isImplementsList ? " implements " : " extends "); + emitCommaList(typeReferences, emitTypeOfTypeReference); + } + function emitTypeOfTypeReference(node) { + if (ts.isSupportedHeritageClauseElement(node)) { + emitTypeWithNewGetSymbolAccessibilityDiagnostic(node, getHeritageClauseVisibilityError); + } + function getHeritageClauseVisibilityError(symbolAccesibilityResult) { + var diagnosticMessage; + if (node.parent.parent.kind === 201) { + diagnosticMessage = isImplementsList ? + ts.Diagnostics.Implements_clause_of_exported_class_0_has_or_is_using_private_name_1 : + ts.Diagnostics.Extends_clause_of_exported_class_0_has_or_is_using_private_name_1; + } + else { + diagnosticMessage = ts.Diagnostics.Extends_clause_of_exported_interface_0_has_or_is_using_private_name_1; + } + return { + diagnosticMessage: diagnosticMessage, + errorNode: node, + typeName: node.parent.parent.name + }; + } + } + } + function writeClassDeclaration(node) { + function emitParameterProperties(constructorDeclaration) { + if (constructorDeclaration) { + ts.forEach(constructorDeclaration.parameters, function (param) { + if (param.flags & 112) { + emitPropertyDeclaration(param); + } + }); + } + } + emitJsDocComments(node); + emitModuleElementDeclarationFlags(node); + write("class "); + writeTextOfNode(currentSourceFile, node.name); + var prevEnclosingDeclaration = enclosingDeclaration; + enclosingDeclaration = node; + emitTypeParameters(node.typeParameters); + var baseTypeNode = ts.getClassExtendsHeritageClauseElement(node); + if (baseTypeNode) { + emitHeritageClause([baseTypeNode], false); + } + emitHeritageClause(ts.getClassImplementsHeritageClauseElements(node), true); + write(" {"); + writeLine(); + increaseIndent(); + emitParameterProperties(ts.getFirstConstructorWithBody(node)); + emitLines(node.members); + decreaseIndent(); + write("}"); + writeLine(); + enclosingDeclaration = prevEnclosingDeclaration; + } + function writeInterfaceDeclaration(node) { + emitJsDocComments(node); + emitModuleElementDeclarationFlags(node); + write("interface "); + writeTextOfNode(currentSourceFile, node.name); + var prevEnclosingDeclaration = enclosingDeclaration; + enclosingDeclaration = node; + emitTypeParameters(node.typeParameters); + emitHeritageClause(ts.getInterfaceBaseTypeNodes(node), false); + write(" {"); + writeLine(); + increaseIndent(); + emitLines(node.members); + decreaseIndent(); + write("}"); + writeLine(); + enclosingDeclaration = prevEnclosingDeclaration; + } + function emitPropertyDeclaration(node) { + if (ts.hasDynamicName(node)) { + return; + } + emitJsDocComments(node); + emitClassMemberDeclarationFlags(node); + emitVariableDeclaration(node); + write(";"); + writeLine(); + } + function emitVariableDeclaration(node) { + if (node.kind !== 198 || resolver.isDeclarationVisible(node)) { + if (ts.isBindingPattern(node.name)) { + emitBindingPattern(node.name); + } + else { + writeTextOfNode(currentSourceFile, node.name); + if ((node.kind === 132 || node.kind === 131) && ts.hasQuestionToken(node)) { + write("?"); + } + if ((node.kind === 132 || node.kind === 131) && node.parent.kind === 145) { + emitTypeOfVariableDeclarationFromTypeLiteral(node); + } + else if (!(node.flags & 32)) { + writeTypeOfDeclaration(node, node.type, getVariableDeclarationTypeVisibilityError); + } + } + } + function getVariableDeclarationTypeVisibilityDiagnosticMessage(symbolAccesibilityResult) { + if (node.kind === 198) { + return symbolAccesibilityResult.errorModuleName ? + symbolAccesibilityResult.accessibility === 2 ? + ts.Diagnostics.Exported_variable_0_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : + ts.Diagnostics.Exported_variable_0_has_or_is_using_name_1_from_private_module_2 : + ts.Diagnostics.Exported_variable_0_has_or_is_using_private_name_1; + } + else if (node.kind === 132 || node.kind === 131) { + if (node.flags & 128) { + return symbolAccesibilityResult.errorModuleName ? + symbolAccesibilityResult.accessibility === 2 ? + ts.Diagnostics.Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : + ts.Diagnostics.Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2 : + ts.Diagnostics.Public_static_property_0_of_exported_class_has_or_is_using_private_name_1; + } + else if (node.parent.kind === 201) { + return symbolAccesibilityResult.errorModuleName ? + symbolAccesibilityResult.accessibility === 2 ? + ts.Diagnostics.Public_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : + ts.Diagnostics.Public_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2 : + ts.Diagnostics.Public_property_0_of_exported_class_has_or_is_using_private_name_1; + } + else { + return symbolAccesibilityResult.errorModuleName ? + ts.Diagnostics.Property_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2 : + ts.Diagnostics.Property_0_of_exported_interface_has_or_is_using_private_name_1; + } + } + } + function getVariableDeclarationTypeVisibilityError(symbolAccesibilityResult) { + var diagnosticMessage = getVariableDeclarationTypeVisibilityDiagnosticMessage(symbolAccesibilityResult); + return diagnosticMessage !== undefined ? { + diagnosticMessage: diagnosticMessage, + errorNode: node, + typeName: node.name + } : undefined; + } + function emitBindingPattern(bindingPattern) { + var elements = []; + for (var _i = 0, _a = bindingPattern.elements; _i < _a.length; _i++) { + var element = _a[_i]; + if (element.kind !== 175) { + elements.push(element); + } + } + emitCommaList(elements, emitBindingElement); + } + function emitBindingElement(bindingElement) { + function getBindingElementTypeVisibilityError(symbolAccesibilityResult) { + var diagnosticMessage = getVariableDeclarationTypeVisibilityDiagnosticMessage(symbolAccesibilityResult); + return diagnosticMessage !== undefined ? { + diagnosticMessage: diagnosticMessage, + errorNode: bindingElement, + typeName: bindingElement.name + } : undefined; + } + if (bindingElement.name) { + if (ts.isBindingPattern(bindingElement.name)) { + emitBindingPattern(bindingElement.name); + } + else { + writeTextOfNode(currentSourceFile, bindingElement.name); + writeTypeOfDeclaration(bindingElement, undefined, getBindingElementTypeVisibilityError); + } + } + } + } + function emitTypeOfVariableDeclarationFromTypeLiteral(node) { + if (node.type) { + write(": "); + emitType(node.type); + } + } + function isVariableStatementVisible(node) { + return ts.forEach(node.declarationList.declarations, function (varDeclaration) { return resolver.isDeclarationVisible(varDeclaration); }); + } + function writeVariableStatement(node) { + emitJsDocComments(node); + emitModuleElementDeclarationFlags(node); + if (ts.isLet(node.declarationList)) { + write("let "); + } + else if (ts.isConst(node.declarationList)) { + write("const "); + } + else { + write("var "); + } + emitCommaList(node.declarationList.declarations, emitVariableDeclaration, resolver.isDeclarationVisible); + write(";"); + writeLine(); + } + function emitAccessorDeclaration(node) { + if (ts.hasDynamicName(node)) { + return; + } + var accessors = ts.getAllAccessorDeclarations(node.parent.members, node); + var accessorWithTypeAnnotation; + if (node === accessors.firstAccessor) { + emitJsDocComments(accessors.getAccessor); + emitJsDocComments(accessors.setAccessor); + emitClassMemberDeclarationFlags(node); + writeTextOfNode(currentSourceFile, node.name); + if (!(node.flags & 32)) { + accessorWithTypeAnnotation = node; + var type = getTypeAnnotationFromAccessor(node); + if (!type) { + var anotherAccessor = node.kind === 136 ? accessors.setAccessor : accessors.getAccessor; + type = getTypeAnnotationFromAccessor(anotherAccessor); + if (type) { + accessorWithTypeAnnotation = anotherAccessor; + } + } + writeTypeOfDeclaration(node, type, getAccessorDeclarationTypeVisibilityError); + } + write(";"); + writeLine(); + } + function getTypeAnnotationFromAccessor(accessor) { + if (accessor) { + return accessor.kind === 136 + ? accessor.type + : accessor.parameters.length > 0 + ? accessor.parameters[0].type + : undefined; + } + } + function getAccessorDeclarationTypeVisibilityError(symbolAccesibilityResult) { + var diagnosticMessage; + if (accessorWithTypeAnnotation.kind === 137) { + if (accessorWithTypeAnnotation.parent.flags & 128) { + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? + ts.Diagnostics.Parameter_0_of_public_static_property_setter_from_exported_class_has_or_is_using_name_1_from_private_module_2 : + ts.Diagnostics.Parameter_0_of_public_static_property_setter_from_exported_class_has_or_is_using_private_name_1; + } + else { + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? + ts.Diagnostics.Parameter_0_of_public_property_setter_from_exported_class_has_or_is_using_name_1_from_private_module_2 : + ts.Diagnostics.Parameter_0_of_public_property_setter_from_exported_class_has_or_is_using_private_name_1; + } + return { + diagnosticMessage: diagnosticMessage, + errorNode: accessorWithTypeAnnotation.parameters[0], + typeName: accessorWithTypeAnnotation.name + }; + } + else { + if (accessorWithTypeAnnotation.flags & 128) { + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? + symbolAccesibilityResult.accessibility === 2 ? + ts.Diagnostics.Return_type_of_public_static_property_getter_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named : + ts.Diagnostics.Return_type_of_public_static_property_getter_from_exported_class_has_or_is_using_name_0_from_private_module_1 : + ts.Diagnostics.Return_type_of_public_static_property_getter_from_exported_class_has_or_is_using_private_name_0; + } + else { + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? + symbolAccesibilityResult.accessibility === 2 ? + ts.Diagnostics.Return_type_of_public_property_getter_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named : + ts.Diagnostics.Return_type_of_public_property_getter_from_exported_class_has_or_is_using_name_0_from_private_module_1 : + ts.Diagnostics.Return_type_of_public_property_getter_from_exported_class_has_or_is_using_private_name_0; + } + return { + diagnosticMessage: diagnosticMessage, + errorNode: accessorWithTypeAnnotation.name, + typeName: undefined + }; + } + } + } + function writeFunctionDeclaration(node) { + if (ts.hasDynamicName(node)) { + return; + } + if (!resolver.isImplementationOfOverload(node)) { + emitJsDocComments(node); + if (node.kind === 200) { + emitModuleElementDeclarationFlags(node); + } + else if (node.kind === 134) { + emitClassMemberDeclarationFlags(node); + } + if (node.kind === 200) { + write("function "); + writeTextOfNode(currentSourceFile, node.name); + } + else if (node.kind === 135) { + write("constructor"); + } + else { + writeTextOfNode(currentSourceFile, node.name); + if (ts.hasQuestionToken(node)) { + write("?"); + } + } + emitSignatureDeclaration(node); + } + } + function emitSignatureDeclarationWithJsDocComments(node) { + emitJsDocComments(node); + emitSignatureDeclaration(node); + } + function emitSignatureDeclaration(node) { + if (node.kind === 139 || node.kind === 143) { + write("new "); + } + emitTypeParameters(node.typeParameters); + if (node.kind === 140) { + write("["); + } + else { + write("("); + } + var prevEnclosingDeclaration = enclosingDeclaration; + enclosingDeclaration = node; + emitCommaList(node.parameters, emitParameterDeclaration); + if (node.kind === 140) { + write("]"); + } + else { + write(")"); + } + var isFunctionTypeOrConstructorType = node.kind === 142 || node.kind === 143; + if (isFunctionTypeOrConstructorType || node.parent.kind === 145) { + if (node.type) { + write(isFunctionTypeOrConstructorType ? " => " : ": "); + emitType(node.type); + } + } + else if (node.kind !== 135 && !(node.flags & 32)) { + writeReturnTypeAtSignature(node, getReturnTypeVisibilityError); + } + enclosingDeclaration = prevEnclosingDeclaration; + if (!isFunctionTypeOrConstructorType) { + write(";"); + writeLine(); + } + function getReturnTypeVisibilityError(symbolAccesibilityResult) { + var diagnosticMessage; + switch (node.kind) { + case 139: + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? + ts.Diagnostics.Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1 : + ts.Diagnostics.Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_0; + break; + case 138: + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? + ts.Diagnostics.Return_type_of_call_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1 : + ts.Diagnostics.Return_type_of_call_signature_from_exported_interface_has_or_is_using_private_name_0; + break; + case 140: + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? + ts.Diagnostics.Return_type_of_index_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1 : + ts.Diagnostics.Return_type_of_index_signature_from_exported_interface_has_or_is_using_private_name_0; + break; + case 134: + case 133: + if (node.flags & 128) { + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? + symbolAccesibilityResult.accessibility === 2 ? + ts.Diagnostics.Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named : + ts.Diagnostics.Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_private_module_1 : + ts.Diagnostics.Return_type_of_public_static_method_from_exported_class_has_or_is_using_private_name_0; + } + else if (node.parent.kind === 201) { + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? + symbolAccesibilityResult.accessibility === 2 ? + ts.Diagnostics.Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named : + ts.Diagnostics.Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_private_module_1 : + ts.Diagnostics.Return_type_of_public_method_from_exported_class_has_or_is_using_private_name_0; + } + else { + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? + ts.Diagnostics.Return_type_of_method_from_exported_interface_has_or_is_using_name_0_from_private_module_1 : + ts.Diagnostics.Return_type_of_method_from_exported_interface_has_or_is_using_private_name_0; + } + break; + case 200: + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? + symbolAccesibilityResult.accessibility === 2 ? + ts.Diagnostics.Return_type_of_exported_function_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named : + ts.Diagnostics.Return_type_of_exported_function_has_or_is_using_name_0_from_private_module_1 : + ts.Diagnostics.Return_type_of_exported_function_has_or_is_using_private_name_0; + break; + default: + ts.Debug.fail("This is unknown kind for signature: " + node.kind); + } + return { + diagnosticMessage: diagnosticMessage, + errorNode: node.name || node + }; + } + } + function emitParameterDeclaration(node) { + increaseIndent(); + emitJsDocComments(node); + if (node.dotDotDotToken) { + write("..."); + } + if (ts.isBindingPattern(node.name)) { + emitBindingPattern(node.name); + } + else { + writeTextOfNode(currentSourceFile, node.name); + } + if (node.initializer || ts.hasQuestionToken(node)) { + write("?"); + } + decreaseIndent(); + if (node.parent.kind === 142 || + node.parent.kind === 143 || + node.parent.parent.kind === 145) { + emitTypeOfVariableDeclarationFromTypeLiteral(node); + } + else if (!(node.parent.flags & 32)) { + writeTypeOfDeclaration(node, node.type, getParameterDeclarationTypeVisibilityError); + } + function getParameterDeclarationTypeVisibilityError(symbolAccesibilityResult) { + var diagnosticMessage = getParameterDeclarationTypeVisibilityDiagnosticMessage(symbolAccesibilityResult); + return diagnosticMessage !== undefined ? { + diagnosticMessage: diagnosticMessage, + errorNode: node, + typeName: node.name + } : undefined; + } + function getParameterDeclarationTypeVisibilityDiagnosticMessage(symbolAccesibilityResult) { + switch (node.parent.kind) { + case 135: + return symbolAccesibilityResult.errorModuleName ? + symbolAccesibilityResult.accessibility === 2 ? + ts.Diagnostics.Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : + ts.Diagnostics.Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_private_module_2 : + ts.Diagnostics.Parameter_0_of_constructor_from_exported_class_has_or_is_using_private_name_1; + case 139: + return symbolAccesibilityResult.errorModuleName ? + ts.Diagnostics.Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2 : + ts.Diagnostics.Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1; + case 138: + return symbolAccesibilityResult.errorModuleName ? + ts.Diagnostics.Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2 : + ts.Diagnostics.Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1; + case 134: + case 133: + if (node.parent.flags & 128) { + return symbolAccesibilityResult.errorModuleName ? + symbolAccesibilityResult.accessibility === 2 ? + ts.Diagnostics.Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : + ts.Diagnostics.Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_private_module_2 : + ts.Diagnostics.Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1; + } + else if (node.parent.parent.kind === 201) { + return symbolAccesibilityResult.errorModuleName ? + symbolAccesibilityResult.accessibility === 2 ? + ts.Diagnostics.Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : + ts.Diagnostics.Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_private_module_2 : + ts.Diagnostics.Parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1; + } + else { + return symbolAccesibilityResult.errorModuleName ? + ts.Diagnostics.Parameter_0_of_method_from_exported_interface_has_or_is_using_name_1_from_private_module_2 : + ts.Diagnostics.Parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1; + } + case 200: + return symbolAccesibilityResult.errorModuleName ? + symbolAccesibilityResult.accessibility === 2 ? + ts.Diagnostics.Parameter_0_of_exported_function_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : + ts.Diagnostics.Parameter_0_of_exported_function_has_or_is_using_name_1_from_private_module_2 : + ts.Diagnostics.Parameter_0_of_exported_function_has_or_is_using_private_name_1; + default: + ts.Debug.fail("This is unknown parent for parameter: " + node.parent.kind); + } + } + function emitBindingPattern(bindingPattern) { + if (bindingPattern.kind === 150) { + write("{"); + emitCommaList(bindingPattern.elements, emitBindingElement); + write("}"); + } + else if (bindingPattern.kind === 151) { + write("["); + var elements = bindingPattern.elements; + emitCommaList(elements, emitBindingElement); + if (elements && elements.hasTrailingComma) { + write(", "); + } + write("]"); + } + } + function emitBindingElement(bindingElement) { + function getBindingElementTypeVisibilityError(symbolAccesibilityResult) { + var diagnosticMessage = getParameterDeclarationTypeVisibilityDiagnosticMessage(symbolAccesibilityResult); + return diagnosticMessage !== undefined ? { + diagnosticMessage: diagnosticMessage, + errorNode: bindingElement, + typeName: bindingElement.name + } : undefined; + } + if (bindingElement.kind === 175) { + write(" "); + } + else if (bindingElement.kind === 152) { + if (bindingElement.propertyName) { + writeTextOfNode(currentSourceFile, bindingElement.propertyName); + write(": "); + emitBindingPattern(bindingElement.name); + } + else if (bindingElement.name) { + if (ts.isBindingPattern(bindingElement.name)) { + emitBindingPattern(bindingElement.name); + } + else { + ts.Debug.assert(bindingElement.name.kind === 65); + if (bindingElement.dotDotDotToken) { + write("..."); + } + writeTextOfNode(currentSourceFile, bindingElement.name); + } + } + } + } + } + function emitNode(node) { + switch (node.kind) { + case 200: + case 205: + case 208: + case 202: + case 201: + case 203: + case 204: + return emitModuleElement(node, isModuleElementVisible(node)); + case 180: + return emitModuleElement(node, isVariableStatementVisible(node)); + case 209: + return emitModuleElement(node, !node.importClause); + case 215: + return emitExportDeclaration(node); + case 135: + case 134: + case 133: + return writeFunctionDeclaration(node); + case 139: + case 138: + case 140: + return emitSignatureDeclarationWithJsDocComments(node); + case 136: + case 137: + return emitAccessorDeclaration(node); + case 132: + case 131: + return emitPropertyDeclaration(node); + case 226: + return emitEnumMemberDeclaration(node); + case 214: + return emitExportAssignment(node); + case 227: + return emitSourceFile(node); + } + } + function writeReferencePath(referencedFile) { + var declFileName = referencedFile.flags & 2048 + ? referencedFile.fileName + : ts.shouldEmitToOwnFile(referencedFile, compilerOptions) + ? ts.getOwnEmitOutputFilePath(referencedFile, host, ".d.ts") + : ts.removeFileExtension(compilerOptions.out) + ".d.ts"; + declFileName = ts.getRelativePathToDirectoryOrUrl(ts.getDirectoryPath(ts.normalizeSlashes(jsFilePath)), declFileName, host.getCurrentDirectory(), host.getCanonicalFileName, false); + referencePathsOutput += "/// " + newLine; + } + } + function writeDeclarationFile(jsFilePath, sourceFile, host, resolver, diagnostics) { + var emitDeclarationResult = emitDeclarations(host, resolver, diagnostics, jsFilePath, sourceFile); + if (!emitDeclarationResult.reportedDeclarationError) { + var declarationOutput = emitDeclarationResult.referencePathsOutput + + getDeclarationOutput(emitDeclarationResult.synchronousDeclarationOutput, emitDeclarationResult.moduleElementDeclarationEmitInfo); + ts.writeFile(host, diagnostics, ts.removeFileExtension(jsFilePath) + ".d.ts", declarationOutput, host.getCompilerOptions().emitBOM); + } + function getDeclarationOutput(synchronousDeclarationOutput, moduleElementDeclarationEmitInfo) { + var appliedSyncOutputPos = 0; + var declarationOutput = ""; + ts.forEach(moduleElementDeclarationEmitInfo, function (aliasEmitInfo) { + if (aliasEmitInfo.asynchronousOutput) { + declarationOutput += synchronousDeclarationOutput.substring(appliedSyncOutputPos, aliasEmitInfo.outputPos); + declarationOutput += getDeclarationOutput(aliasEmitInfo.asynchronousOutput, aliasEmitInfo.subModuleElementDeclarationEmitInfo); + appliedSyncOutputPos = aliasEmitInfo.outputPos; + } + }); + declarationOutput += synchronousDeclarationOutput.substring(appliedSyncOutputPos); + return declarationOutput; + } + } + ts.writeDeclarationFile = writeDeclarationFile; +})(ts || (ts = {})); +/// +/// +var ts; +(function (ts) { + function isExternalModuleOrDeclarationFile(sourceFile) { + return ts.isExternalModule(sourceFile) || ts.isDeclarationFile(sourceFile); + } + ts.isExternalModuleOrDeclarationFile = isExternalModuleOrDeclarationFile; + function emitFiles(resolver, host, targetSourceFile) { + var compilerOptions = host.getCompilerOptions(); + var languageVersion = compilerOptions.target || 0; + var sourceMapDataList = compilerOptions.sourceMap ? [] : undefined; + var diagnostics = []; + var newLine = host.getNewLine(); + if (targetSourceFile === undefined) { + ts.forEach(host.getSourceFiles(), function (sourceFile) { + if (ts.shouldEmitToOwnFile(sourceFile, compilerOptions)) { + var jsFilePath = ts.getOwnEmitOutputFilePath(sourceFile, host, ".js"); + emitFile(jsFilePath, sourceFile); + } + }); + if (compilerOptions.out) { + emitFile(compilerOptions.out); + } + } + else { + if (ts.shouldEmitToOwnFile(targetSourceFile, compilerOptions)) { + var jsFilePath = ts.getOwnEmitOutputFilePath(targetSourceFile, host, ".js"); + emitFile(jsFilePath, targetSourceFile); + } + else if (!ts.isDeclarationFile(targetSourceFile) && compilerOptions.out) { + emitFile(compilerOptions.out); + } + } + diagnostics = ts.sortAndDeduplicateDiagnostics(diagnostics); + return { + emitSkipped: false, + diagnostics: diagnostics, + sourceMaps: sourceMapDataList + }; + function isNodeDescendentOf(node, ancestor) { + while (node) { + if (node === ancestor) + return true; + node = node.parent; + } + return false; + } + function isUniqueLocalName(name, container) { + for (var node = container; isNodeDescendentOf(node, container); node = node.nextContainer) { + if (node.locals && ts.hasProperty(node.locals, name)) { + if (node.locals[name].flags & (107455 | 1048576 | 8388608)) { + return false; + } + } + } + return true; + } + function emitJavaScript(jsFilePath, root) { + var writer = ts.createTextWriter(newLine); + var write = writer.write; + var writeTextOfNode = writer.writeTextOfNode; + var writeLine = writer.writeLine; + var increaseIndent = writer.increaseIndent; + var decreaseIndent = writer.decreaseIndent; + var currentSourceFile; + var generatedNameSet = {}; + var nodeToGeneratedName = []; + var blockScopedVariableToGeneratedName; + var computedPropertyNamesToGeneratedNames; + var extendsEmitted = false; + var decorateEmitted = false; + var tempFlags = 0; + var tempVariables; + var tempParameters; + var externalImports; + var exportSpecifiers; + var exportEquals; + var hasExportStars; + var writeEmittedFiles = writeJavaScriptFile; + var detachedCommentsInfo; + var writeComment = ts.writeCommentRange; + var emit = emitNodeWithoutSourceMap; + var emitStart = function (node) { }; + var emitEnd = function (node) { }; + var emitToken = emitTokenText; + var scopeEmitStart = function (scopeDeclaration, scopeName) { }; + var scopeEmitEnd = function () { }; + var sourceMapData; + if (compilerOptions.sourceMap) { + initializeEmitterWithSourceMaps(); + } + if (root) { + emitSourceFile(root); + } + else { + ts.forEach(host.getSourceFiles(), function (sourceFile) { + if (!isExternalModuleOrDeclarationFile(sourceFile)) { + emitSourceFile(sourceFile); + } + }); + } + writeLine(); + writeEmittedFiles(writer.getText(), compilerOptions.emitBOM); + return; + function emitSourceFile(sourceFile) { + currentSourceFile = sourceFile; + emit(sourceFile); + } + function isUniqueName(name) { + return !resolver.hasGlobalName(name) && + !ts.hasProperty(currentSourceFile.identifiers, name) && + !ts.hasProperty(generatedNameSet, name); + } + function makeTempVariableName(flags) { + if (flags && !(tempFlags & flags)) { + var name = flags === 268435456 ? "_i" : "_n"; + if (isUniqueName(name)) { + tempFlags |= flags; + return name; + } + } + while (true) { + var count = tempFlags & 268435455; + tempFlags++; + if (count !== 8 && count !== 13) { + var name_12 = count < 26 ? "_" + String.fromCharCode(97 + count) : "_" + (count - 26); + if (isUniqueName(name_12)) { + return name_12; + } + } + } + } + function makeUniqueName(baseName) { + if (baseName.charCodeAt(baseName.length - 1) !== 95) { + baseName += "_"; + } + var i = 1; + while (true) { + var generatedName = baseName + i; + if (isUniqueName(generatedName)) { + return generatedNameSet[generatedName] = generatedName; + } + i++; + } + } + function assignGeneratedName(node, name) { + nodeToGeneratedName[ts.getNodeId(node)] = ts.unescapeIdentifier(name); + } + function generateNameForFunctionOrClassDeclaration(node) { + if (!node.name) { + assignGeneratedName(node, makeUniqueName("default")); + } + } + function generateNameForModuleOrEnum(node) { + if (node.name.kind === 65) { + var name_13 = node.name.text; + assignGeneratedName(node, isUniqueLocalName(name_13, node) ? name_13 : makeUniqueName(name_13)); + } + } + function generateNameForImportOrExportDeclaration(node) { + var expr = ts.getExternalModuleName(node); + var baseName = expr.kind === 8 ? + ts.escapeIdentifier(ts.makeIdentifierFromModuleName(expr.text)) : "module"; + assignGeneratedName(node, makeUniqueName(baseName)); + } + function generateNameForImportDeclaration(node) { + if (node.importClause) { + generateNameForImportOrExportDeclaration(node); + } + } + function generateNameForExportDeclaration(node) { + if (node.moduleSpecifier) { + generateNameForImportOrExportDeclaration(node); + } + } + function generateNameForExportAssignment(node) { + if (node.expression && node.expression.kind !== 65) { + assignGeneratedName(node, makeUniqueName("default")); + } + } + function generateNameForNode(node) { + switch (node.kind) { + case 200: + case 201: + generateNameForFunctionOrClassDeclaration(node); + break; + case 205: + generateNameForModuleOrEnum(node); + generateNameForNode(node.body); + break; + case 204: + generateNameForModuleOrEnum(node); + break; + case 209: + generateNameForImportDeclaration(node); + break; + case 215: + generateNameForExportDeclaration(node); + break; + case 214: + generateNameForExportAssignment(node); + break; + } + } + function getGeneratedNameForNode(node) { + var nodeId = ts.getNodeId(node); + if (!nodeToGeneratedName[nodeId]) { + generateNameForNode(node); + } + return nodeToGeneratedName[nodeId]; + } + function initializeEmitterWithSourceMaps() { + var sourceMapDir; + var sourceMapSourceIndex = -1; + var sourceMapNameIndexMap = {}; + var sourceMapNameIndices = []; + function getSourceMapNameIndex() { + return sourceMapNameIndices.length ? sourceMapNameIndices[sourceMapNameIndices.length - 1] : -1; + } + var lastRecordedSourceMapSpan; + var lastEncodedSourceMapSpan = { + emittedLine: 1, + emittedColumn: 1, + sourceLine: 1, + sourceColumn: 1, + sourceIndex: 0 + }; + var lastEncodedNameIndex = 0; + function encodeLastRecordedSourceMapSpan() { + if (!lastRecordedSourceMapSpan || lastRecordedSourceMapSpan === lastEncodedSourceMapSpan) { + return; + } + var prevEncodedEmittedColumn = lastEncodedSourceMapSpan.emittedColumn; + if (lastEncodedSourceMapSpan.emittedLine == lastRecordedSourceMapSpan.emittedLine) { + if (sourceMapData.sourceMapMappings) { + sourceMapData.sourceMapMappings += ","; + } + } + else { + for (var encodedLine = lastEncodedSourceMapSpan.emittedLine; encodedLine < lastRecordedSourceMapSpan.emittedLine; encodedLine++) { + sourceMapData.sourceMapMappings += ";"; + } + prevEncodedEmittedColumn = 1; + } + sourceMapData.sourceMapMappings += base64VLQFormatEncode(lastRecordedSourceMapSpan.emittedColumn - prevEncodedEmittedColumn); + sourceMapData.sourceMapMappings += base64VLQFormatEncode(lastRecordedSourceMapSpan.sourceIndex - lastEncodedSourceMapSpan.sourceIndex); + sourceMapData.sourceMapMappings += base64VLQFormatEncode(lastRecordedSourceMapSpan.sourceLine - lastEncodedSourceMapSpan.sourceLine); + sourceMapData.sourceMapMappings += base64VLQFormatEncode(lastRecordedSourceMapSpan.sourceColumn - lastEncodedSourceMapSpan.sourceColumn); + if (lastRecordedSourceMapSpan.nameIndex >= 0) { + sourceMapData.sourceMapMappings += base64VLQFormatEncode(lastRecordedSourceMapSpan.nameIndex - lastEncodedNameIndex); + lastEncodedNameIndex = lastRecordedSourceMapSpan.nameIndex; + } + lastEncodedSourceMapSpan = lastRecordedSourceMapSpan; + sourceMapData.sourceMapDecodedMappings.push(lastEncodedSourceMapSpan); + function base64VLQFormatEncode(inValue) { + function base64FormatEncode(inValue) { + if (inValue < 64) { + return 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.charAt(inValue); + } + throw TypeError(inValue + ": not a 64 based value"); + } + if (inValue < 0) { + inValue = ((-inValue) << 1) + 1; + } + else { + inValue = inValue << 1; + } + var encodedStr = ""; + do { + var currentDigit = inValue & 31; + inValue = inValue >> 5; + if (inValue > 0) { + currentDigit = currentDigit | 32; + } + encodedStr = encodedStr + base64FormatEncode(currentDigit); + } while (inValue > 0); + return encodedStr; + } + } + function recordSourceMapSpan(pos) { + var sourceLinePos = ts.getLineAndCharacterOfPosition(currentSourceFile, pos); + sourceLinePos.line++; + sourceLinePos.character++; + var emittedLine = writer.getLine(); + var emittedColumn = writer.getColumn(); + if (!lastRecordedSourceMapSpan || + lastRecordedSourceMapSpan.emittedLine != emittedLine || + lastRecordedSourceMapSpan.emittedColumn != emittedColumn || + (lastRecordedSourceMapSpan.sourceIndex === sourceMapSourceIndex && + (lastRecordedSourceMapSpan.sourceLine > sourceLinePos.line || + (lastRecordedSourceMapSpan.sourceLine === sourceLinePos.line && lastRecordedSourceMapSpan.sourceColumn > sourceLinePos.character)))) { + encodeLastRecordedSourceMapSpan(); + lastRecordedSourceMapSpan = { + emittedLine: emittedLine, + emittedColumn: emittedColumn, + sourceLine: sourceLinePos.line, + sourceColumn: sourceLinePos.character, + nameIndex: getSourceMapNameIndex(), + sourceIndex: sourceMapSourceIndex + }; + } + else { + lastRecordedSourceMapSpan.sourceLine = sourceLinePos.line; + lastRecordedSourceMapSpan.sourceColumn = sourceLinePos.character; + lastRecordedSourceMapSpan.sourceIndex = sourceMapSourceIndex; + } + } + function recordEmitNodeStartSpan(node) { + recordSourceMapSpan(ts.skipTrivia(currentSourceFile.text, node.pos)); + } + function recordEmitNodeEndSpan(node) { + recordSourceMapSpan(node.end); + } + function writeTextWithSpanRecord(tokenKind, startPos, emitFn) { + var tokenStartPos = ts.skipTrivia(currentSourceFile.text, startPos); + recordSourceMapSpan(tokenStartPos); + var tokenEndPos = emitTokenText(tokenKind, tokenStartPos, emitFn); + recordSourceMapSpan(tokenEndPos); + return tokenEndPos; + } + function recordNewSourceFileStart(node) { + var sourcesDirectoryPath = compilerOptions.sourceRoot ? host.getCommonSourceDirectory() : sourceMapDir; + sourceMapData.sourceMapSources.push(ts.getRelativePathToDirectoryOrUrl(sourcesDirectoryPath, node.fileName, host.getCurrentDirectory(), host.getCanonicalFileName, true)); + sourceMapSourceIndex = sourceMapData.sourceMapSources.length - 1; + sourceMapData.inputSourceFileNames.push(node.fileName); + } + function recordScopeNameOfNode(node, scopeName) { + function recordScopeNameIndex(scopeNameIndex) { + sourceMapNameIndices.push(scopeNameIndex); + } + function recordScopeNameStart(scopeName) { + var scopeNameIndex = -1; + if (scopeName) { + var parentIndex = getSourceMapNameIndex(); + if (parentIndex !== -1) { + var name_14 = node.name; + if (!name_14 || name_14.kind !== 127) { + scopeName = "." + scopeName; + } + scopeName = sourceMapData.sourceMapNames[parentIndex] + scopeName; + } + scopeNameIndex = ts.getProperty(sourceMapNameIndexMap, scopeName); + if (scopeNameIndex === undefined) { + scopeNameIndex = sourceMapData.sourceMapNames.length; + sourceMapData.sourceMapNames.push(scopeName); + sourceMapNameIndexMap[scopeName] = scopeNameIndex; + } + } + recordScopeNameIndex(scopeNameIndex); + } + if (scopeName) { + recordScopeNameStart(scopeName); + } + else if (node.kind === 200 || + node.kind === 162 || + node.kind === 134 || + node.kind === 133 || + node.kind === 136 || + node.kind === 137 || + node.kind === 205 || + node.kind === 201 || + node.kind === 204) { + if (node.name) { + var name_15 = node.name; + scopeName = name_15.kind === 127 + ? ts.getTextOfNode(name_15) + : node.name.text; + } + recordScopeNameStart(scopeName); + } + else { + recordScopeNameIndex(getSourceMapNameIndex()); + } + } + function recordScopeNameEnd() { + sourceMapNameIndices.pop(); + } + ; + function writeCommentRangeWithMap(curentSourceFile, writer, comment, newLine) { + recordSourceMapSpan(comment.pos); + ts.writeCommentRange(currentSourceFile, writer, comment, newLine); + recordSourceMapSpan(comment.end); + } + function serializeSourceMapContents(version, file, sourceRoot, sources, names, mappings) { + if (typeof JSON !== "undefined") { + return JSON.stringify({ + version: version, + file: file, + sourceRoot: sourceRoot, + sources: sources, + names: names, + mappings: mappings + }); + } + return "{\"version\":" + version + ",\"file\":\"" + ts.escapeString(file) + "\",\"sourceRoot\":\"" + ts.escapeString(sourceRoot) + "\",\"sources\":[" + serializeStringArray(sources) + "],\"names\":[" + serializeStringArray(names) + "],\"mappings\":\"" + ts.escapeString(mappings) + "\"}"; + function serializeStringArray(list) { + var output = ""; + for (var i = 0, n = list.length; i < n; i++) { + if (i) { + output += ","; + } + output += "\"" + ts.escapeString(list[i]) + "\""; + } + return output; + } + } + function writeJavaScriptAndSourceMapFile(emitOutput, writeByteOrderMark) { + encodeLastRecordedSourceMapSpan(); + ts.writeFile(host, diagnostics, sourceMapData.sourceMapFilePath, serializeSourceMapContents(3, sourceMapData.sourceMapFile, sourceMapData.sourceMapSourceRoot, sourceMapData.sourceMapSources, sourceMapData.sourceMapNames, sourceMapData.sourceMapMappings), false); + sourceMapDataList.push(sourceMapData); + writeJavaScriptFile(emitOutput + "//# sourceMappingURL=" + sourceMapData.jsSourceMappingURL, writeByteOrderMark); + } + var sourceMapJsFile = ts.getBaseFileName(ts.normalizeSlashes(jsFilePath)); + sourceMapData = { + sourceMapFilePath: jsFilePath + ".map", + jsSourceMappingURL: sourceMapJsFile + ".map", + sourceMapFile: sourceMapJsFile, + sourceMapSourceRoot: compilerOptions.sourceRoot || "", + sourceMapSources: [], + inputSourceFileNames: [], + sourceMapNames: [], + sourceMapMappings: "", + sourceMapDecodedMappings: [] + }; + sourceMapData.sourceMapSourceRoot = ts.normalizeSlashes(sourceMapData.sourceMapSourceRoot); + if (sourceMapData.sourceMapSourceRoot.length && sourceMapData.sourceMapSourceRoot.charCodeAt(sourceMapData.sourceMapSourceRoot.length - 1) !== 47) { + sourceMapData.sourceMapSourceRoot += ts.directorySeparator; + } + if (compilerOptions.mapRoot) { + sourceMapDir = ts.normalizeSlashes(compilerOptions.mapRoot); + if (root) { + sourceMapDir = ts.getDirectoryPath(ts.getSourceFilePathInNewDir(root, host, sourceMapDir)); + } + if (!ts.isRootedDiskPath(sourceMapDir) && !ts.isUrl(sourceMapDir)) { + sourceMapDir = ts.combinePaths(host.getCommonSourceDirectory(), sourceMapDir); + sourceMapData.jsSourceMappingURL = ts.getRelativePathToDirectoryOrUrl(ts.getDirectoryPath(ts.normalizePath(jsFilePath)), ts.combinePaths(sourceMapDir, sourceMapData.jsSourceMappingURL), host.getCurrentDirectory(), host.getCanonicalFileName, true); + } + else { + sourceMapData.jsSourceMappingURL = ts.combinePaths(sourceMapDir, sourceMapData.jsSourceMappingURL); + } + } + else { + sourceMapDir = ts.getDirectoryPath(ts.normalizePath(jsFilePath)); + } + function emitNodeWithSourceMap(node, allowGeneratedIdentifiers) { + if (node) { + if (ts.nodeIsSynthesized(node)) { + return emitNodeWithoutSourceMap(node, false); + } + if (node.kind != 227) { + recordEmitNodeStartSpan(node); + emitNodeWithoutSourceMap(node, allowGeneratedIdentifiers); + recordEmitNodeEndSpan(node); + } + else { + recordNewSourceFileStart(node); + emitNodeWithoutSourceMap(node, false); + } + } + } + writeEmittedFiles = writeJavaScriptAndSourceMapFile; + emit = emitNodeWithSourceMap; + emitStart = recordEmitNodeStartSpan; + emitEnd = recordEmitNodeEndSpan; + emitToken = writeTextWithSpanRecord; + scopeEmitStart = recordScopeNameOfNode; + scopeEmitEnd = recordScopeNameEnd; + writeComment = writeCommentRangeWithMap; + } + function writeJavaScriptFile(emitOutput, writeByteOrderMark) { + ts.writeFile(host, diagnostics, jsFilePath, emitOutput, writeByteOrderMark); + } + function createTempVariable(flags) { + var result = ts.createSynthesizedNode(65); + result.text = makeTempVariableName(flags); + return result; + } + function recordTempDeclaration(name) { + if (!tempVariables) { + tempVariables = []; + } + tempVariables.push(name); + } + function createAndRecordTempVariable(flags) { + var temp = createTempVariable(flags); + recordTempDeclaration(temp); + return temp; + } + function emitTempDeclarations(newLine) { + if (tempVariables) { + if (newLine) { + writeLine(); + } + else { + write(" "); + } + write("var "); + emitCommaList(tempVariables); + write(";"); + } + } + function emitTokenText(tokenKind, startPos, emitFn) { + var tokenString = ts.tokenToString(tokenKind); + if (emitFn) { + emitFn(); + } + else { + write(tokenString); + } + return startPos + tokenString.length; + } + function emitOptional(prefix, node) { + if (node) { + write(prefix); + emit(node); + } + } + function emitParenthesizedIf(node, parenthesized) { + if (parenthesized) { + write("("); + } + emit(node); + if (parenthesized) { + write(")"); + } + } + function emitTrailingCommaIfPresent(nodeList) { + if (nodeList.hasTrailingComma) { + write(","); + } + } + function emitLinePreservingList(parent, nodes, allowTrailingComma, spacesBetweenBraces) { + ts.Debug.assert(nodes.length > 0); + increaseIndent(); + if (nodeStartPositionsAreOnSameLine(parent, nodes[0])) { + if (spacesBetweenBraces) { + write(" "); + } + } + else { + writeLine(); + } + for (var i = 0, n = nodes.length; i < n; i++) { + if (i) { + if (nodeEndIsOnSameLineAsNodeStart(nodes[i - 1], nodes[i])) { + write(", "); + } + else { + write(","); + writeLine(); + } + } + emit(nodes[i]); + } + if (nodes.hasTrailingComma && allowTrailingComma) { + write(","); + } + decreaseIndent(); + if (nodeEndPositionsAreOnSameLine(parent, ts.lastOrUndefined(nodes))) { + if (spacesBetweenBraces) { + write(" "); + } + } + else { + writeLine(); + } + } + function emitList(nodes, start, count, multiLine, trailingComma) { + for (var i = 0; i < count; i++) { + if (multiLine) { + if (i) { + write(","); + } + writeLine(); + } + else { + if (i) { + write(", "); + } + } + emit(nodes[start + i]); + } + if (trailingComma) { + write(","); + } + if (multiLine) { + writeLine(); + } + } + function emitCommaList(nodes) { + if (nodes) { + emitList(nodes, 0, nodes.length, false, false); + } + } + function emitLines(nodes) { + emitLinesStartingAt(nodes, 0); + } + function emitLinesStartingAt(nodes, startIndex) { + for (var i = startIndex; i < nodes.length; i++) { + writeLine(); + emit(nodes[i]); + } + } + function isBinaryOrOctalIntegerLiteral(node, text) { + if (node.kind === 7 && text.length > 1) { + switch (text.charCodeAt(1)) { + case 98: + case 66: + case 111: + case 79: + return true; + } + } + return false; + } + function emitLiteral(node) { + var text = getLiteralText(node); + if (compilerOptions.sourceMap && (node.kind === 8 || ts.isTemplateLiteralKind(node.kind))) { + writer.writeLiteral(text); + } + else if (languageVersion < 2 && isBinaryOrOctalIntegerLiteral(node, text)) { + write(node.text); + } + else { + write(text); + } + } + function getLiteralText(node) { + if (languageVersion < 2 && (ts.isTemplateLiteralKind(node.kind) || node.hasExtendedUnicodeEscape)) { + return getQuotedEscapedLiteralText('"', node.text, '"'); + } + if (node.parent) { + return ts.getSourceTextOfNodeFromSourceFile(currentSourceFile, node); + } + switch (node.kind) { + case 8: + return getQuotedEscapedLiteralText('"', node.text, '"'); + case 10: + return getQuotedEscapedLiteralText('`', node.text, '`'); + case 11: + return getQuotedEscapedLiteralText('`', node.text, '${'); + case 12: + return getQuotedEscapedLiteralText('}', node.text, '${'); + case 13: + return getQuotedEscapedLiteralText('}', node.text, '`'); + case 7: + return node.text; + } + ts.Debug.fail("Literal kind '" + node.kind + "' not accounted for."); + } + function getQuotedEscapedLiteralText(leftQuote, text, rightQuote) { + return leftQuote + ts.escapeNonAsciiCharacters(ts.escapeString(text)) + rightQuote; + } + function emitDownlevelRawTemplateLiteral(node) { + var text = ts.getSourceTextOfNodeFromSourceFile(currentSourceFile, node); + var isLast = node.kind === 10 || node.kind === 13; + text = text.substring(1, text.length - (isLast ? 1 : 2)); + text = text.replace(/\r\n?/g, "\n"); + text = ts.escapeString(text); + write('"' + text + '"'); + } + function emitDownlevelTaggedTemplateArray(node, literalEmitter) { + write("["); + if (node.template.kind === 10) { + literalEmitter(node.template); + } + else { + literalEmitter(node.template.head); + ts.forEach(node.template.templateSpans, function (child) { + write(", "); + literalEmitter(child.literal); + }); + } + write("]"); + } + function emitDownlevelTaggedTemplate(node) { + var tempVariable = createAndRecordTempVariable(0); + write("("); + emit(tempVariable); + write(" = "); + emitDownlevelTaggedTemplateArray(node, emit); + write(", "); + emit(tempVariable); + write(".raw = "); + emitDownlevelTaggedTemplateArray(node, emitDownlevelRawTemplateLiteral); + write(", "); + emitParenthesizedIf(node.tag, needsParenthesisForPropertyAccessOrInvocation(node.tag)); + write("("); + emit(tempVariable); + if (node.template.kind === 171) { + ts.forEach(node.template.templateSpans, function (templateSpan) { + write(", "); + var needsParens = templateSpan.expression.kind === 169 + && templateSpan.expression.operatorToken.kind === 23; + emitParenthesizedIf(templateSpan.expression, needsParens); + }); + } + write("))"); + } + function emitTemplateExpression(node) { + if (languageVersion >= 2) { + ts.forEachChild(node, emit); + return; + } + var emitOuterParens = ts.isExpression(node.parent) + && templateNeedsParens(node, node.parent); + if (emitOuterParens) { + write("("); + } + var headEmitted = false; + if (shouldEmitTemplateHead()) { + emitLiteral(node.head); + headEmitted = true; + } + for (var i = 0, n = node.templateSpans.length; i < n; i++) { + var templateSpan = node.templateSpans[i]; + var needsParens = templateSpan.expression.kind !== 161 + && comparePrecedenceToBinaryPlus(templateSpan.expression) !== 1; + if (i > 0 || headEmitted) { + write(" + "); + } + emitParenthesizedIf(templateSpan.expression, needsParens); + if (templateSpan.literal.text.length !== 0) { + write(" + "); + emitLiteral(templateSpan.literal); + } + } + if (emitOuterParens) { + write(")"); + } + function shouldEmitTemplateHead() { + // If this expression has an empty head literal and the first template span has a non-empty + // literal, then emitting the empty head literal is not necessary. + // `${ foo } and ${ bar }` + // can be emitted as + // foo + " and " + bar + // This is because it is only required that one of the first two operands in the emit + // output must be a string literal, so that the other operand and all following operands + // are forced into strings. + // + // If the first template span has an empty literal, then the head must still be emitted. + // `${ foo }${ bar }` + // must still be emitted as + // "" + foo + bar + ts.Debug.assert(node.templateSpans.length !== 0); + return node.head.text.length !== 0 || node.templateSpans[0].literal.text.length === 0; + } + function templateNeedsParens(template, parent) { + switch (parent.kind) { + case 157: + case 158: + return parent.expression === template; + case 159: + case 161: + return false; + default: + return comparePrecedenceToBinaryPlus(parent) !== -1; + } + } + function comparePrecedenceToBinaryPlus(expression) { + switch (expression.kind) { + case 169: + switch (expression.operatorToken.kind) { + case 35: + case 36: + case 37: + return 1; + case 33: + case 34: + return 0; + default: + return -1; + } + case 170: + return -1; + default: + return 1; + } + } + } + function emitTemplateSpan(span) { + emit(span.expression); + emit(span.literal); + } + function emitExpressionForPropertyName(node) { + ts.Debug.assert(node.kind !== 152); + if (node.kind === 8) { + emitLiteral(node); + } + else if (node.kind === 127) { + if (ts.nodeIsDecorated(node.parent)) { + if (!computedPropertyNamesToGeneratedNames) { + computedPropertyNamesToGeneratedNames = []; + } + var generatedName = computedPropertyNamesToGeneratedNames[node.id]; + if (generatedName) { + write(generatedName); + return; + } + var generatedVariable = createTempVariable(0); + generatedName = generatedVariable.text; + recordTempDeclaration(generatedVariable); + computedPropertyNamesToGeneratedNames[node.id] = generatedName; + write(generatedName); + write(" = "); + } + emit(node.expression); + } + else { + write("\""); + if (node.kind === 7) { + write(node.text); + } + else { + writeTextOfNode(currentSourceFile, node); + } + write("\""); + } + } + function isNotExpressionIdentifier(node) { + var parent = node.parent; + switch (parent.kind) { + case 129: + case 198: + case 152: + case 132: + case 131: + case 224: + case 225: + case 226: + case 134: + case 133: + case 200: + case 136: + case 137: + case 162: + case 201: + case 202: + case 204: + case 205: + case 208: + case 210: + case 211: + return parent.name === node; + case 213: + case 217: + return parent.name === node || parent.propertyName === node; + case 190: + case 189: + case 214: + return false; + case 194: + return node.parent.label === node; + } + } + function emitExpressionIdentifier(node) { + var substitution = resolver.getExpressionNameSubstitution(node, getGeneratedNameForNode); + if (substitution) { + write(substitution); + } + else { + writeTextOfNode(currentSourceFile, node); + } + } + function getGeneratedNameForIdentifier(node) { + if (ts.nodeIsSynthesized(node) || !blockScopedVariableToGeneratedName) { + return undefined; + } + var variableId = resolver.getBlockScopedVariableId(node); + if (variableId === undefined) { + return undefined; + } + return blockScopedVariableToGeneratedName[variableId]; + } + function emitIdentifier(node, allowGeneratedIdentifiers) { + if (allowGeneratedIdentifiers) { + var generatedName = getGeneratedNameForIdentifier(node); + if (generatedName) { + write(generatedName); + return; + } + } + if (!node.parent) { + write(node.text); + } + else if (!isNotExpressionIdentifier(node)) { + emitExpressionIdentifier(node); + } + else { + writeTextOfNode(currentSourceFile, node); + } + } + function emitThis(node) { + if (resolver.getNodeCheckFlags(node) & 2) { + write("_this"); + } + else { + write("this"); + } + } + function emitSuper(node) { + if (languageVersion >= 2) { + write("super"); + } + else { + var flags = resolver.getNodeCheckFlags(node); + if (flags & 16) { + write("_super.prototype"); + } + else { + write("_super"); + } + } + } + function emitObjectBindingPattern(node) { + write("{ "); + var elements = node.elements; + emitList(elements, 0, elements.length, false, elements.hasTrailingComma); + write(" }"); + } + function emitArrayBindingPattern(node) { + write("["); + var elements = node.elements; + emitList(elements, 0, elements.length, false, elements.hasTrailingComma); + write("]"); + } + function emitBindingElement(node) { + if (node.propertyName) { + emit(node.propertyName, false); + write(": "); + } + if (node.dotDotDotToken) { + write("..."); + } + if (ts.isBindingPattern(node.name)) { + emit(node.name); + } + else { + emitModuleMemberName(node); + } + emitOptional(" = ", node.initializer); + } + function emitSpreadElementExpression(node) { + write("..."); + emit(node.expression); + } + function needsParenthesisForPropertyAccessOrInvocation(node) { + switch (node.kind) { + case 65: + case 153: + case 155: + case 156: + case 157: + case 161: + return false; + } + return true; + } + function emitListWithSpread(elements, multiLine, trailingComma) { + var pos = 0; + var group = 0; + var length = elements.length; + while (pos < length) { + if (group === 1) { + write(".concat("); + } + else if (group > 1) { + write(", "); + } + var e = elements[pos]; + if (e.kind === 173) { + e = e.expression; + emitParenthesizedIf(e, group === 0 && needsParenthesisForPropertyAccessOrInvocation(e)); + pos++; + } + else { + var i = pos; + while (i < length && elements[i].kind !== 173) { + i++; + } + write("["); + if (multiLine) { + increaseIndent(); + } + emitList(elements, pos, i - pos, multiLine, trailingComma && i === length); + if (multiLine) { + decreaseIndent(); + } + write("]"); + pos = i; + } + group++; + } + if (group > 1) { + write(")"); + } + } + function isSpreadElementExpression(node) { + return node.kind === 173; + } + function emitArrayLiteral(node) { + var elements = node.elements; + if (elements.length === 0) { + write("[]"); + } + else if (languageVersion >= 2 || !ts.forEach(elements, isSpreadElementExpression)) { + write("["); + emitLinePreservingList(node, node.elements, elements.hasTrailingComma, false); + write("]"); + } + else { + emitListWithSpread(elements, (node.flags & 512) !== 0, elements.hasTrailingComma); + } + } + function emitDownlevelObjectLiteralWithComputedProperties(node, firstComputedPropertyIndex) { + var parenthesizedObjectLiteral = createDownlevelObjectLiteralWithComputedProperties(node, firstComputedPropertyIndex); + return emit(parenthesizedObjectLiteral); + } + function createDownlevelObjectLiteralWithComputedProperties(originalObjectLiteral, firstComputedPropertyIndex) { + var tempVar = createAndRecordTempVariable(0); + var initialObjectLiteral = ts.createSynthesizedNode(154); + initialObjectLiteral.properties = originalObjectLiteral.properties.slice(0, firstComputedPropertyIndex); + initialObjectLiteral.flags |= 512; + var propertyPatches = createBinaryExpression(tempVar, 53, initialObjectLiteral); + ts.forEach(originalObjectLiteral.properties, function (property) { + var patchedProperty = tryCreatePatchingPropertyAssignment(originalObjectLiteral, tempVar, property); + if (patchedProperty) { + propertyPatches = createBinaryExpression(propertyPatches, 23, patchedProperty); + } + }); + propertyPatches = createBinaryExpression(propertyPatches, 23, createIdentifier(tempVar.text, true)); + var result = createParenthesizedExpression(propertyPatches); + return result; + } + function addCommentsToSynthesizedNode(node, leadingCommentRanges, trailingCommentRanges) { + node.leadingCommentRanges = leadingCommentRanges; + node.trailingCommentRanges = trailingCommentRanges; + } + function tryCreatePatchingPropertyAssignment(objectLiteral, tempVar, property) { + var leftHandSide = createMemberAccessForPropertyName(tempVar, property.name); + var maybeRightHandSide = tryGetRightHandSideOfPatchingPropertyAssignment(objectLiteral, property); + return maybeRightHandSide && createBinaryExpression(leftHandSide, 53, maybeRightHandSide, true); + } + function tryGetRightHandSideOfPatchingPropertyAssignment(objectLiteral, property) { + switch (property.kind) { + case 224: + return property.initializer; + case 225: + return createIdentifier(resolver.getExpressionNameSubstitution(property.name, getGeneratedNameForNode)); + case 134: + return createFunctionExpression(property.parameters, property.body); + case 136: + case 137: + var _a = ts.getAllAccessorDeclarations(objectLiteral.properties, property), firstAccessor = _a.firstAccessor, getAccessor = _a.getAccessor, setAccessor = _a.setAccessor; + if (firstAccessor !== property) { + return undefined; + } + var propertyDescriptor = ts.createSynthesizedNode(154); + var descriptorProperties = []; + if (getAccessor) { + var getProperty_1 = createPropertyAssignment(createIdentifier("get"), createFunctionExpression(getAccessor.parameters, getAccessor.body)); + descriptorProperties.push(getProperty_1); + } + if (setAccessor) { + var setProperty = createPropertyAssignment(createIdentifier("set"), createFunctionExpression(setAccessor.parameters, setAccessor.body)); + descriptorProperties.push(setProperty); + } + var trueExpr = ts.createSynthesizedNode(95); + var enumerableTrue = createPropertyAssignment(createIdentifier("enumerable"), trueExpr); + descriptorProperties.push(enumerableTrue); + var configurableTrue = createPropertyAssignment(createIdentifier("configurable"), trueExpr); + descriptorProperties.push(configurableTrue); + propertyDescriptor.properties = descriptorProperties; + var objectDotDefineProperty = createPropertyAccessExpression(createIdentifier("Object"), createIdentifier("defineProperty")); + return createCallExpression(objectDotDefineProperty, createNodeArray(propertyDescriptor)); + default: + ts.Debug.fail("ObjectLiteralElement kind " + property.kind + " not accounted for."); + } + } + function createParenthesizedExpression(expression) { + var result = ts.createSynthesizedNode(161); + result.expression = expression; + return result; + } + function createNodeArray() { + var elements = []; + for (var _a = 0; _a < arguments.length; _a++) { + elements[_a - 0] = arguments[_a]; + } + var result = elements; + result.pos = -1; + result.end = -1; + return result; + } + function createBinaryExpression(left, operator, right, startsOnNewLine) { + var result = ts.createSynthesizedNode(169, startsOnNewLine); + result.operatorToken = ts.createSynthesizedNode(operator); + result.left = left; + result.right = right; + return result; + } + function createExpressionStatement(expression) { + var result = ts.createSynthesizedNode(182); + result.expression = expression; + return result; + } + function createMemberAccessForPropertyName(expression, memberName) { + if (memberName.kind === 65) { + return createPropertyAccessExpression(expression, memberName); + } + else if (memberName.kind === 8 || memberName.kind === 7) { + return createElementAccessExpression(expression, memberName); + } + else if (memberName.kind === 127) { + return createElementAccessExpression(expression, memberName.expression); + } + else { + ts.Debug.fail("Kind '" + memberName.kind + "' not accounted for."); + } + } + function createPropertyAssignment(name, initializer) { + var result = ts.createSynthesizedNode(224); + result.name = name; + result.initializer = initializer; + return result; + } + function createFunctionExpression(parameters, body) { + var result = ts.createSynthesizedNode(162); + result.parameters = parameters; + result.body = body; + return result; + } + function createPropertyAccessExpression(expression, name) { + var result = ts.createSynthesizedNode(155); + result.expression = expression; + result.dotToken = ts.createSynthesizedNode(20); + result.name = name; + return result; + } + function createElementAccessExpression(expression, argumentExpression) { + var result = ts.createSynthesizedNode(156); + result.expression = expression; + result.argumentExpression = argumentExpression; + return result; + } + function createIdentifier(name, startsOnNewLine) { + var result = ts.createSynthesizedNode(65, startsOnNewLine); + result.text = name; + return result; + } + function createCallExpression(invokedExpression, arguments) { + var result = ts.createSynthesizedNode(157); + result.expression = invokedExpression; + result.arguments = arguments; + return result; + } + function emitObjectLiteral(node) { + var properties = node.properties; + if (languageVersion < 2) { + var numProperties = properties.length; + var numInitialNonComputedProperties = numProperties; + for (var i = 0, n = properties.length; i < n; i++) { + if (properties[i].name.kind === 127) { + numInitialNonComputedProperties = i; + break; + } + } + var hasComputedProperty = numInitialNonComputedProperties !== properties.length; + if (hasComputedProperty) { + emitDownlevelObjectLiteralWithComputedProperties(node, numInitialNonComputedProperties); + return; + } + } + write("{"); + if (properties.length) { + emitLinePreservingList(node, properties, languageVersion >= 1, true); + } + write("}"); + } + function emitComputedPropertyName(node) { + write("["); + emitExpressionForPropertyName(node); + write("]"); + } + function emitMethod(node) { + emit(node.name, false); + if (languageVersion < 2) { + write(": function "); + } + emitSignatureAndBody(node); + } + function emitPropertyAssignment(node) { + emit(node.name, false); + write(": "); + emit(node.initializer); + } + function emitShorthandPropertyAssignment(node) { + emit(node.name, false); + if (languageVersion < 2) { + write(": "); + var generatedName = getGeneratedNameForIdentifier(node.name); + if (generatedName) { + write(generatedName); + } + else { + emitExpressionIdentifier(node.name); + } + } + else if (resolver.getExpressionNameSubstitution(node.name, getGeneratedNameForNode)) { + write(": "); + emitExpressionIdentifier(node.name); + } + } + function tryEmitConstantValue(node) { + if (compilerOptions.separateCompilation) { + return false; + } + var constantValue = resolver.getConstantValue(node); + if (constantValue !== undefined) { + write(constantValue.toString()); + if (!compilerOptions.removeComments) { + var propertyName = node.kind === 155 ? ts.declarationNameToString(node.name) : ts.getTextOfNode(node.argumentExpression); + write(" /* " + propertyName + " */"); + } + return true; + } + return false; + } + function indentIfOnDifferentLines(parent, node1, node2, valueToWriteWhenNotIndenting) { + var realNodesAreOnDifferentLines = !ts.nodeIsSynthesized(parent) && !nodeEndIsOnSameLineAsNodeStart(node1, node2); + var synthesizedNodeIsOnDifferentLine = synthesizedNodeStartsOnNewLine(node2); + if (realNodesAreOnDifferentLines || synthesizedNodeIsOnDifferentLine) { + increaseIndent(); + writeLine(); + return true; + } + else { + if (valueToWriteWhenNotIndenting) { + write(valueToWriteWhenNotIndenting); + } + return false; + } + } + function emitPropertyAccess(node) { + if (tryEmitConstantValue(node)) { + return; + } + emit(node.expression); + var indentedBeforeDot = indentIfOnDifferentLines(node, node.expression, node.dotToken); + write("."); + var indentedAfterDot = indentIfOnDifferentLines(node, node.dotToken, node.name); + emit(node.name, false); + decreaseIndentIf(indentedBeforeDot, indentedAfterDot); + } + function emitQualifiedName(node) { + emit(node.left); + write("."); + emit(node.right); + } + function emitIndexedAccess(node) { + if (tryEmitConstantValue(node)) { + return; + } + emit(node.expression); + write("["); + emit(node.argumentExpression); + write("]"); + } + function hasSpreadElement(elements) { + return ts.forEach(elements, function (e) { return e.kind === 173; }); + } + function skipParentheses(node) { + while (node.kind === 161 || node.kind === 160) { + node = node.expression; + } + return node; + } + function emitCallTarget(node) { + if (node.kind === 65 || node.kind === 93 || node.kind === 91) { + emit(node); + return node; + } + var temp = createAndRecordTempVariable(0); + write("("); + emit(temp); + write(" = "); + emit(node); + write(")"); + return temp; + } + function emitCallWithSpread(node) { + var target; + var expr = skipParentheses(node.expression); + if (expr.kind === 155) { + target = emitCallTarget(expr.expression); + write("."); + emit(expr.name); + } + else if (expr.kind === 156) { + target = emitCallTarget(expr.expression); + write("["); + emit(expr.argumentExpression); + write("]"); + } + else if (expr.kind === 91) { + target = expr; + write("_super"); + } + else { + emit(node.expression); + } + write(".apply("); + if (target) { + if (target.kind === 91) { + emitThis(target); + } + else { + emit(target); + } + } + else { + write("void 0"); + } + write(", "); + emitListWithSpread(node.arguments, false, false); + write(")"); + } + function emitCallExpression(node) { + if (languageVersion < 2 && hasSpreadElement(node.arguments)) { + emitCallWithSpread(node); + return; + } + var superCall = false; + if (node.expression.kind === 91) { + emitSuper(node.expression); + superCall = true; + } + else { + emit(node.expression); + superCall = node.expression.kind === 155 && node.expression.expression.kind === 91; + } + if (superCall && languageVersion < 2) { + write(".call("); + emitThis(node.expression); + if (node.arguments.length) { + write(", "); + emitCommaList(node.arguments); + } + write(")"); + } + else { + write("("); + emitCommaList(node.arguments); + write(")"); + } + } + function emitNewExpression(node) { + write("new "); + emit(node.expression); + if (node.arguments) { + write("("); + emitCommaList(node.arguments); + write(")"); + } + } + function emitTaggedTemplateExpression(node) { + if (languageVersion >= 2) { + emit(node.tag); + write(" "); + emit(node.template); + } + else { + emitDownlevelTaggedTemplate(node); + } + } + function emitParenExpression(node) { + if (!node.parent || node.parent.kind !== 163) { + if (node.expression.kind === 160) { + var operand = node.expression.expression; + while (operand.kind == 160) { + operand = operand.expression; + } + if (operand.kind !== 167 && + operand.kind !== 166 && + operand.kind !== 165 && + operand.kind !== 164 && + operand.kind !== 168 && + operand.kind !== 158 && + !(operand.kind === 157 && node.parent.kind === 158) && + !(operand.kind === 162 && node.parent.kind === 157)) { + emit(operand); + return; + } + } + } + write("("); + emit(node.expression); + write(")"); + } + function emitDeleteExpression(node) { + write(ts.tokenToString(74)); + write(" "); + emit(node.expression); + } + function emitVoidExpression(node) { + write(ts.tokenToString(99)); + write(" "); + emit(node.expression); + } + function emitTypeOfExpression(node) { + write(ts.tokenToString(97)); + write(" "); + emit(node.expression); + } + function emitPrefixUnaryExpression(node) { + write(ts.tokenToString(node.operator)); + if (node.operand.kind === 167) { + var operand = node.operand; + if (node.operator === 33 && (operand.operator === 33 || operand.operator === 38)) { + write(" "); + } + else if (node.operator === 34 && (operand.operator === 34 || operand.operator === 39)) { + write(" "); + } + } + emit(node.operand); + } + function emitPostfixUnaryExpression(node) { + emit(node.operand); + write(ts.tokenToString(node.operator)); + } + function emitBinaryExpression(node) { + if (languageVersion < 2 && node.operatorToken.kind === 53 && + (node.left.kind === 154 || node.left.kind === 153)) { + emitDestructuring(node, node.parent.kind === 182); + } + else { + emit(node.left); + var indentedBeforeOperator = indentIfOnDifferentLines(node, node.left, node.operatorToken, node.operatorToken.kind !== 23 ? " " : undefined); + write(ts.tokenToString(node.operatorToken.kind)); + var indentedAfterOperator = indentIfOnDifferentLines(node, node.operatorToken, node.right, " "); + emit(node.right); + decreaseIndentIf(indentedBeforeOperator, indentedAfterOperator); + } + } + function synthesizedNodeStartsOnNewLine(node) { + return ts.nodeIsSynthesized(node) && node.startsOnNewLine; + } + function emitConditionalExpression(node) { + emit(node.condition); + var indentedBeforeQuestion = indentIfOnDifferentLines(node, node.condition, node.questionToken, " "); + write("?"); + var indentedAfterQuestion = indentIfOnDifferentLines(node, node.questionToken, node.whenTrue, " "); + emit(node.whenTrue); + decreaseIndentIf(indentedBeforeQuestion, indentedAfterQuestion); + var indentedBeforeColon = indentIfOnDifferentLines(node, node.whenTrue, node.colonToken, " "); + write(":"); + var indentedAfterColon = indentIfOnDifferentLines(node, node.colonToken, node.whenFalse, " "); + emit(node.whenFalse); + decreaseIndentIf(indentedBeforeColon, indentedAfterColon); + } + function decreaseIndentIf(value1, value2) { + if (value1) { + decreaseIndent(); + } + if (value2) { + decreaseIndent(); + } + } + function isSingleLineEmptyBlock(node) { + if (node && node.kind === 179) { + var block = node; + return block.statements.length === 0 && nodeEndIsOnSameLineAsNodeStart(block, block); + } + } + function emitBlock(node) { + if (isSingleLineEmptyBlock(node)) { + emitToken(14, node.pos); + write(" "); + emitToken(15, node.statements.end); + return; + } + emitToken(14, node.pos); + increaseIndent(); + scopeEmitStart(node.parent); + if (node.kind === 206) { + ts.Debug.assert(node.parent.kind === 205); + emitCaptureThisForNodeIfNecessary(node.parent); + } + emitLines(node.statements); + if (node.kind === 206) { + emitTempDeclarations(true); + } + decreaseIndent(); + writeLine(); + emitToken(15, node.statements.end); + scopeEmitEnd(); + } + function emitEmbeddedStatement(node) { + if (node.kind === 179) { + write(" "); + emit(node); + } + else { + increaseIndent(); + writeLine(); + emit(node); + decreaseIndent(); + } + } + function emitExpressionStatement(node) { + emitParenthesizedIf(node.expression, node.expression.kind === 163); + write(";"); + } + function emitIfStatement(node) { + var endPos = emitToken(84, node.pos); + write(" "); + endPos = emitToken(16, endPos); + emit(node.expression); + emitToken(17, node.expression.end); + emitEmbeddedStatement(node.thenStatement); + if (node.elseStatement) { + writeLine(); + emitToken(76, node.thenStatement.end); + if (node.elseStatement.kind === 183) { + write(" "); + emit(node.elseStatement); + } + else { + emitEmbeddedStatement(node.elseStatement); + } + } + } + function emitDoStatement(node) { + write("do"); + emitEmbeddedStatement(node.statement); + if (node.statement.kind === 179) { + write(" "); + } + else { + writeLine(); + } + write("while ("); + emit(node.expression); + write(");"); + } + function emitWhileStatement(node) { + write("while ("); + emit(node.expression); + write(")"); + emitEmbeddedStatement(node.statement); + } + function emitStartOfVariableDeclarationList(decl, startPos) { + var tokenKind = 98; + if (decl && languageVersion >= 2) { + if (ts.isLet(decl)) { + tokenKind = 105; + } + else if (ts.isConst(decl)) { + tokenKind = 70; + } + } + if (startPos !== undefined) { + emitToken(tokenKind, startPos); + } + else { + switch (tokenKind) { + case 98: + return write("var "); + case 105: + return write("let "); + case 70: + return write("const "); + } + } + } + function emitForStatement(node) { + var endPos = emitToken(82, node.pos); + write(" "); + endPos = emitToken(16, endPos); + if (node.initializer && node.initializer.kind === 199) { + var variableDeclarationList = node.initializer; + var declarations = variableDeclarationList.declarations; + emitStartOfVariableDeclarationList(declarations[0], endPos); + write(" "); + emitCommaList(declarations); + } + else if (node.initializer) { + emit(node.initializer); + } + write(";"); + emitOptional(" ", node.condition); + write(";"); + emitOptional(" ", node.iterator); + write(")"); + emitEmbeddedStatement(node.statement); + } + function emitForInOrForOfStatement(node) { + if (languageVersion < 2 && node.kind === 188) { + return emitDownLevelForOfStatement(node); + } + var endPos = emitToken(82, node.pos); + write(" "); + endPos = emitToken(16, endPos); + if (node.initializer.kind === 199) { + var variableDeclarationList = node.initializer; + if (variableDeclarationList.declarations.length >= 1) { + var decl = variableDeclarationList.declarations[0]; + emitStartOfVariableDeclarationList(decl, endPos); + write(" "); + emit(decl); + } + } + else { + emit(node.initializer); + } + if (node.kind === 187) { + write(" in "); + } + else { + write(" of "); + } + emit(node.expression); + emitToken(17, node.expression.end); + emitEmbeddedStatement(node.statement); + } + function emitDownLevelForOfStatement(node) { + // The following ES6 code: + // + // for (let v of expr) { } + // + // should be emitted as + // + // for (let _i = 0, _a = expr; _i < _a.length; _i++) { + // let v = _a[_i]; + // } + // + // where _a and _i are temps emitted to capture the RHS and the counter, + // respectively. + // When the left hand side is an expression instead of a let declaration, + // the "let v" is not emitted. + // When the left hand side is a let/const, the v is renamed if there is + // another v in scope. + // Note that all assignments to the LHS are emitted in the body, including + // all destructuring. + // Note also that because an extra statement is needed to assign to the LHS, + // for-of bodies are always emitted as blocks. + var endPos = emitToken(82, node.pos); + write(" "); + endPos = emitToken(16, endPos); + var rhsIsIdentifier = node.expression.kind === 65; + var counter = createTempVariable(268435456); + var rhsReference = rhsIsIdentifier ? node.expression : createTempVariable(0); + emitStart(node.expression); + write("var "); + emitNodeWithoutSourceMap(counter); + write(" = 0"); + emitEnd(node.expression); + if (!rhsIsIdentifier) { + write(", "); + emitStart(node.expression); + emitNodeWithoutSourceMap(rhsReference); + write(" = "); + emitNodeWithoutSourceMap(node.expression); + emitEnd(node.expression); + } + write("; "); + emitStart(node.initializer); + emitNodeWithoutSourceMap(counter); + write(" < "); + emitNodeWithoutSourceMap(rhsReference); + write(".length"); + emitEnd(node.initializer); + write("; "); + emitStart(node.initializer); + emitNodeWithoutSourceMap(counter); + write("++"); + emitEnd(node.initializer); + emitToken(17, node.expression.end); + write(" {"); + writeLine(); + increaseIndent(); + var rhsIterationValue = createElementAccessExpression(rhsReference, counter); + emitStart(node.initializer); + if (node.initializer.kind === 199) { + write("var "); + var variableDeclarationList = node.initializer; + if (variableDeclarationList.declarations.length > 0) { + var declaration = variableDeclarationList.declarations[0]; + if (ts.isBindingPattern(declaration.name)) { + emitDestructuring(declaration, false, rhsIterationValue); + } + else { + emitNodeWithoutSourceMap(declaration); + write(" = "); + emitNodeWithoutSourceMap(rhsIterationValue); + } + } + else { + emitNodeWithoutSourceMap(createTempVariable(0)); + write(" = "); + emitNodeWithoutSourceMap(rhsIterationValue); + } + } + else { + var assignmentExpression = createBinaryExpression(node.initializer, 53, rhsIterationValue, false); + if (node.initializer.kind === 153 || node.initializer.kind === 154) { + emitDestructuring(assignmentExpression, true, undefined, node); + } + else { + emitNodeWithoutSourceMap(assignmentExpression); + } + } + emitEnd(node.initializer); + write(";"); + if (node.statement.kind === 179) { + emitLines(node.statement.statements); + } + else { + writeLine(); + emit(node.statement); + } + writeLine(); + decreaseIndent(); + write("}"); + } + function emitBreakOrContinueStatement(node) { + emitToken(node.kind === 190 ? 66 : 71, node.pos); + emitOptional(" ", node.label); + write(";"); + } + function emitReturnStatement(node) { + emitToken(90, node.pos); + emitOptional(" ", node.expression); + write(";"); + } + function emitWithStatement(node) { + write("with ("); + emit(node.expression); + write(")"); + emitEmbeddedStatement(node.statement); + } + function emitSwitchStatement(node) { + var endPos = emitToken(92, node.pos); + write(" "); + emitToken(16, endPos); + emit(node.expression); + endPos = emitToken(17, node.expression.end); + write(" "); + emitCaseBlock(node.caseBlock, endPos); + } + function emitCaseBlock(node, startPos) { + emitToken(14, startPos); + increaseIndent(); + emitLines(node.clauses); + decreaseIndent(); + writeLine(); + emitToken(15, node.clauses.end); + } + function nodeStartPositionsAreOnSameLine(node1, node2) { + return ts.getLineOfLocalPosition(currentSourceFile, ts.skipTrivia(currentSourceFile.text, node1.pos)) === + ts.getLineOfLocalPosition(currentSourceFile, ts.skipTrivia(currentSourceFile.text, node2.pos)); + } + function nodeEndPositionsAreOnSameLine(node1, node2) { + return ts.getLineOfLocalPosition(currentSourceFile, node1.end) === + ts.getLineOfLocalPosition(currentSourceFile, node2.end); + } + function nodeEndIsOnSameLineAsNodeStart(node1, node2) { + return ts.getLineOfLocalPosition(currentSourceFile, node1.end) === + ts.getLineOfLocalPosition(currentSourceFile, ts.skipTrivia(currentSourceFile.text, node2.pos)); + } + function emitCaseOrDefaultClause(node) { + if (node.kind === 220) { + write("case "); + emit(node.expression); + write(":"); + } + else { + write("default:"); + } + if (node.statements.length === 1 && nodeStartPositionsAreOnSameLine(node, node.statements[0])) { + write(" "); + emit(node.statements[0]); + } + else { + increaseIndent(); + emitLines(node.statements); + decreaseIndent(); + } + } + function emitThrowStatement(node) { + write("throw "); + emit(node.expression); + write(";"); + } + function emitTryStatement(node) { + write("try "); + emit(node.tryBlock); + emit(node.catchClause); + if (node.finallyBlock) { + writeLine(); + write("finally "); + emit(node.finallyBlock); + } + } + function emitCatchClause(node) { + writeLine(); + var endPos = emitToken(68, node.pos); + write(" "); + emitToken(16, endPos); + emit(node.variableDeclaration); + emitToken(17, node.variableDeclaration ? node.variableDeclaration.end : endPos); + write(" "); + emitBlock(node.block); + } + function emitDebuggerStatement(node) { + emitToken(72, node.pos); + write(";"); + } + function emitLabelledStatement(node) { + emit(node.label); + write(": "); + emit(node.statement); + } + function getContainingModule(node) { + do { + node = node.parent; + } while (node && node.kind !== 205); + return node; + } + function emitContainingModuleName(node) { + var container = getContainingModule(node); + write(container ? getGeneratedNameForNode(container) : "exports"); + } + function emitModuleMemberName(node) { + emitStart(node.name); + if (ts.getCombinedNodeFlags(node) & 1) { + var container = getContainingModule(node); + if (container) { + write(getGeneratedNameForNode(container)); + write("."); + } + else if (languageVersion < 2) { + write("exports."); + } + } + emitNodeWithoutSourceMap(node.name); + emitEnd(node.name); + } + function createVoidZero() { + var zero = ts.createSynthesizedNode(7); + zero.text = "0"; + var result = ts.createSynthesizedNode(166); + result.expression = zero; + return result; + } + function emitExportMemberAssignment(node) { + if (node.flags & 1) { + writeLine(); + emitStart(node); + if (node.flags & 256) { + write("exports.default"); + } + else { + emitModuleMemberName(node); + } + write(" = "); + emitDeclarationName(node); + emitEnd(node); + write(";"); + } + } + function emitExportMemberAssignments(name) { + if (!exportEquals && exportSpecifiers && ts.hasProperty(exportSpecifiers, name.text)) { + for (var _a = 0, _b = exportSpecifiers[name.text]; _a < _b.length; _a++) { + var specifier = _b[_a]; + writeLine(); + emitStart(specifier.name); + emitContainingModuleName(specifier); + write("."); + emitNodeWithoutSourceMap(specifier.name); + emitEnd(specifier.name); + write(" = "); + emitExpressionIdentifier(name); + write(";"); + } + } + } + function emitDestructuring(root, isAssignmentExpressionStatement, value, lowestNonSynthesizedAncestor) { + var emitCount = 0; + var isDeclaration = (root.kind === 198 && !(ts.getCombinedNodeFlags(root) & 1)) || root.kind === 129; + if (root.kind === 169) { + emitAssignmentExpression(root); + } + else { + ts.Debug.assert(!isAssignmentExpressionStatement); + emitBindingElement(root, value); + } + function emitAssignment(name, value) { + if (emitCount++) { + write(", "); + } + renameNonTopLevelLetAndConst(name); + if (name.parent && (name.parent.kind === 198 || name.parent.kind === 152)) { + emitModuleMemberName(name.parent); + } + else { + emit(name); + } + write(" = "); + emit(value); + } + function ensureIdentifier(expr) { + if (expr.kind !== 65) { + var identifier = createTempVariable(0); + if (!isDeclaration) { + recordTempDeclaration(identifier); + } + emitAssignment(identifier, expr); + expr = identifier; + } + return expr; + } + function createDefaultValueCheck(value, defaultValue) { + value = ensureIdentifier(value); + var equals = ts.createSynthesizedNode(169); + equals.left = value; + equals.operatorToken = ts.createSynthesizedNode(30); + equals.right = createVoidZero(); + return createConditionalExpression(equals, defaultValue, value); + } + function createConditionalExpression(condition, whenTrue, whenFalse) { + var cond = ts.createSynthesizedNode(170); + cond.condition = condition; + cond.questionToken = ts.createSynthesizedNode(50); + cond.whenTrue = whenTrue; + cond.colonToken = ts.createSynthesizedNode(51); + cond.whenFalse = whenFalse; + return cond; + } + function createNumericLiteral(value) { + var node = ts.createSynthesizedNode(7); + node.text = "" + value; + return node; + } + function parenthesizeForAccess(expr) { + if (expr.kind === 65 || expr.kind === 155 || expr.kind === 156) { + return expr; + } + var node = ts.createSynthesizedNode(161); + node.expression = expr; + return node; + } + function createPropertyAccess(object, propName) { + if (propName.kind !== 65) { + return createElementAccess(object, propName); + } + return createPropertyAccessExpression(parenthesizeForAccess(object), propName); + } + function createElementAccess(object, index) { + var node = ts.createSynthesizedNode(156); + node.expression = parenthesizeForAccess(object); + node.argumentExpression = index; + return node; + } + function emitObjectLiteralAssignment(target, value) { + var properties = target.properties; + if (properties.length !== 1) { + value = ensureIdentifier(value); + } + for (var _a = 0; _a < properties.length; _a++) { + var p = properties[_a]; + if (p.kind === 224 || p.kind === 225) { + var propName = (p.name); + emitDestructuringAssignment(p.initializer || propName, createPropertyAccess(value, propName)); + } + } + } + function emitArrayLiteralAssignment(target, value) { + var elements = target.elements; + if (elements.length !== 1) { + value = ensureIdentifier(value); + } + for (var i = 0; i < elements.length; i++) { + var e = elements[i]; + if (e.kind !== 175) { + if (e.kind !== 173) { + emitDestructuringAssignment(e, createElementAccess(value, createNumericLiteral(i))); + } + else { + if (i === elements.length - 1) { + value = ensureIdentifier(value); + emitAssignment(e.expression, value); + write(".slice(" + i + ")"); + } + } + } + } + } + function emitDestructuringAssignment(target, value) { + if (target.kind === 169 && target.operatorToken.kind === 53) { + value = createDefaultValueCheck(value, target.right); + target = target.left; + } + if (target.kind === 154) { + emitObjectLiteralAssignment(target, value); + } + else if (target.kind === 153) { + emitArrayLiteralAssignment(target, value); + } + else { + emitAssignment(target, value); + } + } + function emitAssignmentExpression(root) { + var target = root.left; + var value = root.right; + if (isAssignmentExpressionStatement) { + emitDestructuringAssignment(target, value); + } + else { + if (root.parent.kind !== 161) { + write("("); + } + value = ensureIdentifier(value); + emitDestructuringAssignment(target, value); + write(", "); + emit(value); + if (root.parent.kind !== 161) { + write(")"); + } + } + } + function emitBindingElement(target, value) { + if (target.initializer) { + value = value ? createDefaultValueCheck(value, target.initializer) : target.initializer; + } + else if (!value) { + value = createVoidZero(); + } + if (ts.isBindingPattern(target.name)) { + var pattern = target.name; + var elements = pattern.elements; + if (elements.length !== 1) { + value = ensureIdentifier(value); + } + for (var i = 0; i < elements.length; i++) { + var element = elements[i]; + if (pattern.kind === 150) { + var propName = element.propertyName || element.name; + emitBindingElement(element, createPropertyAccess(value, propName)); + } + else if (element.kind !== 175) { + if (!element.dotDotDotToken) { + emitBindingElement(element, createElementAccess(value, createNumericLiteral(i))); + } + else { + if (i === elements.length - 1) { + value = ensureIdentifier(value); + emitAssignment(element.name, value); + write(".slice(" + i + ")"); + } + } + } + } + } + else { + emitAssignment(target.name, value); + } + } + } + function emitVariableDeclaration(node) { + if (ts.isBindingPattern(node.name)) { + if (languageVersion < 2) { + emitDestructuring(node, false); + } + else { + emit(node.name); + emitOptional(" = ", node.initializer); + } + } + else { + renameNonTopLevelLetAndConst(node.name); + emitModuleMemberName(node); + var initializer = node.initializer; + if (!initializer && languageVersion < 2) { + var isUninitializedLet = (resolver.getNodeCheckFlags(node) & 256) && + (getCombinedFlagsForIdentifier(node.name) & 4096); + if (isUninitializedLet && + node.parent.parent.kind !== 187 && + node.parent.parent.kind !== 188) { + initializer = createVoidZero(); + } + } + emitOptional(" = ", initializer); + } + } + function emitExportVariableAssignments(node) { + if (node.kind === 175) { + return; + } + var name = node.name; + if (name.kind === 65) { + emitExportMemberAssignments(name); + } + else if (ts.isBindingPattern(name)) { + ts.forEach(name.elements, emitExportVariableAssignments); + } + } + function getCombinedFlagsForIdentifier(node) { + if (!node.parent || (node.parent.kind !== 198 && node.parent.kind !== 152)) { + return 0; + } + return ts.getCombinedNodeFlags(node.parent); + } + function renameNonTopLevelLetAndConst(node) { + if (languageVersion >= 2 || + ts.nodeIsSynthesized(node) || + node.kind !== 65 || + (node.parent.kind !== 198 && node.parent.kind !== 152)) { + return; + } + var combinedFlags = getCombinedFlagsForIdentifier(node); + if (((combinedFlags & 12288) === 0) || combinedFlags & 1) { + return; + } + var list = ts.getAncestor(node, 199); + if (list.parent.kind === 180) { + var isSourceFileLevelBinding = list.parent.parent.kind === 227; + var isModuleLevelBinding = list.parent.parent.kind === 206; + var isFunctionLevelBinding = list.parent.parent.kind === 179 && ts.isFunctionLike(list.parent.parent.parent); + if (isSourceFileLevelBinding || isModuleLevelBinding || isFunctionLevelBinding) { + return; + } + } + var blockScopeContainer = ts.getEnclosingBlockScopeContainer(node); + var parent = blockScopeContainer.kind === 227 + ? blockScopeContainer + : blockScopeContainer.parent; + if (resolver.resolvesToSomeValue(parent, node.text)) { + var variableId = resolver.getBlockScopedVariableId(node); + if (!blockScopedVariableToGeneratedName) { + blockScopedVariableToGeneratedName = []; + } + var generatedName = makeUniqueName(node.text); + blockScopedVariableToGeneratedName[variableId] = generatedName; + } + } + function isES6ExportedDeclaration(node) { + return !!(node.flags & 1) && + languageVersion >= 2 && + node.parent.kind === 227; + } + function emitVariableStatement(node) { + if (!(node.flags & 1)) { + emitStartOfVariableDeclarationList(node.declarationList); + } + else if (isES6ExportedDeclaration(node)) { + write("export "); + emitStartOfVariableDeclarationList(node.declarationList); + } + emitCommaList(node.declarationList.declarations); + write(";"); + if (languageVersion < 2 && node.parent === currentSourceFile) { + ts.forEach(node.declarationList.declarations, emitExportVariableAssignments); + } + } + function emitParameter(node) { + if (languageVersion < 2) { + if (ts.isBindingPattern(node.name)) { + var name_16 = createTempVariable(0); + if (!tempParameters) { + tempParameters = []; + } + tempParameters.push(name_16); + emit(name_16); + } + else { + emit(node.name); + } + } + else { + if (node.dotDotDotToken) { + write("..."); + } + emit(node.name); + emitOptional(" = ", node.initializer); + } + } + function emitDefaultValueAssignments(node) { + if (languageVersion < 2) { + var tempIndex = 0; + ts.forEach(node.parameters, function (p) { + if (ts.isBindingPattern(p.name)) { + writeLine(); + write("var "); + emitDestructuring(p, false, tempParameters[tempIndex]); + write(";"); + tempIndex++; + } + else if (p.initializer) { + writeLine(); + emitStart(p); + write("if ("); + emitNodeWithoutSourceMap(p.name); + write(" === void 0)"); + emitEnd(p); + write(" { "); + emitStart(p); + emitNodeWithoutSourceMap(p.name); + write(" = "); + emitNodeWithoutSourceMap(p.initializer); + emitEnd(p); + write("; }"); + } + }); + } + } + function emitRestParameter(node) { + if (languageVersion < 2 && ts.hasRestParameters(node)) { + var restIndex = node.parameters.length - 1; + var restParam = node.parameters[restIndex]; + var tempName = createTempVariable(268435456).text; + writeLine(); + emitLeadingComments(restParam); + emitStart(restParam); + write("var "); + emitNodeWithoutSourceMap(restParam.name); + write(" = [];"); + emitEnd(restParam); + emitTrailingComments(restParam); + writeLine(); + write("for ("); + emitStart(restParam); + write("var " + tempName + " = " + restIndex + ";"); + emitEnd(restParam); + write(" "); + emitStart(restParam); + write(tempName + " < arguments.length;"); + emitEnd(restParam); + write(" "); + emitStart(restParam); + write(tempName + "++"); + emitEnd(restParam); + write(") {"); + increaseIndent(); + writeLine(); + emitStart(restParam); + emitNodeWithoutSourceMap(restParam.name); + write("[" + tempName + " - " + restIndex + "] = arguments[" + tempName + "];"); + emitEnd(restParam); + decreaseIndent(); + writeLine(); + write("}"); + } + } + function emitAccessor(node) { + write(node.kind === 136 ? "get " : "set "); + emit(node.name, false); + emitSignatureAndBody(node); + } + function shouldEmitAsArrowFunction(node) { + return node.kind === 163 && languageVersion >= 2; + } + function emitDeclarationName(node) { + if (node.name) { + emitNodeWithoutSourceMap(node.name); + } + else { + write(getGeneratedNameForNode(node)); + } + } + function shouldEmitFunctionName(node) { + if (node.kind === 162) { + return !!node.name; + } + if (node.kind === 200) { + return !!node.name || languageVersion < 2; + } + } + function emitFunctionDeclaration(node) { + if (ts.nodeIsMissing(node.body)) { + return emitOnlyPinnedOrTripleSlashComments(node); + } + if (node.kind !== 134 && node.kind !== 133) { + emitLeadingComments(node); + } + if (!shouldEmitAsArrowFunction(node)) { + if (isES6ExportedDeclaration(node)) { + write("export "); + if (node.flags & 256) { + write("default "); + } + } + write("function "); + } + if (shouldEmitFunctionName(node)) { + emitDeclarationName(node); + } + emitSignatureAndBody(node); + if (languageVersion < 2 && node.kind === 200 && node.parent === currentSourceFile && node.name) { + emitExportMemberAssignments(node.name); + } + if (node.kind !== 134 && node.kind !== 133) { + emitTrailingComments(node); + } + } + function emitCaptureThisForNodeIfNecessary(node) { + if (resolver.getNodeCheckFlags(node) & 4) { + writeLine(); + emitStart(node); + write("var _this = this;"); + emitEnd(node); + } + } + function emitSignatureParameters(node) { + increaseIndent(); + write("("); + if (node) { + var parameters = node.parameters; + var omitCount = languageVersion < 2 && ts.hasRestParameters(node) ? 1 : 0; + emitList(parameters, 0, parameters.length - omitCount, false, false); + } + write(")"); + decreaseIndent(); + } + function emitSignatureParametersForArrow(node) { + if (node.parameters.length === 1 && node.pos === node.parameters[0].pos) { + emit(node.parameters[0]); + return; + } + emitSignatureParameters(node); + } + function emitSignatureAndBody(node) { + var saveTempFlags = tempFlags; + var saveTempVariables = tempVariables; + var saveTempParameters = tempParameters; + tempFlags = 0; + tempVariables = undefined; + tempParameters = undefined; + if (shouldEmitAsArrowFunction(node)) { + emitSignatureParametersForArrow(node); + write(" =>"); + } + else { + emitSignatureParameters(node); + } + if (!node.body) { + write(" { }"); + } + else if (node.body.kind === 179) { + emitBlockFunctionBody(node, node.body); + } + else { + emitExpressionFunctionBody(node, node.body); + } + if (!isES6ExportedDeclaration(node)) { + emitExportMemberAssignment(node); + } + tempFlags = saveTempFlags; + tempVariables = saveTempVariables; + tempParameters = saveTempParameters; + } + function emitFunctionBodyPreamble(node) { + emitCaptureThisForNodeIfNecessary(node); + emitDefaultValueAssignments(node); + emitRestParameter(node); + } + function emitExpressionFunctionBody(node, body) { + if (languageVersion < 2) { + emitDownLevelExpressionFunctionBody(node, body); + return; + } + write(" "); + var current = body; + while (current.kind === 160) { + current = current.expression; + } + emitParenthesizedIf(body, current.kind === 154); + } + function emitDownLevelExpressionFunctionBody(node, body) { + write(" {"); + scopeEmitStart(node); + increaseIndent(); + var outPos = writer.getTextPos(); + emitDetachedComments(node.body); + emitFunctionBodyPreamble(node); + var preambleEmitted = writer.getTextPos() !== outPos; + decreaseIndent(); + if (!preambleEmitted && nodeStartPositionsAreOnSameLine(node, body)) { + write(" "); + emitStart(body); + write("return "); + emit(body); + emitEnd(body); + write(";"); + emitTempDeclarations(false); + write(" "); + } + else { + increaseIndent(); + writeLine(); + emitLeadingComments(node.body); + write("return "); + emit(body); + write(";"); + emitTrailingComments(node.body); + emitTempDeclarations(true); + decreaseIndent(); + writeLine(); + } + emitStart(node.body); + write("}"); + emitEnd(node.body); + scopeEmitEnd(); + } + function emitBlockFunctionBody(node, body) { + write(" {"); + scopeEmitStart(node); + var initialTextPos = writer.getTextPos(); + increaseIndent(); + emitDetachedComments(body.statements); + var startIndex = emitDirectivePrologues(body.statements, true); + emitFunctionBodyPreamble(node); + decreaseIndent(); + var preambleEmitted = writer.getTextPos() !== initialTextPos; + if (!preambleEmitted && nodeEndIsOnSameLineAsNodeStart(body, body)) { + for (var _a = 0, _b = body.statements; _a < _b.length; _a++) { + var statement = _b[_a]; + write(" "); + emit(statement); + } + emitTempDeclarations(false); + write(" "); + emitLeadingCommentsOfPosition(body.statements.end); + } + else { + increaseIndent(); + emitLinesStartingAt(body.statements, startIndex); + emitTempDeclarations(true); + writeLine(); + emitLeadingCommentsOfPosition(body.statements.end); + decreaseIndent(); + } + emitToken(15, body.statements.end); + scopeEmitEnd(); + } + function findInitialSuperCall(ctor) { + if (ctor.body) { + var statement = ctor.body.statements[0]; + if (statement && statement.kind === 182) { + var expr = statement.expression; + if (expr && expr.kind === 157) { + var func = expr.expression; + if (func && func.kind === 91) { + return statement; + } + } + } + } + } + function emitParameterPropertyAssignments(node) { + ts.forEach(node.parameters, function (param) { + if (param.flags & 112) { + writeLine(); + emitStart(param); + emitStart(param.name); + write("this."); + emitNodeWithoutSourceMap(param.name); + emitEnd(param.name); + write(" = "); + emit(param.name); + write(";"); + emitEnd(param); + } + }); + } + function emitMemberAccessForPropertyName(memberName) { + if (memberName.kind === 8 || memberName.kind === 7) { + write("["); + emitNodeWithoutSourceMap(memberName); + write("]"); + } + else if (memberName.kind === 127) { + emitComputedPropertyName(memberName); + } + else { + write("."); + emitNodeWithoutSourceMap(memberName); + } + } + function emitMemberAssignments(node, staticFlag) { + ts.forEach(node.members, function (member) { + if (member.kind === 132 && (member.flags & 128) === staticFlag && member.initializer) { + writeLine(); + emitLeadingComments(member); + emitStart(member); + emitStart(member.name); + if (staticFlag) { + emitDeclarationName(node); + } + else { + write("this"); + } + emitMemberAccessForPropertyName(member.name); + emitEnd(member.name); + write(" = "); + emit(member.initializer); + write(";"); + emitEnd(member); + emitTrailingComments(member); + } + }); + } + function emitMemberFunctionsForES5AndLower(node) { + ts.forEach(node.members, function (member) { + if (member.kind === 178) { + writeLine(); + write(";"); + } + else if (member.kind === 134 || node.kind === 133) { + if (!member.body) { + return emitOnlyPinnedOrTripleSlashComments(member); + } + writeLine(); + emitLeadingComments(member); + emitStart(member); + emitStart(member.name); + emitClassMemberPrefix(node, member); + emitMemberAccessForPropertyName(member.name); + emitEnd(member.name); + write(" = "); + emitStart(member); + emitFunctionDeclaration(member); + emitEnd(member); + emitEnd(member); + write(";"); + emitTrailingComments(member); + } + else if (member.kind === 136 || member.kind === 137) { + var accessors = ts.getAllAccessorDeclarations(node.members, member); + if (member === accessors.firstAccessor) { + writeLine(); + emitStart(member); + write("Object.defineProperty("); + emitStart(member.name); + emitClassMemberPrefix(node, member); + write(", "); + emitExpressionForPropertyName(member.name); + emitEnd(member.name); + write(", {"); + increaseIndent(); + if (accessors.getAccessor) { + writeLine(); + emitLeadingComments(accessors.getAccessor); + write("get: "); + emitStart(accessors.getAccessor); + write("function "); + emitSignatureAndBody(accessors.getAccessor); + emitEnd(accessors.getAccessor); + emitTrailingComments(accessors.getAccessor); + write(","); + } + if (accessors.setAccessor) { + writeLine(); + emitLeadingComments(accessors.setAccessor); + write("set: "); + emitStart(accessors.setAccessor); + write("function "); + emitSignatureAndBody(accessors.setAccessor); + emitEnd(accessors.setAccessor); + emitTrailingComments(accessors.setAccessor); + write(","); + } + writeLine(); + write("enumerable: true,"); + writeLine(); + write("configurable: true"); + decreaseIndent(); + writeLine(); + write("});"); + emitEnd(member); + } + } + }); + } + function emitMemberFunctionsForES6AndHigher(node) { + for (var _a = 0, _b = node.members; _a < _b.length; _a++) { + var member = _b[_a]; + if ((member.kind === 134 || node.kind === 133) && !member.body) { + emitOnlyPinnedOrTripleSlashComments(member); + } + else if (member.kind === 134 || + member.kind === 136 || + member.kind === 137) { + writeLine(); + emitLeadingComments(member); + emitStart(member); + if (member.flags & 128) { + write("static "); + } + if (member.kind === 136) { + write("get "); + } + else if (member.kind === 137) { + write("set "); + } + emit(member.name); + emitSignatureAndBody(member); + emitEnd(member); + emitTrailingComments(member); + } + else if (member.kind === 178) { + writeLine(); + write(";"); + } + } + } + function emitConstructor(node, baseTypeElement) { + var saveTempFlags = tempFlags; + var saveTempVariables = tempVariables; + var saveTempParameters = tempParameters; + tempFlags = 0; + tempVariables = undefined; + tempParameters = undefined; + var hasInstancePropertyWithInitializer = false; + ts.forEach(node.members, function (member) { + if (member.kind === 135 && !member.body) { + emitOnlyPinnedOrTripleSlashComments(member); + } + if (member.kind === 132 && member.initializer && (member.flags & 128) === 0) { + hasInstancePropertyWithInitializer = true; + } + }); + var ctor = ts.getFirstConstructorWithBody(node); + if (languageVersion >= 2 && !ctor && !hasInstancePropertyWithInitializer) { + return; + } + if (ctor) { + emitLeadingComments(ctor); + } + emitStart(ctor || node); + if (languageVersion < 2) { + write("function "); + emitDeclarationName(node); + emitSignatureParameters(ctor); + } + else { + write("constructor"); + if (ctor) { + emitSignatureParameters(ctor); + } + else { + if (baseTypeElement) { + write("(...args)"); + } + else { + write("()"); + } + } + } + write(" {"); + scopeEmitStart(node, "constructor"); + increaseIndent(); + if (ctor) { + emitDetachedComments(ctor.body.statements); + } + emitCaptureThisForNodeIfNecessary(node); + if (ctor) { + emitDefaultValueAssignments(ctor); + emitRestParameter(ctor); + if (baseTypeElement) { + var superCall = findInitialSuperCall(ctor); + if (superCall) { + writeLine(); + emit(superCall); + } + } + emitParameterPropertyAssignments(ctor); + } + else { + if (baseTypeElement) { + writeLine(); + emitStart(baseTypeElement); + if (languageVersion < 2) { + write("_super.apply(this, arguments);"); + } + else { + write("super(...args);"); + } + emitEnd(baseTypeElement); + } + } + emitMemberAssignments(node, 0); + if (ctor) { + var statements = ctor.body.statements; + if (superCall) { + statements = statements.slice(1); + } + emitLines(statements); + } + emitTempDeclarations(true); + writeLine(); + if (ctor) { + emitLeadingCommentsOfPosition(ctor.body.statements.end); + } + decreaseIndent(); + emitToken(15, ctor ? ctor.body.statements.end : node.members.end); + scopeEmitEnd(); + emitEnd(ctor || node); + if (ctor) { + emitTrailingComments(ctor); + } + tempFlags = saveTempFlags; + tempVariables = saveTempVariables; + tempParameters = saveTempParameters; + } + function emitClassExpression(node) { + return emitClassLikeDeclaration(node); + } + function emitClassDeclaration(node) { + return emitClassLikeDeclaration(node); + } + function emitClassLikeDeclaration(node) { + if (languageVersion < 2) { + emitClassLikeDeclarationBelowES6(node); + } + else { + emitClassLikeDeclarationForES6AndHigher(node); + } + } + function emitClassLikeDeclarationForES6AndHigher(node) { + var thisNodeIsDecorated = ts.nodeIsDecorated(node); + if (node.kind === 201) { + if (thisNodeIsDecorated) { + if (isES6ExportedDeclaration(node) && !(node.flags & 256)) { + write("export "); + } + write("let "); + emitDeclarationName(node); + write(" = "); + } + else if (isES6ExportedDeclaration(node)) { + write("export "); + if (node.flags & 256) { + write("default "); + } + } + } + write("class"); + if ((node.name || !(node.flags & 256)) && !thisNodeIsDecorated) { + write(" "); + emitDeclarationName(node); + } + var baseTypeNode = ts.getClassExtendsHeritageClauseElement(node); + if (baseTypeNode) { + write(" extends "); + emit(baseTypeNode.expression); + } + write(" {"); + increaseIndent(); + scopeEmitStart(node); + writeLine(); + emitConstructor(node, baseTypeNode); + emitMemberFunctionsForES6AndHigher(node); + decreaseIndent(); + writeLine(); + emitToken(15, node.members.end); + scopeEmitEnd(); + if (thisNodeIsDecorated) { + write(";"); + if (node.name) { + writeLine(); + write("Object.defineProperty("); + emitDeclarationName(node); + write(", \"name\", { value: \""); + emitDeclarationName(node); + write("\", configurable: true });"); + writeLine(); + } + } + writeLine(); + emitMemberAssignments(node, 128); + emitDecoratorsOfClass(node); + if (!isES6ExportedDeclaration(node) && (node.flags & 1)) { + writeLine(); + emitStart(node); + emitModuleMemberName(node); + write(" = "); + emitDeclarationName(node); + emitEnd(node); + write(";"); + } + else if (isES6ExportedDeclaration(node) && (node.flags & 256) && thisNodeIsDecorated) { + writeLine(); + write("export default "); + emitDeclarationName(node); + write(";"); + } + } + function emitClassLikeDeclarationBelowES6(node) { + if (node.kind === 201) { + write("var "); + emitDeclarationName(node); + write(" = "); + } + write("(function ("); + var baseTypeNode = ts.getClassExtendsHeritageClauseElement(node); + if (baseTypeNode) { + write("_super"); + } + write(") {"); + var saveTempFlags = tempFlags; + var saveTempVariables = tempVariables; + var saveTempParameters = tempParameters; + var saveComputedPropertyNamesToGeneratedNames = computedPropertyNamesToGeneratedNames; + tempFlags = 0; + tempVariables = undefined; + tempParameters = undefined; + computedPropertyNamesToGeneratedNames = undefined; + increaseIndent(); + scopeEmitStart(node); + if (baseTypeNode) { + writeLine(); + emitStart(baseTypeNode); + write("__extends("); + emitDeclarationName(node); + write(", _super);"); + emitEnd(baseTypeNode); + } + writeLine(); + emitConstructor(node, baseTypeNode); + emitMemberFunctionsForES5AndLower(node); + emitMemberAssignments(node, 128); + writeLine(); + emitDecoratorsOfClass(node); + writeLine(); + emitToken(15, node.members.end, function () { + write("return "); + emitDeclarationName(node); + }); + write(";"); + emitTempDeclarations(true); + tempFlags = saveTempFlags; + tempVariables = saveTempVariables; + tempParameters = saveTempParameters; + computedPropertyNamesToGeneratedNames = saveComputedPropertyNamesToGeneratedNames; + decreaseIndent(); + writeLine(); + emitToken(15, node.members.end); + scopeEmitEnd(); + emitStart(node); + write(")("); + if (baseTypeNode) { + emit(baseTypeNode.expression); + } + write(")"); + if (node.kind === 201) { + write(";"); + } + emitEnd(node); + if (node.kind === 201) { + emitExportMemberAssignment(node); + } + if (languageVersion < 2 && node.parent === currentSourceFile && node.name) { + emitExportMemberAssignments(node.name); + } + } + function emitClassMemberPrefix(node, member) { + emitDeclarationName(node); + if (!(member.flags & 128)) { + write(".prototype"); + } + } + function emitDecoratorsOfClass(node) { + emitDecoratorsOfMembers(node, 0); + emitDecoratorsOfMembers(node, 128); + emitDecoratorsOfConstructor(node); + } + function emitDecoratorsOfConstructor(node) { + var constructor = ts.getFirstConstructorWithBody(node); + if (constructor) { + emitDecoratorsOfParameters(node, constructor); + } + if (!ts.nodeIsDecorated(node)) { + return; + } + writeLine(); + emitStart(node); + emitDeclarationName(node); + write(" = "); + emitDecorateStart(node.decorators); + emitDeclarationName(node); + write(");"); + emitEnd(node); + writeLine(); + } + function emitDecoratorsOfMembers(node, staticFlag) { + ts.forEach(node.members, function (member) { + if ((member.flags & 128) !== staticFlag) { + return; + } + var decorators; + switch (member.kind) { + case 134: + emitDecoratorsOfParameters(node, member); + decorators = member.decorators; + break; + case 136: + case 137: + var accessors = ts.getAllAccessorDeclarations(node.members, member); + if (member !== accessors.firstAccessor) { + return; + } + if (accessors.setAccessor) { + emitDecoratorsOfParameters(node, accessors.setAccessor); + } + decorators = accessors.firstAccessor.decorators; + if (!decorators && accessors.secondAccessor) { + decorators = accessors.secondAccessor.decorators; + } + break; + case 132: + decorators = member.decorators; + break; + default: + return; + } + if (!decorators) { + return; + } + writeLine(); + emitStart(member); + if (member.kind !== 132) { + write("Object.defineProperty("); + emitStart(member.name); + emitClassMemberPrefix(node, member); + write(", "); + emitExpressionForPropertyName(member.name); + emitEnd(member.name); + write(", "); + } + emitDecorateStart(decorators); + emitStart(member.name); + emitClassMemberPrefix(node, member); + write(", "); + emitExpressionForPropertyName(member.name); + emitEnd(member.name); + if (member.kind !== 132) { + write(", Object.getOwnPropertyDescriptor("); + emitStart(member.name); + emitClassMemberPrefix(node, member); + write(", "); + emitExpressionForPropertyName(member.name); + emitEnd(member.name); + write("))"); + } + write(");"); + emitEnd(member); + writeLine(); + }); + } + function emitDecoratorsOfParameters(node, member) { + ts.forEach(member.parameters, function (parameter, parameterIndex) { + if (!ts.nodeIsDecorated(parameter)) { + return; + } + writeLine(); + emitStart(parameter); + emitDecorateStart(parameter.decorators); + emitStart(parameter.name); + if (member.kind === 135) { + emitDeclarationName(node); + write(", void 0"); + } + else { + emitClassMemberPrefix(node, member); + write(", "); + emitExpressionForPropertyName(member.name); + } + write(", "); + write(String(parameterIndex)); + emitEnd(parameter.name); + write(");"); + emitEnd(parameter); + writeLine(); + }); + } + function emitDecorateStart(decorators) { + write("__decorate(["); + var decoratorCount = decorators.length; + for (var i = 0; i < decoratorCount; i++) { + if (i > 0) { + write(", "); + } + var decorator = decorators[i]; + emitStart(decorator); + emit(decorator.expression); + emitEnd(decorator); + } + write("], "); + } + function emitInterfaceDeclaration(node) { + emitOnlyPinnedOrTripleSlashComments(node); + } + function shouldEmitEnumDeclaration(node) { + var isConstEnum = ts.isConst(node); + return !isConstEnum || compilerOptions.preserveConstEnums || compilerOptions.separateCompilation; + } + function emitEnumDeclaration(node) { + if (!shouldEmitEnumDeclaration(node)) { + return; + } + if (!(node.flags & 1) || isES6ExportedDeclaration(node)) { + emitStart(node); + if (isES6ExportedDeclaration(node)) { + write("export "); + } + write("var "); + emit(node.name); + emitEnd(node); + write(";"); + } + writeLine(); + emitStart(node); + write("(function ("); + emitStart(node.name); + write(getGeneratedNameForNode(node)); + emitEnd(node.name); + write(") {"); + increaseIndent(); + scopeEmitStart(node); + emitLines(node.members); + decreaseIndent(); + writeLine(); + emitToken(15, node.members.end); + scopeEmitEnd(); + write(")("); + emitModuleMemberName(node); + write(" || ("); + emitModuleMemberName(node); + write(" = {}));"); + emitEnd(node); + if (!isES6ExportedDeclaration(node) && node.flags & 1) { + writeLine(); + emitStart(node); + write("var "); + emit(node.name); + write(" = "); + emitModuleMemberName(node); + emitEnd(node); + write(";"); + } + if (languageVersion < 2 && node.parent === currentSourceFile) { + emitExportMemberAssignments(node.name); + } + } + function emitEnumMember(node) { + var enumParent = node.parent; + emitStart(node); + write(getGeneratedNameForNode(enumParent)); + write("["); + write(getGeneratedNameForNode(enumParent)); + write("["); + emitExpressionForPropertyName(node.name); + write("] = "); + writeEnumMemberDeclarationValue(node); + write("] = "); + emitExpressionForPropertyName(node.name); + emitEnd(node); + write(";"); + } + function writeEnumMemberDeclarationValue(member) { + var value = resolver.getConstantValue(member); + if (value !== undefined) { + write(value.toString()); + return; + } + else if (member.initializer) { + emit(member.initializer); + } + else { + write("undefined"); + } + } + function getInnerMostModuleDeclarationFromDottedModule(moduleDeclaration) { + if (moduleDeclaration.body.kind === 205) { + var recursiveInnerModule = getInnerMostModuleDeclarationFromDottedModule(moduleDeclaration.body); + return recursiveInnerModule || moduleDeclaration.body; + } + } + function shouldEmitModuleDeclaration(node) { + return ts.isInstantiatedModule(node, compilerOptions.preserveConstEnums || compilerOptions.separateCompilation); + } + function emitModuleDeclaration(node) { + var shouldEmit = shouldEmitModuleDeclaration(node); + if (!shouldEmit) { + return emitOnlyPinnedOrTripleSlashComments(node); + } + emitStart(node); + if (isES6ExportedDeclaration(node)) { + write("export "); + } + write("var "); + emit(node.name); + write(";"); + emitEnd(node); + writeLine(); + emitStart(node); + write("(function ("); + emitStart(node.name); + write(getGeneratedNameForNode(node)); + emitEnd(node.name); + write(") "); + if (node.body.kind === 206) { + var saveTempFlags = tempFlags; + var saveTempVariables = tempVariables; + tempFlags = 0; + tempVariables = undefined; + emit(node.body); + tempFlags = saveTempFlags; + tempVariables = saveTempVariables; + } + else { + write("{"); + increaseIndent(); + scopeEmitStart(node); + emitCaptureThisForNodeIfNecessary(node); + writeLine(); + emit(node.body); + decreaseIndent(); + writeLine(); + var moduleBlock = getInnerMostModuleDeclarationFromDottedModule(node).body; + emitToken(15, moduleBlock.statements.end); + scopeEmitEnd(); + } + write(")("); + if ((node.flags & 1) && !isES6ExportedDeclaration(node)) { + emit(node.name); + write(" = "); + } + emitModuleMemberName(node); + write(" || ("); + emitModuleMemberName(node); + write(" = {}));"); + emitEnd(node); + if (!isES6ExportedDeclaration(node) && node.name.kind === 65 && node.parent === currentSourceFile) { + emitExportMemberAssignments(node.name); + } + } + function emitRequire(moduleName) { + if (moduleName.kind === 8) { + write("require("); + emitStart(moduleName); + emitLiteral(moduleName); + emitEnd(moduleName); + emitToken(17, moduleName.end); + } + else { + write("require()"); + } + } + function getNamespaceDeclarationNode(node) { + if (node.kind === 208) { + return node; + } + var importClause = node.importClause; + if (importClause && importClause.namedBindings && importClause.namedBindings.kind === 211) { + return importClause.namedBindings; + } + } + function isDefaultImport(node) { + return node.kind === 209 && node.importClause && !!node.importClause.name; + } + function emitExportImportAssignments(node) { + if (ts.isAliasSymbolDeclaration(node) && resolver.isValueAliasDeclaration(node)) { + emitExportMemberAssignments(node.name); + } + ts.forEachChild(node, emitExportImportAssignments); + } + function emitImportDeclaration(node) { + if (languageVersion < 2) { + return emitExternalImportDeclaration(node); + } + if (node.importClause) { + var shouldEmitDefaultBindings = resolver.isReferencedAliasDeclaration(node.importClause); + var shouldEmitNamedBindings = node.importClause.namedBindings && resolver.isReferencedAliasDeclaration(node.importClause.namedBindings, true); + if (shouldEmitDefaultBindings || shouldEmitNamedBindings) { + write("import "); + emitStart(node.importClause); + if (shouldEmitDefaultBindings) { + emit(node.importClause.name); + if (shouldEmitNamedBindings) { + write(", "); + } + } + if (shouldEmitNamedBindings) { + emitLeadingComments(node.importClause.namedBindings); + emitStart(node.importClause.namedBindings); + if (node.importClause.namedBindings.kind === 211) { + write("* as "); + emit(node.importClause.namedBindings.name); + } + else { + write("{ "); + emitExportOrImportSpecifierList(node.importClause.namedBindings.elements, resolver.isReferencedAliasDeclaration); + write(" }"); + } + emitEnd(node.importClause.namedBindings); + emitTrailingComments(node.importClause.namedBindings); + } + emitEnd(node.importClause); + write(" from "); + emit(node.moduleSpecifier); + write(";"); + } + } + else { + write("import "); + emit(node.moduleSpecifier); + write(";"); + } + } + function emitExternalImportDeclaration(node) { + if (ts.contains(externalImports, node)) { + var isExportedImport = node.kind === 208 && (node.flags & 1) !== 0; + var namespaceDeclaration = getNamespaceDeclarationNode(node); + if (compilerOptions.module !== 2) { + emitLeadingComments(node); + emitStart(node); + if (namespaceDeclaration && !isDefaultImport(node)) { + if (!isExportedImport) + write("var "); + emitModuleMemberName(namespaceDeclaration); + write(" = "); + } + else { + var isNakedImport = 209 && !node.importClause; + if (!isNakedImport) { + write("var "); + write(getGeneratedNameForNode(node)); + write(" = "); + } + } + emitRequire(ts.getExternalModuleName(node)); + if (namespaceDeclaration && isDefaultImport(node)) { + write(", "); + emitModuleMemberName(namespaceDeclaration); + write(" = "); + write(getGeneratedNameForNode(node)); + } + write(";"); + emitEnd(node); + emitExportImportAssignments(node); + emitTrailingComments(node); + } + else { + if (isExportedImport) { + emitModuleMemberName(namespaceDeclaration); + write(" = "); + emit(namespaceDeclaration.name); + write(";"); + } + else if (namespaceDeclaration && isDefaultImport(node)) { + write("var "); + emitModuleMemberName(namespaceDeclaration); + write(" = "); + write(getGeneratedNameForNode(node)); + write(";"); + } + emitExportImportAssignments(node); + } + } + } + function emitImportEqualsDeclaration(node) { + if (ts.isExternalModuleImportEqualsDeclaration(node)) { + emitExternalImportDeclaration(node); + return; + } + if (resolver.isReferencedAliasDeclaration(node) || + (!ts.isExternalModule(currentSourceFile) && resolver.isTopLevelValueImportEqualsWithEntityName(node))) { + emitLeadingComments(node); + emitStart(node); + if (isES6ExportedDeclaration(node)) { + write("export "); + write("var "); + } + else if (!(node.flags & 1)) { + write("var "); + } + emitModuleMemberName(node); + write(" = "); + emit(node.moduleReference); + write(";"); + emitEnd(node); + emitExportImportAssignments(node); + emitTrailingComments(node); + } + } + function emitExportDeclaration(node) { + if (languageVersion < 2) { + if (node.moduleSpecifier && (!node.exportClause || resolver.isValueAliasDeclaration(node))) { + emitStart(node); + var generatedName = getGeneratedNameForNode(node); + if (node.exportClause) { + if (compilerOptions.module !== 2) { + write("var "); + write(generatedName); + write(" = "); + emitRequire(ts.getExternalModuleName(node)); + write(";"); + } + for (var _a = 0, _b = node.exportClause.elements; _a < _b.length; _a++) { + var specifier = _b[_a]; + if (resolver.isValueAliasDeclaration(specifier)) { + writeLine(); + emitStart(specifier); + emitContainingModuleName(specifier); + write("."); + emitNodeWithoutSourceMap(specifier.name); + write(" = "); + write(generatedName); + write("."); + emitNodeWithoutSourceMap(specifier.propertyName || specifier.name); + write(";"); + emitEnd(specifier); + } + } + } + else { + writeLine(); + write("__export("); + if (compilerOptions.module !== 2) { + emitRequire(ts.getExternalModuleName(node)); + } + else { + write(generatedName); + } + write(");"); + } + emitEnd(node); + } + } + else { + if (!node.exportClause || resolver.isValueAliasDeclaration(node)) { + emitStart(node); + write("export "); + if (node.exportClause) { + write("{ "); + emitExportOrImportSpecifierList(node.exportClause.elements, resolver.isValueAliasDeclaration); + write(" }"); + } + else { + write("*"); + } + if (node.moduleSpecifier) { + write(" from "); + emitNodeWithoutSourceMap(node.moduleSpecifier); + } + write(";"); + emitEnd(node); + } + } + } + function emitExportOrImportSpecifierList(specifiers, shouldEmit) { + ts.Debug.assert(languageVersion >= 2); + var needsComma = false; + for (var _a = 0; _a < specifiers.length; _a++) { + var specifier = specifiers[_a]; + if (shouldEmit(specifier)) { + if (needsComma) { + write(", "); + } + emitStart(specifier); + if (specifier.propertyName) { + emitNodeWithoutSourceMap(specifier.propertyName); + write(" as "); + } + emitNodeWithoutSourceMap(specifier.name); + emitEnd(specifier); + needsComma = true; + } + } + } + function emitExportAssignment(node) { + if (!node.isExportEquals && resolver.isValueAliasDeclaration(node)) { + if (languageVersion >= 2) { + writeLine(); + emitStart(node); + write("export default "); + var expression = node.expression; + emit(expression); + if (expression.kind !== 200 && + expression.kind !== 201) { + write(";"); + } + emitEnd(node); + } + else { + writeLine(); + emitStart(node); + emitContainingModuleName(node); + write(".default = "); + emit(node.expression); + write(";"); + emitEnd(node); + } + } + } + function collectExternalModuleInfo(sourceFile) { + externalImports = []; + exportSpecifiers = {}; + exportEquals = undefined; + hasExportStars = false; + for (var _a = 0, _b = sourceFile.statements; _a < _b.length; _a++) { + var node = _b[_a]; + switch (node.kind) { + case 209: + if (!node.importClause || + resolver.isReferencedAliasDeclaration(node.importClause, true)) { + externalImports.push(node); + } + break; + case 208: + if (node.moduleReference.kind === 219 && resolver.isReferencedAliasDeclaration(node)) { + externalImports.push(node); + } + break; + case 215: + if (node.moduleSpecifier) { + if (!node.exportClause) { + externalImports.push(node); + hasExportStars = true; + } + else if (resolver.isValueAliasDeclaration(node)) { + externalImports.push(node); + } + } + else { + for (var _c = 0, _d = node.exportClause.elements; _c < _d.length; _c++) { + var specifier = _d[_c]; + var name_17 = (specifier.propertyName || specifier.name).text; + (exportSpecifiers[name_17] || (exportSpecifiers[name_17] = [])).push(specifier); + } + } + break; + case 214: + if (node.isExportEquals && !exportEquals) { + exportEquals = node; + } + break; + } + } + } + function sortAMDModules(amdModules) { + return amdModules.sort(function (moduleA, moduleB) { + if (moduleA.name === moduleB.name) { + return 0; + } + else if (!moduleA.name) { + return 1; + } + else { + return -1; + } + }); + } + function emitExportStarHelper() { + if (hasExportStars) { + writeLine(); + write("function __export(m) {"); + increaseIndent(); + writeLine(); + write("for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];"); + decreaseIndent(); + writeLine(); + write("}"); + } + } + function emitAMDModule(node, startIndex) { + collectExternalModuleInfo(node); + writeLine(); + write("define("); + sortAMDModules(node.amdDependencies); + if (node.amdModuleName) { + write("\"" + node.amdModuleName + "\", "); + } + write("[\"require\", \"exports\""); + for (var _a = 0; _a < externalImports.length; _a++) { + var importNode = externalImports[_a]; + write(", "); + var moduleName = ts.getExternalModuleName(importNode); + if (moduleName.kind === 8) { + emitLiteral(moduleName); + } + else { + write("\"\""); + } + } + for (var _b = 0, _c = node.amdDependencies; _b < _c.length; _b++) { + var amdDependency = _c[_b]; + var text = "\"" + amdDependency.path + "\""; + write(", "); + write(text); + } + write("], function (require, exports"); + for (var _d = 0; _d < externalImports.length; _d++) { + var importNode = externalImports[_d]; + write(", "); + var namespaceDeclaration = getNamespaceDeclarationNode(importNode); + if (namespaceDeclaration && !isDefaultImport(importNode)) { + emit(namespaceDeclaration.name); + } + else { + write(getGeneratedNameForNode(importNode)); + } + } + for (var _e = 0, _f = node.amdDependencies; _e < _f.length; _e++) { + var amdDependency = _f[_e]; + if (amdDependency.name) { + write(", "); + write(amdDependency.name); + } + } + write(") {"); + increaseIndent(); + emitExportStarHelper(); + emitCaptureThisForNodeIfNecessary(node); + emitLinesStartingAt(node.statements, startIndex); + emitTempDeclarations(true); + emitExportEquals(true); + decreaseIndent(); + writeLine(); + write("});"); + } + function emitCommonJSModule(node, startIndex) { + collectExternalModuleInfo(node); + emitExportStarHelper(); + emitCaptureThisForNodeIfNecessary(node); + emitLinesStartingAt(node.statements, startIndex); + emitTempDeclarations(true); + emitExportEquals(false); + } + function emitES6Module(node, startIndex) { + externalImports = undefined; + exportSpecifiers = undefined; + exportEquals = undefined; + hasExportStars = false; + emitCaptureThisForNodeIfNecessary(node); + emitLinesStartingAt(node.statements, startIndex); + emitTempDeclarations(true); + } + function emitExportEquals(emitAsReturn) { + if (exportEquals && resolver.isValueAliasDeclaration(exportEquals)) { + writeLine(); + emitStart(exportEquals); + write(emitAsReturn ? "return " : "module.exports = "); + emit(exportEquals.expression); + write(";"); + emitEnd(exportEquals); + } + } + function emitDirectivePrologues(statements, startWithNewLine) { + for (var i = 0; i < statements.length; ++i) { + if (ts.isPrologueDirective(statements[i])) { + if (startWithNewLine || i > 0) { + writeLine(); + } + emit(statements[i]); + } + else { + return i; + } + } + return statements.length; + } + function writeHelper(text) { + var lines = text.split(/\r\n|\r|\n/g); + for (var i = 0; i < lines.length; ++i) { + var line = lines[i]; + if (line.length) { + writeLine(); + write(line); + } + } + } + function emitSourceFileNode(node) { + writeLine(); + emitDetachedComments(node); + var startIndex = emitDirectivePrologues(node.statements, false); + if ((languageVersion < 2) && (!extendsEmitted && resolver.getNodeCheckFlags(node) & 8)) { + writeLine(); + write("var __extends = this.__extends || function (d, b) {"); + increaseIndent(); + writeLine(); + write("for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];"); + writeLine(); + write("function __() { this.constructor = d; }"); + writeLine(); + write("__.prototype = b.prototype;"); + writeLine(); + write("d.prototype = new __();"); + decreaseIndent(); + writeLine(); + write("};"); + extendsEmitted = true; + } + if (!decorateEmitted && resolver.getNodeCheckFlags(node) & 512) { + writeHelper("\nvar __decorate = this.__decorate || function (decorators, target, key, value) {\n var kind = typeof (arguments.length == 2 ? value = target : value);\n for (var i = decorators.length - 1; i >= 0; --i) {\n var decorator = decorators[i];\n switch (kind) {\n case \"function\": value = decorator(value) || value; break;\n case \"number\": decorator(target, key, value); break;\n case \"undefined\": decorator(target, key); break;\n case \"object\": value = decorator(target, key, value) || value; break;\n }\n }\n return value;\n};"); + decorateEmitted = true; + } + if (ts.isExternalModule(node)) { + if (languageVersion >= 2) { + emitES6Module(node, startIndex); + } + else if (compilerOptions.module === 2) { + emitAMDModule(node, startIndex); + } + else { + emitCommonJSModule(node, startIndex); + } + } + else { + externalImports = undefined; + exportSpecifiers = undefined; + exportEquals = undefined; + hasExportStars = false; + emitCaptureThisForNodeIfNecessary(node); + emitLinesStartingAt(node.statements, startIndex); + emitTempDeclarations(true); + } + emitLeadingComments(node.endOfFileToken); + } + function emitNodeWithoutSourceMap(node, allowGeneratedIdentifiers) { + if (!node) { + return; + } + if (node.flags & 2) { + return emitOnlyPinnedOrTripleSlashComments(node); + } + var emitComments = shouldEmitLeadingAndTrailingComments(node); + if (emitComments) { + emitLeadingComments(node); + } + emitJavaScriptWorker(node, allowGeneratedIdentifiers); + if (emitComments) { + emitTrailingComments(node); + } + } + function shouldEmitLeadingAndTrailingComments(node) { + switch (node.kind) { + case 202: + case 200: + case 209: + case 208: + case 203: + case 214: + return false; + case 205: + return shouldEmitModuleDeclaration(node); + case 204: + return shouldEmitEnumDeclaration(node); + } + if (node.kind !== 179 && + node.parent && + node.parent.kind === 163 && + node.parent.body === node && + compilerOptions.target <= 1) { + return false; + } + return true; + } + function emitJavaScriptWorker(node, allowGeneratedIdentifiers) { + if (allowGeneratedIdentifiers === void 0) { allowGeneratedIdentifiers = true; } + switch (node.kind) { + case 65: + return emitIdentifier(node, allowGeneratedIdentifiers); + case 129: + return emitParameter(node); + case 134: + case 133: + return emitMethod(node); + case 136: + case 137: + return emitAccessor(node); + case 93: + return emitThis(node); + case 91: + return emitSuper(node); + case 89: + return write("null"); + case 95: + return write("true"); + case 80: + return write("false"); + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + return emitLiteral(node); + case 171: + return emitTemplateExpression(node); + case 176: + return emitTemplateSpan(node); + case 126: + return emitQualifiedName(node); + case 150: + return emitObjectBindingPattern(node); + case 151: + return emitArrayBindingPattern(node); + case 152: + return emitBindingElement(node); + case 153: + return emitArrayLiteral(node); + case 154: + return emitObjectLiteral(node); + case 224: + return emitPropertyAssignment(node); + case 225: + return emitShorthandPropertyAssignment(node); + case 127: + return emitComputedPropertyName(node); + case 155: + return emitPropertyAccess(node); + case 156: + return emitIndexedAccess(node); + case 157: + return emitCallExpression(node); + case 158: + return emitNewExpression(node); + case 159: + return emitTaggedTemplateExpression(node); + case 160: + return emit(node.expression); + case 161: + return emitParenExpression(node); + case 200: + case 162: + case 163: + return emitFunctionDeclaration(node); + case 164: + return emitDeleteExpression(node); + case 165: + return emitTypeOfExpression(node); + case 166: + return emitVoidExpression(node); + case 167: + return emitPrefixUnaryExpression(node); + case 168: + return emitPostfixUnaryExpression(node); + case 169: + return emitBinaryExpression(node); + case 170: + return emitConditionalExpression(node); + case 173: + return emitSpreadElementExpression(node); + case 175: + return; + case 179: + case 206: + return emitBlock(node); + case 180: + return emitVariableStatement(node); + case 181: + return write(";"); + case 182: + return emitExpressionStatement(node); + case 183: + return emitIfStatement(node); + case 184: + return emitDoStatement(node); + case 185: + return emitWhileStatement(node); + case 186: + return emitForStatement(node); + case 188: + case 187: + return emitForInOrForOfStatement(node); + case 189: + case 190: + return emitBreakOrContinueStatement(node); + case 191: + return emitReturnStatement(node); + case 192: + return emitWithStatement(node); + case 193: + return emitSwitchStatement(node); + case 220: + case 221: + return emitCaseOrDefaultClause(node); + case 194: + return emitLabelledStatement(node); + case 195: + return emitThrowStatement(node); + case 196: + return emitTryStatement(node); + case 223: + return emitCatchClause(node); + case 197: + return emitDebuggerStatement(node); + case 198: + return emitVariableDeclaration(node); + case 174: + return emitClassExpression(node); + case 201: + return emitClassDeclaration(node); + case 202: + return emitInterfaceDeclaration(node); + case 204: + return emitEnumDeclaration(node); + case 226: + return emitEnumMember(node); + case 205: + return emitModuleDeclaration(node); + case 209: + return emitImportDeclaration(node); + case 208: + return emitImportEqualsDeclaration(node); + case 215: + return emitExportDeclaration(node); + case 214: + return emitExportAssignment(node); + case 227: + return emitSourceFileNode(node); + } + } + function hasDetachedComments(pos) { + return detachedCommentsInfo !== undefined && detachedCommentsInfo[detachedCommentsInfo.length - 1].nodePos === pos; + } + function getLeadingCommentsWithoutDetachedComments() { + var leadingComments = ts.getLeadingCommentRanges(currentSourceFile.text, detachedCommentsInfo[detachedCommentsInfo.length - 1].detachedCommentEndPos); + if (detachedCommentsInfo.length - 1) { + detachedCommentsInfo.pop(); + } + else { + detachedCommentsInfo = undefined; + } + return leadingComments; + } + function filterComments(ranges, onlyPinnedOrTripleSlashComments) { + if (ranges && onlyPinnedOrTripleSlashComments) { + ranges = ts.filter(ranges, isPinnedOrTripleSlashComment); + if (ranges.length === 0) { + return undefined; + } + } + return ranges; + } + function getLeadingCommentsToEmit(node) { + if (node.parent) { + if (node.parent.kind === 227 || node.pos !== node.parent.pos) { + if (hasDetachedComments(node.pos)) { + return getLeadingCommentsWithoutDetachedComments(); + } + else { + return ts.getLeadingCommentRangesOfNode(node, currentSourceFile); + } + } + } + } + function getTrailingCommentsToEmit(node) { + if (node.parent) { + if (node.parent.kind === 227 || node.end !== node.parent.end) { + return ts.getTrailingCommentRanges(currentSourceFile.text, node.end); + } + } + } + function emitOnlyPinnedOrTripleSlashComments(node) { + emitLeadingCommentsWorker(node, true); + } + function emitLeadingComments(node) { + return emitLeadingCommentsWorker(node, compilerOptions.removeComments); + } + function emitLeadingCommentsWorker(node, onlyPinnedOrTripleSlashComments) { + var leadingComments = filterComments(getLeadingCommentsToEmit(node), onlyPinnedOrTripleSlashComments); + ts.emitNewLineBeforeLeadingComments(currentSourceFile, writer, node, leadingComments); + ts.emitComments(currentSourceFile, writer, leadingComments, true, newLine, writeComment); + } + function emitTrailingComments(node) { + var trailingComments = filterComments(getTrailingCommentsToEmit(node), compilerOptions.removeComments); + ts.emitComments(currentSourceFile, writer, trailingComments, false, newLine, writeComment); + } + function emitLeadingCommentsOfPosition(pos) { + var leadingComments; + if (hasDetachedComments(pos)) { + leadingComments = getLeadingCommentsWithoutDetachedComments(); + } + else { + leadingComments = ts.getLeadingCommentRanges(currentSourceFile.text, pos); + } + leadingComments = filterComments(leadingComments, compilerOptions.removeComments); + ts.emitNewLineBeforeLeadingComments(currentSourceFile, writer, { pos: pos, end: pos }, leadingComments); + ts.emitComments(currentSourceFile, writer, leadingComments, true, newLine, writeComment); + } + function emitDetachedComments(node) { + var leadingComments = ts.getLeadingCommentRanges(currentSourceFile.text, node.pos); + if (leadingComments) { + var detachedComments = []; + var lastComment; + ts.forEach(leadingComments, function (comment) { + if (lastComment) { + var lastCommentLine = ts.getLineOfLocalPosition(currentSourceFile, lastComment.end); + var commentLine = ts.getLineOfLocalPosition(currentSourceFile, comment.pos); + if (commentLine >= lastCommentLine + 2) { + return detachedComments; + } + } + detachedComments.push(comment); + lastComment = comment; + }); + if (detachedComments.length) { + var lastCommentLine = ts.getLineOfLocalPosition(currentSourceFile, detachedComments[detachedComments.length - 1].end); + var nodeLine = ts.getLineOfLocalPosition(currentSourceFile, ts.skipTrivia(currentSourceFile.text, node.pos)); + if (nodeLine >= lastCommentLine + 2) { + ts.emitNewLineBeforeLeadingComments(currentSourceFile, writer, node, leadingComments); + ts.emitComments(currentSourceFile, writer, detachedComments, true, newLine, writeComment); + var currentDetachedCommentInfo = { nodePos: node.pos, detachedCommentEndPos: detachedComments[detachedComments.length - 1].end }; + if (detachedCommentsInfo) { + detachedCommentsInfo.push(currentDetachedCommentInfo); + } + else { + detachedCommentsInfo = [currentDetachedCommentInfo]; + } + } + } + } + } + function isPinnedOrTripleSlashComment(comment) { + if (currentSourceFile.text.charCodeAt(comment.pos + 1) === 42) { + return currentSourceFile.text.charCodeAt(comment.pos + 2) === 33; + } + else if (currentSourceFile.text.charCodeAt(comment.pos + 1) === 47 && + comment.pos + 2 < comment.end && + currentSourceFile.text.charCodeAt(comment.pos + 2) === 47 && + currentSourceFile.text.substring(comment.pos, comment.end).match(ts.fullTripleSlashReferencePathRegEx)) { + return true; + } + } + } + function emitFile(jsFilePath, sourceFile) { + emitJavaScript(jsFilePath, sourceFile); + if (compilerOptions.declaration) { + ts.writeDeclarationFile(jsFilePath, sourceFile, host, resolver, diagnostics); + } + } + } + ts.emitFiles = emitFiles; +})(ts || (ts = {})); +/// +/// +var ts; +(function (ts) { + ts.programTime = 0; + ts.emitTime = 0; + ts.ioReadTime = 0; + ts.ioWriteTime = 0; + ts.version = "1.5.0-alpha"; + function findConfigFile(searchPath) { + var fileName = "tsconfig.json"; + while (true) { + if (ts.sys.fileExists(fileName)) { + return fileName; + } + var parentPath = ts.getDirectoryPath(searchPath); + if (parentPath === searchPath) { + break; + } + searchPath = parentPath; + fileName = "../" + fileName; + } + return undefined; + } + ts.findConfigFile = findConfigFile; + function createCompilerHost(options, setParentNodes) { + var currentDirectory; + var existingDirectories = {}; + function getCanonicalFileName(fileName) { + return ts.sys.useCaseSensitiveFileNames ? fileName : fileName.toLowerCase(); + } + var unsupportedFileEncodingErrorCode = -2147024809; + function getSourceFile(fileName, languageVersion, onError) { + var text; + try { + var start = new Date().getTime(); + text = ts.sys.readFile(fileName, options.charset); + ts.ioReadTime += new Date().getTime() - start; + } + catch (e) { + if (onError) { + onError(e.number === unsupportedFileEncodingErrorCode + ? ts.createCompilerDiagnostic(ts.Diagnostics.Unsupported_file_encoding).messageText + : e.message); + } + text = ""; + } + return text !== undefined ? ts.createSourceFile(fileName, text, languageVersion, setParentNodes) : undefined; + } + function directoryExists(directoryPath) { + if (ts.hasProperty(existingDirectories, directoryPath)) { + return true; + } + if (ts.sys.directoryExists(directoryPath)) { + existingDirectories[directoryPath] = true; + return true; + } + return false; + } + function ensureDirectoriesExist(directoryPath) { + if (directoryPath.length > ts.getRootLength(directoryPath) && !directoryExists(directoryPath)) { + var parentDirectory = ts.getDirectoryPath(directoryPath); + ensureDirectoriesExist(parentDirectory); + ts.sys.createDirectory(directoryPath); + } + } + function writeFile(fileName, data, writeByteOrderMark, onError) { + try { + var start = new Date().getTime(); + ensureDirectoriesExist(ts.getDirectoryPath(ts.normalizePath(fileName))); + ts.sys.writeFile(fileName, data, writeByteOrderMark); + ts.ioWriteTime += new Date().getTime() - start; + } + catch (e) { + if (onError) { + onError(e.message); + } + } + } + return { + getSourceFile: getSourceFile, + getDefaultLibFileName: function (options) { return ts.combinePaths(ts.getDirectoryPath(ts.normalizePath(ts.sys.getExecutingFilePath())), ts.getDefaultLibFileName(options)); }, + writeFile: writeFile, + getCurrentDirectory: function () { return currentDirectory || (currentDirectory = ts.sys.getCurrentDirectory()); }, + useCaseSensitiveFileNames: function () { return ts.sys.useCaseSensitiveFileNames; }, + getCanonicalFileName: getCanonicalFileName, + getNewLine: function () { return ts.sys.newLine; } + }; + } + ts.createCompilerHost = createCompilerHost; + function getPreEmitDiagnostics(program) { + var diagnostics = program.getSyntacticDiagnostics().concat(program.getGlobalDiagnostics()).concat(program.getSemanticDiagnostics()); + if (program.getCompilerOptions().declaration) { + diagnostics.concat(program.getDeclarationDiagnostics()); + } + return ts.sortAndDeduplicateDiagnostics(diagnostics); + } + ts.getPreEmitDiagnostics = getPreEmitDiagnostics; + function flattenDiagnosticMessageText(messageText, newLine) { + if (typeof messageText === "string") { + return messageText; + } + else { + var diagnosticChain = messageText; + var result = ""; + var indent = 0; + while (diagnosticChain) { + if (indent) { + result += newLine; + for (var i = 0; i < indent; i++) { + result += " "; + } + } + result += diagnosticChain.messageText; + indent++; + diagnosticChain = diagnosticChain.next; + } + return result; + } + } + ts.flattenDiagnosticMessageText = flattenDiagnosticMessageText; + function createProgram(rootNames, options, host) { + var program; + var files = []; + var filesByName = {}; + var diagnostics = ts.createDiagnosticCollection(); + var seenNoDefaultLib = options.noLib; + var commonSourceDirectory; + var diagnosticsProducingTypeChecker; + var noDiagnosticsTypeChecker; + var start = new Date().getTime(); + host = host || createCompilerHost(options); + ts.forEach(rootNames, function (name) { return processRootFile(name, false); }); + if (!seenNoDefaultLib) { + processRootFile(host.getDefaultLibFileName(options), true); + } + verifyCompilerOptions(); + ts.programTime += new Date().getTime() - start; + program = { + getSourceFile: getSourceFile, + getSourceFiles: function () { return files; }, + getCompilerOptions: function () { return options; }, + getSyntacticDiagnostics: getSyntacticDiagnostics, + getGlobalDiagnostics: getGlobalDiagnostics, + getSemanticDiagnostics: getSemanticDiagnostics, + getDeclarationDiagnostics: getDeclarationDiagnostics, + getTypeChecker: getTypeChecker, + getDiagnosticsProducingTypeChecker: getDiagnosticsProducingTypeChecker, + getCommonSourceDirectory: function () { return commonSourceDirectory; }, + emit: emit, + getCurrentDirectory: host.getCurrentDirectory, + getNodeCount: function () { return getDiagnosticsProducingTypeChecker().getNodeCount(); }, + getIdentifierCount: function () { return getDiagnosticsProducingTypeChecker().getIdentifierCount(); }, + getSymbolCount: function () { return getDiagnosticsProducingTypeChecker().getSymbolCount(); }, + getTypeCount: function () { return getDiagnosticsProducingTypeChecker().getTypeCount(); } + }; + return program; + function getEmitHost(writeFileCallback) { + return { + getCanonicalFileName: host.getCanonicalFileName, + getCommonSourceDirectory: program.getCommonSourceDirectory, + getCompilerOptions: program.getCompilerOptions, + getCurrentDirectory: host.getCurrentDirectory, + getNewLine: host.getNewLine, + getSourceFile: program.getSourceFile, + getSourceFiles: program.getSourceFiles, + writeFile: writeFileCallback || host.writeFile + }; + } + function getDiagnosticsProducingTypeChecker() { + return diagnosticsProducingTypeChecker || (diagnosticsProducingTypeChecker = ts.createTypeChecker(program, true)); + } + function getTypeChecker() { + return noDiagnosticsTypeChecker || (noDiagnosticsTypeChecker = ts.createTypeChecker(program, false)); + } + function emit(sourceFile, writeFileCallback) { + if (options.noEmitOnError && getPreEmitDiagnostics(this).length > 0) { + return { diagnostics: [], sourceMaps: undefined, emitSkipped: true }; + } + var emitResolver = getDiagnosticsProducingTypeChecker().getEmitResolver(sourceFile); + var start = new Date().getTime(); + var emitResult = ts.emitFiles(emitResolver, getEmitHost(writeFileCallback), sourceFile); + ts.emitTime += new Date().getTime() - start; + return emitResult; + } + function getSourceFile(fileName) { + fileName = host.getCanonicalFileName(fileName); + return ts.hasProperty(filesByName, fileName) ? filesByName[fileName] : undefined; + } + function getDiagnosticsHelper(sourceFile, getDiagnostics) { + if (sourceFile) { + return getDiagnostics(sourceFile); + } + var allDiagnostics = []; + ts.forEach(program.getSourceFiles(), function (sourceFile) { + ts.addRange(allDiagnostics, getDiagnostics(sourceFile)); + }); + return ts.sortAndDeduplicateDiagnostics(allDiagnostics); + } + function getSyntacticDiagnostics(sourceFile) { + return getDiagnosticsHelper(sourceFile, getSyntacticDiagnosticsForFile); + } + function getSemanticDiagnostics(sourceFile) { + return getDiagnosticsHelper(sourceFile, getSemanticDiagnosticsForFile); + } + function getDeclarationDiagnostics(sourceFile) { + return getDiagnosticsHelper(sourceFile, getDeclarationDiagnosticsForFile); + } + function getSyntacticDiagnosticsForFile(sourceFile) { + return sourceFile.parseDiagnostics; + } + function getSemanticDiagnosticsForFile(sourceFile) { + var typeChecker = getDiagnosticsProducingTypeChecker(); + ts.Debug.assert(!!sourceFile.bindDiagnostics); + var bindDiagnostics = sourceFile.bindDiagnostics; + var checkDiagnostics = typeChecker.getDiagnostics(sourceFile); + var programDiagnostics = diagnostics.getDiagnostics(sourceFile.fileName); + return bindDiagnostics.concat(checkDiagnostics).concat(programDiagnostics); + } + function getDeclarationDiagnosticsForFile(sourceFile) { + if (!ts.isDeclarationFile(sourceFile)) { + var resolver = getDiagnosticsProducingTypeChecker().getEmitResolver(sourceFile); + var writeFile = function () { }; + return ts.getDeclarationDiagnostics(getEmitHost(writeFile), resolver, sourceFile); + } + } + function getGlobalDiagnostics() { + var typeChecker = getDiagnosticsProducingTypeChecker(); + var allDiagnostics = []; + ts.addRange(allDiagnostics, typeChecker.getGlobalDiagnostics()); + ts.addRange(allDiagnostics, diagnostics.getGlobalDiagnostics()); + return ts.sortAndDeduplicateDiagnostics(allDiagnostics); + } + function hasExtension(fileName) { + return ts.getBaseFileName(fileName).indexOf(".") >= 0; + } + function processRootFile(fileName, isDefaultLib) { + processSourceFile(ts.normalizePath(fileName), isDefaultLib); + } + function processSourceFile(fileName, isDefaultLib, refFile, refPos, refEnd) { + var start; + var length; + if (refEnd !== undefined && refPos !== undefined) { + start = refPos; + length = refEnd - refPos; + } + var diagnostic; + if (hasExtension(fileName)) { + if (!options.allowNonTsExtensions && !ts.fileExtensionIs(host.getCanonicalFileName(fileName), ".ts")) { + diagnostic = ts.Diagnostics.File_0_must_have_extension_ts_or_d_ts; + } + else if (!findSourceFile(fileName, isDefaultLib, refFile, refPos, refEnd)) { + diagnostic = ts.Diagnostics.File_0_not_found; + } + else if (refFile && host.getCanonicalFileName(fileName) === host.getCanonicalFileName(refFile.fileName)) { + diagnostic = ts.Diagnostics.A_file_cannot_have_a_reference_to_itself; + } + } + else { + if (options.allowNonTsExtensions && !findSourceFile(fileName, isDefaultLib, refFile, refPos, refEnd)) { + diagnostic = ts.Diagnostics.File_0_not_found; + } + else if (!findSourceFile(fileName + ".ts", isDefaultLib, refFile, refPos, refEnd) && !findSourceFile(fileName + ".d.ts", isDefaultLib, refFile, refPos, refEnd)) { + diagnostic = ts.Diagnostics.File_0_not_found; + fileName += ".ts"; + } + } + if (diagnostic) { + if (refFile) { + diagnostics.add(ts.createFileDiagnostic(refFile, start, length, diagnostic, fileName)); + } + else { + diagnostics.add(ts.createCompilerDiagnostic(diagnostic, fileName)); + } + } + } + function findSourceFile(fileName, isDefaultLib, refFile, refStart, refLength) { + var canonicalName = host.getCanonicalFileName(fileName); + if (ts.hasProperty(filesByName, canonicalName)) { + return getSourceFileFromCache(fileName, canonicalName, false); + } + else { + var normalizedAbsolutePath = ts.getNormalizedAbsolutePath(fileName, host.getCurrentDirectory()); + var canonicalAbsolutePath = host.getCanonicalFileName(normalizedAbsolutePath); + if (ts.hasProperty(filesByName, canonicalAbsolutePath)) { + return getSourceFileFromCache(normalizedAbsolutePath, canonicalAbsolutePath, true); + } + var file = filesByName[canonicalName] = host.getSourceFile(fileName, options.target, function (hostErrorMessage) { + if (refFile) { + diagnostics.add(ts.createFileDiagnostic(refFile, refStart, refLength, ts.Diagnostics.Cannot_read_file_0_Colon_1, fileName, hostErrorMessage)); + } + else { + diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Cannot_read_file_0_Colon_1, fileName, hostErrorMessage)); + } + }); + if (file) { + seenNoDefaultLib = seenNoDefaultLib || file.hasNoDefaultLib; + filesByName[canonicalAbsolutePath] = file; + if (!options.noResolve) { + var basePath = ts.getDirectoryPath(fileName); + processReferencedFiles(file, basePath); + processImportedModules(file, basePath); + } + if (isDefaultLib) { + files.unshift(file); + } + else { + files.push(file); + } + } + return file; + } + function getSourceFileFromCache(fileName, canonicalName, useAbsolutePath) { + var file = filesByName[canonicalName]; + if (file && host.useCaseSensitiveFileNames()) { + var sourceFileName = useAbsolutePath ? ts.getNormalizedAbsolutePath(file.fileName, host.getCurrentDirectory()) : file.fileName; + if (canonicalName !== sourceFileName) { + diagnostics.add(ts.createFileDiagnostic(refFile, refStart, refLength, ts.Diagnostics.File_name_0_differs_from_already_included_file_name_1_only_in_casing, fileName, sourceFileName)); + } + } + return file; + } + } + function processReferencedFiles(file, basePath) { + ts.forEach(file.referencedFiles, function (ref) { + var referencedFileName = ts.isRootedDiskPath(ref.fileName) ? ref.fileName : ts.combinePaths(basePath, ref.fileName); + processSourceFile(ts.normalizePath(referencedFileName), false, file, ref.pos, ref.end); + }); + } + function processImportedModules(file, basePath) { + ts.forEach(file.statements, function (node) { + if (node.kind === 209 || node.kind === 208 || node.kind === 215) { + var moduleNameExpr = ts.getExternalModuleName(node); + if (moduleNameExpr && moduleNameExpr.kind === 8) { + var moduleNameText = moduleNameExpr.text; + if (moduleNameText) { + var searchPath = basePath; + while (true) { + var searchName = ts.normalizePath(ts.combinePaths(searchPath, moduleNameText)); + if (findModuleSourceFile(searchName + ".ts", moduleNameExpr) || findModuleSourceFile(searchName + ".d.ts", moduleNameExpr)) { + break; + } + var parentPath = ts.getDirectoryPath(searchPath); + if (parentPath === searchPath) { + break; + } + searchPath = parentPath; + } + } + } + } + else if (node.kind === 205 && node.name.kind === 8 && (node.flags & 2 || ts.isDeclarationFile(file))) { + ts.forEachChild(node.body, function (node) { + if (ts.isExternalModuleImportEqualsDeclaration(node) && + ts.getExternalModuleImportEqualsDeclarationExpression(node).kind === 8) { + var nameLiteral = ts.getExternalModuleImportEqualsDeclarationExpression(node); + var moduleName = nameLiteral.text; + if (moduleName) { + var searchName = ts.normalizePath(ts.combinePaths(basePath, moduleName)); + var tsFile = findModuleSourceFile(searchName + ".ts", nameLiteral); + if (!tsFile) { + findModuleSourceFile(searchName + ".d.ts", nameLiteral); + } + } + } + }); + } + }); + function findModuleSourceFile(fileName, nameLiteral) { + return findSourceFile(fileName, false, file, nameLiteral.pos, nameLiteral.end - nameLiteral.pos); + } + } + function verifyCompilerOptions() { + if (options.separateCompilation) { + if (options.sourceMap) { + diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_sourceMap_cannot_be_specified_with_option_separateCompilation)); + } + if (options.declaration) { + diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_declaration_cannot_be_specified_with_option_separateCompilation)); + } + if (options.noEmitOnError) { + diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_noEmitOnError_cannot_be_specified_with_option_separateCompilation)); + } + if (options.out) { + diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_out_cannot_be_specified_with_option_separateCompilation)); + } + } + if (!options.sourceMap && (options.mapRoot || options.sourceRoot)) { + if (options.mapRoot) { + diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_mapRoot_cannot_be_specified_without_specifying_sourcemap_option)); + } + if (options.sourceRoot) { + diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_sourceRoot_cannot_be_specified_without_specifying_sourcemap_option)); + } + return; + } + var languageVersion = options.target || 0; + var firstExternalModuleSourceFile = ts.forEach(files, function (f) { return ts.isExternalModule(f) ? f : undefined; }); + if (options.separateCompilation) { + if (!options.module && languageVersion < 2) { + diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_separateCompilation_can_only_be_used_when_either_option_module_is_provided_or_option_target_is_ES6_or_higher)); + } + var firstNonExternalModuleSourceFile = ts.forEach(files, function (f) { return !ts.isExternalModule(f) && !ts.isDeclarationFile(f) ? f : undefined; }); + if (firstNonExternalModuleSourceFile) { + var span = ts.getErrorSpanForNode(firstNonExternalModuleSourceFile, firstNonExternalModuleSourceFile); + diagnostics.add(ts.createFileDiagnostic(firstNonExternalModuleSourceFile, span.start, span.length, ts.Diagnostics.Cannot_compile_non_external_modules_when_the_separateCompilation_flag_is_provided)); + } + } + else if (firstExternalModuleSourceFile && languageVersion < 2 && !options.module) { + var span = ts.getErrorSpanForNode(firstExternalModuleSourceFile, firstExternalModuleSourceFile.externalModuleIndicator); + diagnostics.add(ts.createFileDiagnostic(firstExternalModuleSourceFile, span.start, span.length, ts.Diagnostics.Cannot_compile_external_modules_unless_the_module_flag_is_provided)); + } + if (options.module && languageVersion >= 2) { + diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Cannot_compile_external_modules_into_amd_or_commonjs_when_targeting_es6_or_higher)); + } + if (options.outDir || + options.sourceRoot || + (options.mapRoot && + (!options.out || firstExternalModuleSourceFile !== undefined))) { + var commonPathComponents; + ts.forEach(files, function (sourceFile) { + if (!(sourceFile.flags & 2048) + && !ts.fileExtensionIs(sourceFile.fileName, ".js")) { + var sourcePathComponents = ts.getNormalizedPathComponents(sourceFile.fileName, host.getCurrentDirectory()); + sourcePathComponents.pop(); + if (commonPathComponents) { + for (var i = 0; i < Math.min(commonPathComponents.length, sourcePathComponents.length); i++) { + if (commonPathComponents[i] !== sourcePathComponents[i]) { + if (i === 0) { + diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Cannot_find_the_common_subdirectory_path_for_the_input_files)); + return; + } + commonPathComponents.length = i; + break; + } + } + if (sourcePathComponents.length < commonPathComponents.length) { + commonPathComponents.length = sourcePathComponents.length; + } + } + else { + commonPathComponents = sourcePathComponents; + } + } + }); + commonSourceDirectory = ts.getNormalizedPathFromPathComponents(commonPathComponents); + if (commonSourceDirectory) { + commonSourceDirectory += ts.directorySeparator; + } + } + if (options.noEmit) { + if (options.out || options.outDir) { + diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_noEmit_cannot_be_specified_with_option_out_or_outDir)); + } + if (options.declaration) { + diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_noEmit_cannot_be_specified_with_option_declaration)); + } + } + } + } + ts.createProgram = createProgram; +})(ts || (ts = {})); +// Copyright (c) Microsoft. All rights reserved. Licensed under the Apache License, Version 2.0. +// See LICENSE.txt in the project root for complete license information. +/// +var ts; +(function (ts) { + var BreakpointResolver; + (function (BreakpointResolver) { + function spanInSourceFileAtLocation(sourceFile, position) { + if (sourceFile.flags & 2048) { + return undefined; + } + var tokenAtLocation = ts.getTokenAtPosition(sourceFile, position); + var lineOfPosition = sourceFile.getLineAndCharacterOfPosition(position).line; + if (sourceFile.getLineAndCharacterOfPosition(tokenAtLocation.getStart()).line > lineOfPosition) { + tokenAtLocation = ts.findPrecedingToken(tokenAtLocation.pos, sourceFile); + if (!tokenAtLocation || sourceFile.getLineAndCharacterOfPosition(tokenAtLocation.getEnd()).line !== lineOfPosition) { + return undefined; + } + } + if (ts.isInAmbientContext(tokenAtLocation)) { + return undefined; + } + return spanInNode(tokenAtLocation); + function textSpan(startNode, endNode) { + return ts.createTextSpanFromBounds(startNode.getStart(), (endNode || startNode).getEnd()); + } + function spanInNodeIfStartsOnSameLine(node, otherwiseOnNode) { + if (node && lineOfPosition === sourceFile.getLineAndCharacterOfPosition(node.getStart()).line) { + return spanInNode(node); + } + return spanInNode(otherwiseOnNode); + } + function spanInPreviousNode(node) { + return spanInNode(ts.findPrecedingToken(node.pos, sourceFile)); + } + function spanInNextNode(node) { + return spanInNode(ts.findNextToken(node, node.parent)); + } + function spanInNode(node) { + if (node) { + if (ts.isExpression(node)) { + if (node.parent.kind === 184) { + return spanInPreviousNode(node); + } + if (node.parent.kind === 186) { + return textSpan(node); + } + if (node.parent.kind === 169 && node.parent.operatorToken.kind === 23) { + return textSpan(node); + } + if (node.parent.kind == 163 && node.parent.body == node) { + return textSpan(node); + } + } + switch (node.kind) { + case 180: + return spanInVariableDeclaration(node.declarationList.declarations[0]); + case 198: + case 132: + case 131: + return spanInVariableDeclaration(node); + case 129: + return spanInParameterDeclaration(node); + case 200: + case 134: + case 133: + case 136: + case 137: + case 135: + case 162: + case 163: + return spanInFunctionDeclaration(node); + case 179: + if (ts.isFunctionBlock(node)) { + return spanInFunctionBlock(node); + } + case 206: + return spanInBlock(node); + case 223: + return spanInBlock(node.block); + case 182: + return textSpan(node.expression); + case 191: + return textSpan(node.getChildAt(0), node.expression); + case 185: + return textSpan(node, ts.findNextToken(node.expression, node)); + case 184: + return spanInNode(node.statement); + case 197: + return textSpan(node.getChildAt(0)); + case 183: + return textSpan(node, ts.findNextToken(node.expression, node)); + case 194: + return spanInNode(node.statement); + case 190: + case 189: + return textSpan(node.getChildAt(0), node.label); + case 186: + return spanInForStatement(node); + case 187: + case 188: + return textSpan(node, ts.findNextToken(node.expression, node)); + case 193: + return textSpan(node, ts.findNextToken(node.expression, node)); + case 220: + case 221: + return spanInNode(node.statements[0]); + case 196: + return spanInBlock(node.tryBlock); + case 195: + return textSpan(node, node.expression); + case 214: + if (!node.expression) { + return undefined; + } + return textSpan(node, node.expression); + case 208: + return textSpan(node, node.moduleReference); + case 209: + return textSpan(node, node.moduleSpecifier); + case 215: + return textSpan(node, node.moduleSpecifier); + case 205: + if (ts.getModuleInstanceState(node) !== 1) { + return undefined; + } + case 201: + case 204: + case 226: + case 157: + case 158: + return textSpan(node); + case 192: + return spanInNode(node.statement); + case 202: + case 203: + return undefined; + case 22: + case 1: + return spanInNodeIfStartsOnSameLine(ts.findPrecedingToken(node.pos, sourceFile)); + case 23: + return spanInPreviousNode(node); + case 14: + return spanInOpenBraceToken(node); + case 15: + return spanInCloseBraceToken(node); + case 16: + return spanInOpenParenToken(node); + case 17: + return spanInCloseParenToken(node); + case 51: + return spanInColonToken(node); + case 25: + case 24: + return spanInGreaterThanOrLessThanToken(node); + case 100: + return spanInWhileKeyword(node); + case 76: + case 68: + case 81: + return spanInNextNode(node); + default: + if (node.parent.kind === 224 && node.parent.name === node) { + return spanInNode(node.parent.initializer); + } + if (node.parent.kind === 160 && node.parent.type === node) { + return spanInNode(node.parent.expression); + } + if (ts.isFunctionLike(node.parent) && node.parent.type === node) { + return spanInPreviousNode(node); + } + return spanInNode(node.parent); + } + } + function spanInVariableDeclaration(variableDeclaration) { + if (variableDeclaration.parent.parent.kind === 187 || + variableDeclaration.parent.parent.kind === 188) { + return spanInNode(variableDeclaration.parent.parent); + } + var isParentVariableStatement = variableDeclaration.parent.parent.kind === 180; + var isDeclarationOfForStatement = variableDeclaration.parent.parent.kind === 186 && ts.contains(variableDeclaration.parent.parent.initializer.declarations, variableDeclaration); + var declarations = isParentVariableStatement + ? variableDeclaration.parent.parent.declarationList.declarations + : isDeclarationOfForStatement + ? variableDeclaration.parent.parent.initializer.declarations + : undefined; + if (variableDeclaration.initializer || (variableDeclaration.flags & 1)) { + if (declarations && declarations[0] === variableDeclaration) { + if (isParentVariableStatement) { + return textSpan(variableDeclaration.parent, variableDeclaration); + } + else { + ts.Debug.assert(isDeclarationOfForStatement); + return textSpan(ts.findPrecedingToken(variableDeclaration.pos, sourceFile, variableDeclaration.parent), variableDeclaration); + } + } + else { + return textSpan(variableDeclaration); + } + } + else if (declarations && declarations[0] !== variableDeclaration) { + var indexOfCurrentDeclaration = ts.indexOf(declarations, variableDeclaration); + return spanInVariableDeclaration(declarations[indexOfCurrentDeclaration - 1]); + } + } + function canHaveSpanInParameterDeclaration(parameter) { + return !!parameter.initializer || parameter.dotDotDotToken !== undefined || + !!(parameter.flags & 16) || !!(parameter.flags & 32); + } + function spanInParameterDeclaration(parameter) { + if (canHaveSpanInParameterDeclaration(parameter)) { + return textSpan(parameter); + } + else { + var functionDeclaration = parameter.parent; + var indexOfParameter = ts.indexOf(functionDeclaration.parameters, parameter); + if (indexOfParameter) { + return spanInParameterDeclaration(functionDeclaration.parameters[indexOfParameter - 1]); + } + else { + return spanInNode(functionDeclaration.body); + } + } + } + function canFunctionHaveSpanInWholeDeclaration(functionDeclaration) { + return !!(functionDeclaration.flags & 1) || + (functionDeclaration.parent.kind === 201 && functionDeclaration.kind !== 135); + } + function spanInFunctionDeclaration(functionDeclaration) { + if (!functionDeclaration.body) { + return undefined; + } + if (canFunctionHaveSpanInWholeDeclaration(functionDeclaration)) { + return textSpan(functionDeclaration); + } + return spanInNode(functionDeclaration.body); + } + function spanInFunctionBlock(block) { + var nodeForSpanInBlock = block.statements.length ? block.statements[0] : block.getLastToken(); + if (canFunctionHaveSpanInWholeDeclaration(block.parent)) { + return spanInNodeIfStartsOnSameLine(block.parent, nodeForSpanInBlock); + } + return spanInNode(nodeForSpanInBlock); + } + function spanInBlock(block) { + switch (block.parent.kind) { + case 205: + if (ts.getModuleInstanceState(block.parent) !== 1) { + return undefined; + } + case 185: + case 183: + case 187: + case 188: + return spanInNodeIfStartsOnSameLine(block.parent, block.statements[0]); + case 186: + return spanInNodeIfStartsOnSameLine(ts.findPrecedingToken(block.pos, sourceFile, block.parent), block.statements[0]); + } + return spanInNode(block.statements[0]); + } + function spanInForStatement(forStatement) { + if (forStatement.initializer) { + if (forStatement.initializer.kind === 199) { + var variableDeclarationList = forStatement.initializer; + if (variableDeclarationList.declarations.length > 0) { + return spanInNode(variableDeclarationList.declarations[0]); + } + } + else { + return spanInNode(forStatement.initializer); + } + } + if (forStatement.condition) { + return textSpan(forStatement.condition); + } + if (forStatement.iterator) { + return textSpan(forStatement.iterator); + } + } + function spanInOpenBraceToken(node) { + switch (node.parent.kind) { + case 204: + var enumDeclaration = node.parent; + return spanInNodeIfStartsOnSameLine(ts.findPrecedingToken(node.pos, sourceFile, node.parent), enumDeclaration.members.length ? enumDeclaration.members[0] : enumDeclaration.getLastToken(sourceFile)); + case 201: + var classDeclaration = node.parent; + return spanInNodeIfStartsOnSameLine(ts.findPrecedingToken(node.pos, sourceFile, node.parent), classDeclaration.members.length ? classDeclaration.members[0] : classDeclaration.getLastToken(sourceFile)); + case 207: + return spanInNodeIfStartsOnSameLine(node.parent.parent, node.parent.clauses[0]); + } + return spanInNode(node.parent); + } + function spanInCloseBraceToken(node) { + switch (node.parent.kind) { + case 206: + if (ts.getModuleInstanceState(node.parent.parent) !== 1) { + return undefined; + } + case 204: + case 201: + return textSpan(node); + case 179: + if (ts.isFunctionBlock(node.parent)) { + return textSpan(node); + } + case 223: + return spanInNode(node.parent.statements[node.parent.statements.length - 1]); + ; + case 207: + var caseBlock = node.parent; + var lastClause = caseBlock.clauses[caseBlock.clauses.length - 1]; + if (lastClause) { + return spanInNode(lastClause.statements[lastClause.statements.length - 1]); + } + return undefined; + default: + return spanInNode(node.parent); + } + } + function spanInOpenParenToken(node) { + if (node.parent.kind === 184) { + return spanInPreviousNode(node); + } + return spanInNode(node.parent); + } + function spanInCloseParenToken(node) { + switch (node.parent.kind) { + case 162: + case 200: + case 163: + case 134: + case 133: + case 136: + case 137: + case 135: + case 185: + case 184: + case 186: + return spanInPreviousNode(node); + default: + return spanInNode(node.parent); + } + return spanInNode(node.parent); + } + function spanInColonToken(node) { + if (ts.isFunctionLike(node.parent) || node.parent.kind === 224) { + return spanInPreviousNode(node); + } + return spanInNode(node.parent); + } + function spanInGreaterThanOrLessThanToken(node) { + if (node.parent.kind === 160) { + return spanInNode(node.parent.expression); + } + return spanInNode(node.parent); + } + function spanInWhileKeyword(node) { + if (node.parent.kind === 184) { + return textSpan(node, ts.findNextToken(node.parent.expression, node.parent)); + } + return spanInNode(node.parent); + } + } + } + BreakpointResolver.spanInSourceFileAtLocation = spanInSourceFileAtLocation; + })(BreakpointResolver = ts.BreakpointResolver || (ts.BreakpointResolver = {})); +})(ts || (ts = {})); +// +// Copyright (c) Microsoft Corporation. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +var ts; +(function (ts) { + var OutliningElementsCollector; + (function (OutliningElementsCollector) { + function collectElements(sourceFile) { + var elements = []; + var collapseText = "..."; + function addOutliningSpan(hintSpanNode, startElement, endElement, autoCollapse) { + if (hintSpanNode && startElement && endElement) { + var span = { + textSpan: ts.createTextSpanFromBounds(startElement.pos, endElement.end), + hintSpan: ts.createTextSpanFromBounds(hintSpanNode.getStart(), hintSpanNode.end), + bannerText: collapseText, + autoCollapse: autoCollapse + }; + elements.push(span); + } + } + function autoCollapse(node) { + return ts.isFunctionBlock(node) && node.parent.kind !== 163; + } + var depth = 0; + var maxDepth = 20; + function walk(n) { + if (depth > maxDepth) { + return; + } + switch (n.kind) { + case 179: + if (!ts.isFunctionBlock(n)) { + var parent_6 = n.parent; + var openBrace = ts.findChildOfKind(n, 14, sourceFile); + var closeBrace = ts.findChildOfKind(n, 15, sourceFile); + if (parent_6.kind === 184 || + parent_6.kind === 187 || + parent_6.kind === 188 || + parent_6.kind === 186 || + parent_6.kind === 183 || + parent_6.kind === 185 || + parent_6.kind === 192 || + parent_6.kind === 223) { + addOutliningSpan(parent_6, openBrace, closeBrace, autoCollapse(n)); + break; + } + if (parent_6.kind === 196) { + var tryStatement = parent_6; + if (tryStatement.tryBlock === n) { + addOutliningSpan(parent_6, openBrace, closeBrace, autoCollapse(n)); + break; + } + else if (tryStatement.finallyBlock === n) { + var finallyKeyword = ts.findChildOfKind(tryStatement, 81, sourceFile); + if (finallyKeyword) { + addOutliningSpan(finallyKeyword, openBrace, closeBrace, autoCollapse(n)); + break; + } + } + } + var span = ts.createTextSpanFromBounds(n.getStart(), n.end); + elements.push({ + textSpan: span, + hintSpan: span, + bannerText: collapseText, + autoCollapse: autoCollapse(n) + }); + break; + } + case 206: { + var openBrace = ts.findChildOfKind(n, 14, sourceFile); + var closeBrace = ts.findChildOfKind(n, 15, sourceFile); + addOutliningSpan(n.parent, openBrace, closeBrace, autoCollapse(n)); + break; + } + case 201: + case 202: + case 204: + case 154: + case 207: { + var openBrace = ts.findChildOfKind(n, 14, sourceFile); + var closeBrace = ts.findChildOfKind(n, 15, sourceFile); + addOutliningSpan(n, openBrace, closeBrace, autoCollapse(n)); + break; + } + case 153: + var openBracket = ts.findChildOfKind(n, 18, sourceFile); + var closeBracket = ts.findChildOfKind(n, 19, sourceFile); + addOutliningSpan(n, openBracket, closeBracket, autoCollapse(n)); + break; + } + depth++; + ts.forEachChild(n, walk); + depth--; + } + walk(sourceFile); + return elements; + } + OutliningElementsCollector.collectElements = collectElements; + })(OutliningElementsCollector = ts.OutliningElementsCollector || (ts.OutliningElementsCollector = {})); +})(ts || (ts = {})); +var ts; +(function (ts) { + var NavigateTo; + (function (NavigateTo) { + function getNavigateToItems(program, cancellationToken, searchValue, maxResultCount) { + var patternMatcher = ts.createPatternMatcher(searchValue); + var rawItems = []; + ts.forEach(program.getSourceFiles(), function (sourceFile) { + cancellationToken.throwIfCancellationRequested(); + var declarations = sourceFile.getNamedDeclarations(); + for (var _i = 0; _i < declarations.length; _i++) { + var declaration = declarations[_i]; + var name = getDeclarationName(declaration); + if (name !== undefined) { + var matches = patternMatcher.getMatchesForLastSegmentOfPattern(name); + if (!matches) { + continue; + } + if (patternMatcher.patternContainsDots) { + var containers = getContainers(declaration); + if (!containers) { + return undefined; + } + matches = patternMatcher.getMatches(containers, name); + if (!matches) { + continue; + } + } + var fileName = sourceFile.fileName; + var matchKind = bestMatchKind(matches); + rawItems.push({ name: name, fileName: fileName, matchKind: matchKind, isCaseSensitive: allMatchesAreCaseSensitive(matches), declaration: declaration }); + } + } + }); + rawItems.sort(compareNavigateToItems); + if (maxResultCount !== undefined) { + rawItems = rawItems.slice(0, maxResultCount); + } + var items = ts.map(rawItems, createNavigateToItem); + return items; + function allMatchesAreCaseSensitive(matches) { + ts.Debug.assert(matches.length > 0); + for (var _i = 0; _i < matches.length; _i++) { + var match = matches[_i]; + if (!match.isCaseSensitive) { + return false; + } + } + return true; + } + function getDeclarationName(declaration) { + var result = getTextOfIdentifierOrLiteral(declaration.name); + if (result !== undefined) { + return result; + } + if (declaration.name.kind === 127) { + var expr = declaration.name.expression; + if (expr.kind === 155) { + return expr.name.text; + } + return getTextOfIdentifierOrLiteral(expr); + } + return undefined; + } + function getTextOfIdentifierOrLiteral(node) { + if (node.kind === 65 || + node.kind === 8 || + node.kind === 7) { + return node.text; + } + return undefined; + } + function tryAddSingleDeclarationName(declaration, containers) { + if (declaration && declaration.name) { + var text = getTextOfIdentifierOrLiteral(declaration.name); + if (text !== undefined) { + containers.unshift(text); + } + else if (declaration.name.kind === 127) { + return tryAddComputedPropertyName(declaration.name.expression, containers, true); + } + else { + return false; + } + } + return true; + } + function tryAddComputedPropertyName(expression, containers, includeLastPortion) { + var text = getTextOfIdentifierOrLiteral(expression); + if (text !== undefined) { + if (includeLastPortion) { + containers.unshift(text); + } + return true; + } + if (expression.kind === 155) { + var propertyAccess = expression; + if (includeLastPortion) { + containers.unshift(propertyAccess.name.text); + } + return tryAddComputedPropertyName(propertyAccess.expression, containers, true); + } + return false; + } + function getContainers(declaration) { + var containers = []; + if (declaration.name.kind === 127) { + if (!tryAddComputedPropertyName(declaration.name.expression, containers, false)) { + return undefined; + } + } + declaration = ts.getContainerNode(declaration); + while (declaration) { + if (!tryAddSingleDeclarationName(declaration, containers)) { + return undefined; + } + declaration = ts.getContainerNode(declaration); + } + return containers; + } + function bestMatchKind(matches) { + ts.Debug.assert(matches.length > 0); + var bestMatchKind = ts.PatternMatchKind.camelCase; + for (var _i = 0; _i < matches.length; _i++) { + var match = matches[_i]; + var kind = match.kind; + if (kind < bestMatchKind) { + bestMatchKind = kind; + } + } + return bestMatchKind; + } + var baseSensitivity = { sensitivity: "base" }; + function compareNavigateToItems(i1, i2) { + return i1.matchKind - i2.matchKind || + i1.name.localeCompare(i2.name, undefined, baseSensitivity) || + i1.name.localeCompare(i2.name); + } + function createNavigateToItem(rawItem) { + var declaration = rawItem.declaration; + var container = ts.getContainerNode(declaration); + return { + name: rawItem.name, + kind: ts.getNodeKind(declaration), + kindModifiers: ts.getNodeModifiers(declaration), + matchKind: ts.PatternMatchKind[rawItem.matchKind], + isCaseSensitive: rawItem.isCaseSensitive, + fileName: rawItem.fileName, + textSpan: ts.createTextSpanFromBounds(declaration.getStart(), declaration.getEnd()), + containerName: container && container.name ? container.name.text : "", + containerKind: container && container.name ? ts.getNodeKind(container) : "" + }; + } + } + NavigateTo.getNavigateToItems = getNavigateToItems; + })(NavigateTo = ts.NavigateTo || (ts.NavigateTo = {})); +})(ts || (ts = {})); +/// +var ts; +(function (ts) { + var NavigationBar; + (function (NavigationBar) { + function getNavigationBarItems(sourceFile) { + var hasGlobalNode = false; + return getItemsWorker(getTopLevelNodes(sourceFile), createTopLevelItem); + function getIndent(node) { + var indent = hasGlobalNode ? 1 : 0; + var current = node.parent; + while (current) { + switch (current.kind) { + case 205: + do { + current = current.parent; + } while (current.kind === 205); + case 201: + case 204: + case 202: + case 200: + indent++; + } + current = current.parent; + } + return indent; + } + function getChildNodes(nodes) { + var childNodes = []; + function visit(node) { + switch (node.kind) { + case 180: + ts.forEach(node.declarationList.declarations, visit); + break; + case 150: + case 151: + ts.forEach(node.elements, visit); + break; + case 215: + if (node.exportClause) { + ts.forEach(node.exportClause.elements, visit); + } + break; + case 209: + var importClause = node.importClause; + if (importClause) { + if (importClause.name) { + childNodes.push(importClause); + } + if (importClause.namedBindings) { + if (importClause.namedBindings.kind === 211) { + childNodes.push(importClause.namedBindings); + } + else { + ts.forEach(importClause.namedBindings.elements, visit); + } + } + } + break; + case 152: + case 198: + if (ts.isBindingPattern(node.name)) { + visit(node.name); + break; + } + case 201: + case 204: + case 202: + case 205: + case 200: + case 208: + case 213: + case 217: + childNodes.push(node); + break; + } + } + ts.forEach(nodes, visit); + return sortNodes(childNodes); + } + function getTopLevelNodes(node) { + var topLevelNodes = []; + topLevelNodes.push(node); + addTopLevelNodes(node.statements, topLevelNodes); + return topLevelNodes; + } + function sortNodes(nodes) { + return nodes.slice(0).sort(function (n1, n2) { + if (n1.name && n2.name) { + return ts.getPropertyNameForPropertyNameNode(n1.name).localeCompare(ts.getPropertyNameForPropertyNameNode(n2.name)); + } + else if (n1.name) { + return 1; + } + else if (n2.name) { + return -1; + } + else { + return n1.kind - n2.kind; + } + }); + } + function addTopLevelNodes(nodes, topLevelNodes) { + nodes = sortNodes(nodes); + for (var _i = 0; _i < nodes.length; _i++) { + var node = nodes[_i]; + switch (node.kind) { + case 201: + case 204: + case 202: + topLevelNodes.push(node); + break; + case 205: + var moduleDeclaration = node; + topLevelNodes.push(node); + addTopLevelNodes(getInnermostModule(moduleDeclaration).body.statements, topLevelNodes); + break; + case 200: + var functionDeclaration = node; + if (isTopLevelFunctionDeclaration(functionDeclaration)) { + topLevelNodes.push(node); + addTopLevelNodes(functionDeclaration.body.statements, topLevelNodes); + } + break; + } + } + } + function isTopLevelFunctionDeclaration(functionDeclaration) { + if (functionDeclaration.kind === 200) { + if (functionDeclaration.body && functionDeclaration.body.kind === 179) { + if (ts.forEach(functionDeclaration.body.statements, function (s) { return s.kind === 200 && !isEmpty(s.name.text); })) { + return true; + } + if (!ts.isFunctionBlock(functionDeclaration.parent)) { + return true; + } + } + } + return false; + } + function getItemsWorker(nodes, createItem) { + var items = []; + var keyToItem = {}; + for (var _i = 0; _i < nodes.length; _i++) { + var child = nodes[_i]; + var item_3 = createItem(child); + if (item_3 !== undefined) { + if (item_3.text.length > 0) { + var key = item_3.text + "-" + item_3.kind + "-" + item_3.indent; + var itemWithSameName = keyToItem[key]; + if (itemWithSameName) { + merge(itemWithSameName, item_3); + } + else { + keyToItem[key] = item_3; + items.push(item_3); + } + } + } + } + return items; + } + function merge(target, source) { + target.spans.push.apply(target.spans, source.spans); + if (source.childItems) { + if (!target.childItems) { + target.childItems = []; + } + outer: for (var _i = 0, _a = source.childItems; _i < _a.length; _i++) { + var sourceChild = _a[_i]; + for (var _b = 0, _c = target.childItems; _b < _c.length; _b++) { + var targetChild = _c[_b]; + if (targetChild.text === sourceChild.text && targetChild.kind === sourceChild.kind) { + merge(targetChild, sourceChild); + continue outer; + } + } + target.childItems.push(sourceChild); + } + } + } + function createChildItem(node) { + switch (node.kind) { + case 129: + if (ts.isBindingPattern(node.name)) { + break; + } + if ((node.flags & 499) === 0) { + return undefined; + } + return createItem(node, getTextOfNode(node.name), ts.ScriptElementKind.memberVariableElement); + case 134: + case 133: + return createItem(node, getTextOfNode(node.name), ts.ScriptElementKind.memberFunctionElement); + case 136: + return createItem(node, getTextOfNode(node.name), ts.ScriptElementKind.memberGetAccessorElement); + case 137: + return createItem(node, getTextOfNode(node.name), ts.ScriptElementKind.memberSetAccessorElement); + case 140: + return createItem(node, "[]", ts.ScriptElementKind.indexSignatureElement); + case 226: + return createItem(node, getTextOfNode(node.name), ts.ScriptElementKind.memberVariableElement); + case 138: + return createItem(node, "()", ts.ScriptElementKind.callSignatureElement); + case 139: + return createItem(node, "new()", ts.ScriptElementKind.constructSignatureElement); + case 132: + case 131: + return createItem(node, getTextOfNode(node.name), ts.ScriptElementKind.memberVariableElement); + case 200: + return createItem(node, getTextOfNode(node.name), ts.ScriptElementKind.functionElement); + case 198: + case 152: + var variableDeclarationNode; + var name_18; + if (node.kind === 152) { + name_18 = node.name; + variableDeclarationNode = node; + while (variableDeclarationNode && variableDeclarationNode.kind !== 198) { + variableDeclarationNode = variableDeclarationNode.parent; + } + ts.Debug.assert(variableDeclarationNode !== undefined); + } + else { + ts.Debug.assert(!ts.isBindingPattern(node.name)); + variableDeclarationNode = node; + name_18 = node.name; + } + if (ts.isConst(variableDeclarationNode)) { + return createItem(node, getTextOfNode(name_18), ts.ScriptElementKind.constElement); + } + else if (ts.isLet(variableDeclarationNode)) { + return createItem(node, getTextOfNode(name_18), ts.ScriptElementKind.letElement); + } + else { + return createItem(node, getTextOfNode(name_18), ts.ScriptElementKind.variableElement); + } + case 135: + return createItem(node, "constructor", ts.ScriptElementKind.constructorImplementationElement); + case 217: + case 213: + case 208: + case 210: + case 211: + return createItem(node, getTextOfNode(node.name), ts.ScriptElementKind.alias); + } + return undefined; + function createItem(node, name, scriptElementKind) { + return getNavigationBarItem(name, scriptElementKind, ts.getNodeModifiers(node), [getNodeSpan(node)]); + } + } + function isEmpty(text) { + return !text || text.trim() === ""; + } + function getNavigationBarItem(text, kind, kindModifiers, spans, childItems, indent) { + if (childItems === void 0) { childItems = []; } + if (indent === void 0) { indent = 0; } + if (isEmpty(text)) { + return undefined; + } + return { + text: text, + kind: kind, + kindModifiers: kindModifiers, + spans: spans, + childItems: childItems, + indent: indent, + bolded: false, + grayed: false + }; + } + function createTopLevelItem(node) { + switch (node.kind) { + case 227: + return createSourceFileItem(node); + case 201: + return createClassItem(node); + case 204: + return createEnumItem(node); + case 202: + return createIterfaceItem(node); + case 205: + return createModuleItem(node); + case 200: + return createFunctionItem(node); + } + return undefined; + function getModuleName(moduleDeclaration) { + if (moduleDeclaration.name.kind === 8) { + return getTextOfNode(moduleDeclaration.name); + } + var result = []; + result.push(moduleDeclaration.name.text); + while (moduleDeclaration.body && moduleDeclaration.body.kind === 205) { + moduleDeclaration = moduleDeclaration.body; + result.push(moduleDeclaration.name.text); + } + return result.join("."); + } + function createModuleItem(node) { + var moduleName = getModuleName(node); + var childItems = getItemsWorker(getChildNodes(getInnermostModule(node).body.statements), createChildItem); + return getNavigationBarItem(moduleName, ts.ScriptElementKind.moduleElement, ts.getNodeModifiers(node), [getNodeSpan(node)], childItems, getIndent(node)); + } + function createFunctionItem(node) { + if ((node.name || node.flags & 256) && node.body && node.body.kind === 179) { + var childItems = getItemsWorker(sortNodes(node.body.statements), createChildItem); + return getNavigationBarItem((!node.name && node.flags & 256) ? "default" : node.name.text, ts.ScriptElementKind.functionElement, ts.getNodeModifiers(node), [getNodeSpan(node)], childItems, getIndent(node)); + } + return undefined; + } + function createSourceFileItem(node) { + var childItems = getItemsWorker(getChildNodes(node.statements), createChildItem); + if (childItems === undefined || childItems.length === 0) { + return undefined; + } + hasGlobalNode = true; + var rootName = ts.isExternalModule(node) + ? "\"" + ts.escapeString(ts.getBaseFileName(ts.removeFileExtension(ts.normalizePath(node.fileName)))) + "\"" + : ""; + return getNavigationBarItem(rootName, ts.ScriptElementKind.moduleElement, ts.ScriptElementKindModifier.none, [getNodeSpan(node)], childItems); + } + function createClassItem(node) { + var childItems; + if (node.members) { + var constructor = ts.forEach(node.members, function (member) { + return member.kind === 135 && member; + }); + var nodes = removeDynamicallyNamedProperties(node); + if (constructor) { + nodes.push.apply(nodes, ts.filter(constructor.parameters, function (p) { return !ts.isBindingPattern(p.name); })); + } + childItems = getItemsWorker(sortNodes(nodes), createChildItem); + } + var nodeName = !node.name && (node.flags & 256) ? "default" : node.name.text; + return getNavigationBarItem(nodeName, ts.ScriptElementKind.classElement, ts.getNodeModifiers(node), [getNodeSpan(node)], childItems, getIndent(node)); + } + function createEnumItem(node) { + var childItems = getItemsWorker(sortNodes(removeComputedProperties(node)), createChildItem); + return getNavigationBarItem(node.name.text, ts.ScriptElementKind.enumElement, ts.getNodeModifiers(node), [getNodeSpan(node)], childItems, getIndent(node)); + } + function createIterfaceItem(node) { + var childItems = getItemsWorker(sortNodes(removeDynamicallyNamedProperties(node)), createChildItem); + return getNavigationBarItem(node.name.text, ts.ScriptElementKind.interfaceElement, ts.getNodeModifiers(node), [getNodeSpan(node)], childItems, getIndent(node)); + } + } + function removeComputedProperties(node) { + return ts.filter(node.members, function (member) { return member.name === undefined || member.name.kind !== 127; }); + } + function removeDynamicallyNamedProperties(node) { + return ts.filter(node.members, function (member) { return !ts.hasDynamicName(member); }); + } + function getInnermostModule(node) { + while (node.body.kind === 205) { + node = node.body; + } + return node; + } + function getNodeSpan(node) { + return node.kind === 227 + ? ts.createTextSpanFromBounds(node.getFullStart(), node.getEnd()) + : ts.createTextSpanFromBounds(node.getStart(), node.getEnd()); + } + function getTextOfNode(node) { + return ts.getTextOfNodeFromSourceText(sourceFile.text, node); + } + } + NavigationBar.getNavigationBarItems = getNavigationBarItems; + })(NavigationBar = ts.NavigationBar || (ts.NavigationBar = {})); +})(ts || (ts = {})); +var ts; +(function (ts) { + (function (PatternMatchKind) { + PatternMatchKind[PatternMatchKind["exact"] = 0] = "exact"; + PatternMatchKind[PatternMatchKind["prefix"] = 1] = "prefix"; + PatternMatchKind[PatternMatchKind["substring"] = 2] = "substring"; + PatternMatchKind[PatternMatchKind["camelCase"] = 3] = "camelCase"; + })(ts.PatternMatchKind || (ts.PatternMatchKind = {})); + var PatternMatchKind = ts.PatternMatchKind; + function createPatternMatch(kind, punctuationStripped, isCaseSensitive, camelCaseWeight) { + return { + kind: kind, + punctuationStripped: punctuationStripped, + isCaseSensitive: isCaseSensitive, + camelCaseWeight: camelCaseWeight + }; + } + function createPatternMatcher(pattern) { + var stringToWordSpans = {}; + pattern = pattern.trim(); + var fullPatternSegment = createSegment(pattern); + var dotSeparatedSegments = pattern.split(".").map(function (p) { return createSegment(p.trim()); }); + var invalidPattern = dotSeparatedSegments.length === 0 || ts.forEach(dotSeparatedSegments, segmentIsInvalid); + return { + getMatches: getMatches, + getMatchesForLastSegmentOfPattern: getMatchesForLastSegmentOfPattern, + patternContainsDots: dotSeparatedSegments.length > 1 + }; + function skipMatch(candidate) { + return invalidPattern || !candidate; + } + function getMatchesForLastSegmentOfPattern(candidate) { + if (skipMatch(candidate)) { + return undefined; + } + return matchSegment(candidate, ts.lastOrUndefined(dotSeparatedSegments)); + } + function getMatches(candidateContainers, candidate) { + if (skipMatch(candidate)) { + return undefined; + } + var candidateMatch = matchSegment(candidate, ts.lastOrUndefined(dotSeparatedSegments)); + if (!candidateMatch) { + return undefined; + } + candidateContainers = candidateContainers || []; + if (dotSeparatedSegments.length - 1 > candidateContainers.length) { + return undefined; + } + var totalMatch = candidateMatch; + for (var i = dotSeparatedSegments.length - 2, j = candidateContainers.length - 1; i >= 0; i--, j--) { + var segment = dotSeparatedSegments[i]; + var containerName = candidateContainers[j]; + var containerMatch = matchSegment(containerName, segment); + if (!containerMatch) { + return undefined; + } + ts.addRange(totalMatch, containerMatch); + } + return totalMatch; + } + function getWordSpans(word) { + if (!ts.hasProperty(stringToWordSpans, word)) { + stringToWordSpans[word] = breakIntoWordSpans(word); + } + return stringToWordSpans[word]; + } + function matchTextChunk(candidate, chunk, punctuationStripped) { + var index = indexOfIgnoringCase(candidate, chunk.textLowerCase); + if (index === 0) { + if (chunk.text.length === candidate.length) { + return createPatternMatch(PatternMatchKind.exact, punctuationStripped, candidate === chunk.text); + } + else { + return createPatternMatch(PatternMatchKind.prefix, punctuationStripped, startsWith(candidate, chunk.text)); + } + } + var isLowercase = chunk.isLowerCase; + if (isLowercase) { + if (index > 0) { + var wordSpans = getWordSpans(candidate); + for (var _i = 0; _i < wordSpans.length; _i++) { + var span = wordSpans[_i]; + if (partStartsWith(candidate, span, chunk.text, true)) { + return createPatternMatch(PatternMatchKind.substring, punctuationStripped, partStartsWith(candidate, span, chunk.text, false)); + } + } + } + } + else { + if (candidate.indexOf(chunk.text) > 0) { + return createPatternMatch(PatternMatchKind.substring, punctuationStripped, true); + } + } + if (!isLowercase) { + if (chunk.characterSpans.length > 0) { + var candidateParts = getWordSpans(candidate); + var camelCaseWeight = tryCamelCaseMatch(candidate, candidateParts, chunk, false); + if (camelCaseWeight !== undefined) { + return createPatternMatch(PatternMatchKind.camelCase, punctuationStripped, true, camelCaseWeight); + } + camelCaseWeight = tryCamelCaseMatch(candidate, candidateParts, chunk, true); + if (camelCaseWeight !== undefined) { + return createPatternMatch(PatternMatchKind.camelCase, punctuationStripped, false, camelCaseWeight); + } + } + } + if (isLowercase) { + if (chunk.text.length < candidate.length) { + if (index > 0 && isUpperCaseLetter(candidate.charCodeAt(index))) { + return createPatternMatch(PatternMatchKind.substring, punctuationStripped, false); + } + } + } + return undefined; + } + function containsSpaceOrAsterisk(text) { + for (var i = 0; i < text.length; i++) { + var ch = text.charCodeAt(i); + if (ch === 32 || ch === 42) { + return true; + } + } + return false; + } + function matchSegment(candidate, segment) { + if (!containsSpaceOrAsterisk(segment.totalTextChunk.text)) { + var match = matchTextChunk(candidate, segment.totalTextChunk, false); + if (match) { + return [match]; + } + } + var subWordTextChunks = segment.subWordTextChunks; + var matches = undefined; + for (var _i = 0; _i < subWordTextChunks.length; _i++) { + var subWordTextChunk = subWordTextChunks[_i]; + var result = matchTextChunk(candidate, subWordTextChunk, true); + if (!result) { + return undefined; + } + matches = matches || []; + matches.push(result); + } + return matches; + } + function partStartsWith(candidate, candidateSpan, pattern, ignoreCase, patternSpan) { + var patternPartStart = patternSpan ? patternSpan.start : 0; + var patternPartLength = patternSpan ? patternSpan.length : pattern.length; + if (patternPartLength > candidateSpan.length) { + return false; + } + if (ignoreCase) { + for (var i = 0; i < patternPartLength; i++) { + var ch1 = pattern.charCodeAt(patternPartStart + i); + var ch2 = candidate.charCodeAt(candidateSpan.start + i); + if (toLowerCase(ch1) !== toLowerCase(ch2)) { + return false; + } + } + } + else { + for (var i = 0; i < patternPartLength; i++) { + var ch1 = pattern.charCodeAt(patternPartStart + i); + var ch2 = candidate.charCodeAt(candidateSpan.start + i); + if (ch1 !== ch2) { + return false; + } + } + } + return true; + } + function tryCamelCaseMatch(candidate, candidateParts, chunk, ignoreCase) { + var chunkCharacterSpans = chunk.characterSpans; + var currentCandidate = 0; + var currentChunkSpan = 0; + var firstMatch = undefined; + var contiguous = undefined; + while (true) { + if (currentChunkSpan === chunkCharacterSpans.length) { + var weight = 0; + if (contiguous) { + weight += 1; + } + if (firstMatch === 0) { + weight += 2; + } + return weight; + } + else if (currentCandidate === candidateParts.length) { + return undefined; + } + var candidatePart = candidateParts[currentCandidate]; + var gotOneMatchThisCandidate = false; + for (; currentChunkSpan < chunkCharacterSpans.length; currentChunkSpan++) { + var chunkCharacterSpan = chunkCharacterSpans[currentChunkSpan]; + if (gotOneMatchThisCandidate) { + if (!isUpperCaseLetter(chunk.text.charCodeAt(chunkCharacterSpans[currentChunkSpan - 1].start)) || + !isUpperCaseLetter(chunk.text.charCodeAt(chunkCharacterSpans[currentChunkSpan].start))) { + break; + } + } + if (!partStartsWith(candidate, candidatePart, chunk.text, ignoreCase, chunkCharacterSpan)) { + break; + } + gotOneMatchThisCandidate = true; + firstMatch = firstMatch === undefined ? currentCandidate : firstMatch; + contiguous = contiguous === undefined ? true : contiguous; + candidatePart = ts.createTextSpan(candidatePart.start + chunkCharacterSpan.length, candidatePart.length - chunkCharacterSpan.length); + } + if (!gotOneMatchThisCandidate && contiguous !== undefined) { + contiguous = false; + } + currentCandidate++; + } + } + } + ts.createPatternMatcher = createPatternMatcher; + function patternMatchCompareTo(match1, match2) { + return compareType(match1, match2) || + compareCamelCase(match1, match2) || + compareCase(match1, match2) || + comparePunctuation(match1, match2); + } + function comparePunctuation(result1, result2) { + if (result1.punctuationStripped !== result2.punctuationStripped) { + return result1.punctuationStripped ? 1 : -1; + } + return 0; + } + function compareCase(result1, result2) { + if (result1.isCaseSensitive !== result2.isCaseSensitive) { + return result1.isCaseSensitive ? -1 : 1; + } + return 0; + } + function compareType(result1, result2) { + return result1.kind - result2.kind; + } + function compareCamelCase(result1, result2) { + if (result1.kind === PatternMatchKind.camelCase && result2.kind === PatternMatchKind.camelCase) { + return result2.camelCaseWeight - result1.camelCaseWeight; + } + return 0; + } + function createSegment(text) { + return { + totalTextChunk: createTextChunk(text), + subWordTextChunks: breakPatternIntoTextChunks(text) + }; + } + function segmentIsInvalid(segment) { + return segment.subWordTextChunks.length === 0; + } + function isUpperCaseLetter(ch) { + if (ch >= 65 && ch <= 90) { + return true; + } + if (ch < 127 || !ts.isUnicodeIdentifierStart(ch, 2)) { + return false; + } + var str = String.fromCharCode(ch); + return str === str.toUpperCase(); + } + function isLowerCaseLetter(ch) { + if (ch >= 97 && ch <= 122) { + return true; + } + if (ch < 127 || !ts.isUnicodeIdentifierStart(ch, 2)) { + return false; + } + var str = String.fromCharCode(ch); + return str === str.toLowerCase(); + } + function containsUpperCaseLetter(string) { + for (var i = 0, n = string.length; i < n; i++) { + if (isUpperCaseLetter(string.charCodeAt(i))) { + return true; + } + } + return false; + } + function startsWith(string, search) { + for (var i = 0, n = search.length; i < n; i++) { + if (string.charCodeAt(i) !== search.charCodeAt(i)) { + return false; + } + } + return true; + } + function indexOfIgnoringCase(string, value) { + for (var i = 0, n = string.length - value.length; i <= n; i++) { + if (startsWithIgnoringCase(string, value, i)) { + return i; + } + } + return -1; + } + function startsWithIgnoringCase(string, value, start) { + for (var i = 0, n = value.length; i < n; i++) { + var ch1 = toLowerCase(string.charCodeAt(i + start)); + var ch2 = value.charCodeAt(i); + if (ch1 !== ch2) { + return false; + } + } + return true; + } + function toLowerCase(ch) { + if (ch >= 65 && ch <= 90) { + return 97 + (ch - 65); + } + if (ch < 127) { + return ch; + } + return String.fromCharCode(ch).toLowerCase().charCodeAt(0); + } + function isDigit(ch) { + return ch >= 48 && ch <= 57; + } + function isWordChar(ch) { + return isUpperCaseLetter(ch) || isLowerCaseLetter(ch) || isDigit(ch) || ch === 95 || ch === 36; + } + function breakPatternIntoTextChunks(pattern) { + var result = []; + var wordStart = 0; + var wordLength = 0; + for (var i = 0; i < pattern.length; i++) { + var ch = pattern.charCodeAt(i); + if (isWordChar(ch)) { + if (wordLength++ === 0) { + wordStart = i; + } + } + else { + if (wordLength > 0) { + result.push(createTextChunk(pattern.substr(wordStart, wordLength))); + wordLength = 0; + } + } + } + if (wordLength > 0) { + result.push(createTextChunk(pattern.substr(wordStart, wordLength))); + } + return result; + } + function createTextChunk(text) { + var textLowerCase = text.toLowerCase(); + return { + text: text, + textLowerCase: textLowerCase, + isLowerCase: text === textLowerCase, + characterSpans: breakIntoCharacterSpans(text) + }; + } + function breakIntoCharacterSpans(identifier) { + return breakIntoSpans(identifier, false); + } + ts.breakIntoCharacterSpans = breakIntoCharacterSpans; + function breakIntoWordSpans(identifier) { + return breakIntoSpans(identifier, true); + } + ts.breakIntoWordSpans = breakIntoWordSpans; + function breakIntoSpans(identifier, word) { + var result = []; + var wordStart = 0; + for (var i = 1, n = identifier.length; i < n; i++) { + var lastIsDigit = isDigit(identifier.charCodeAt(i - 1)); + var currentIsDigit = isDigit(identifier.charCodeAt(i)); + var hasTransitionFromLowerToUpper = transitionFromLowerToUpper(identifier, word, i); + var hasTransitionFromUpperToLower = transitionFromUpperToLower(identifier, word, i, wordStart); + if (charIsPunctuation(identifier.charCodeAt(i - 1)) || + charIsPunctuation(identifier.charCodeAt(i)) || + lastIsDigit != currentIsDigit || + hasTransitionFromLowerToUpper || + hasTransitionFromUpperToLower) { + if (!isAllPunctuation(identifier, wordStart, i)) { + result.push(ts.createTextSpan(wordStart, i - wordStart)); + } + wordStart = i; + } + } + if (!isAllPunctuation(identifier, wordStart, identifier.length)) { + result.push(ts.createTextSpan(wordStart, identifier.length - wordStart)); + } + return result; + } + function charIsPunctuation(ch) { + switch (ch) { + case 33: + case 34: + case 35: + case 37: + case 38: + case 39: + case 40: + case 41: + case 42: + case 44: + case 45: + case 46: + case 47: + case 58: + case 59: + case 63: + case 64: + case 91: + case 92: + case 93: + case 95: + case 123: + case 125: + return true; + } + return false; + } + function isAllPunctuation(identifier, start, end) { + for (var i = start; i < end; i++) { + var ch = identifier.charCodeAt(i); + if (!charIsPunctuation(ch) || ch === 95 || ch === 36) { + return false; + } + } + return true; + } + function transitionFromUpperToLower(identifier, word, index, wordStart) { + if (word) { + if (index != wordStart && + index + 1 < identifier.length) { + var currentIsUpper = isUpperCaseLetter(identifier.charCodeAt(index)); + var nextIsLower = isLowerCaseLetter(identifier.charCodeAt(index + 1)); + if (currentIsUpper && nextIsLower) { + for (var i = wordStart; i < index; i++) { + if (!isUpperCaseLetter(identifier.charCodeAt(i))) { + return false; + } + } + return true; + } + } + } + return false; + } + function transitionFromLowerToUpper(identifier, word, index) { + var lastIsUpper = isUpperCaseLetter(identifier.charCodeAt(index - 1)); + var currentIsUpper = isUpperCaseLetter(identifier.charCodeAt(index)); + var transition = word + ? (currentIsUpper && !lastIsUpper) + : currentIsUpper; + return transition; + } +})(ts || (ts = {})); +/// +var ts; +(function (ts) { + var SignatureHelp; + (function (SignatureHelp) { + var emptyArray = []; + function getSignatureHelpItems(sourceFile, position, typeInfoResolver, cancellationToken) { + var startingToken = ts.findTokenOnLeftOfPosition(sourceFile, position); + if (!startingToken) { + return undefined; + } + var argumentInfo = getContainingArgumentInfo(startingToken); + cancellationToken.throwIfCancellationRequested(); + if (!argumentInfo) { + return undefined; + } + var call = argumentInfo.invocation; + var candidates = []; + var resolvedSignature = typeInfoResolver.getResolvedSignature(call, candidates); + cancellationToken.throwIfCancellationRequested(); + if (!candidates.length) { + return undefined; + } + return createSignatureHelpItems(candidates, resolvedSignature, argumentInfo); + function getImmediatelyContainingArgumentInfo(node) { + if (node.parent.kind === 157 || node.parent.kind === 158) { + var callExpression = node.parent; + if (node.kind === 24 || + node.kind === 16) { + var list = getChildListThatStartsWithOpenerToken(callExpression, node, sourceFile); + var isTypeArgList = callExpression.typeArguments && callExpression.typeArguments.pos === list.pos; + ts.Debug.assert(list !== undefined); + return { + kind: isTypeArgList ? 0 : 1, + invocation: callExpression, + argumentsSpan: getApplicableSpanForArguments(list), + argumentIndex: 0, + argumentCount: getArgumentCount(list) + }; + } + var listItemInfo = ts.findListItemInfo(node); + if (listItemInfo) { + var list = listItemInfo.list; + var isTypeArgList = callExpression.typeArguments && callExpression.typeArguments.pos === list.pos; + var argumentIndex = getArgumentIndex(list, node); + var argumentCount = getArgumentCount(list); + ts.Debug.assert(argumentIndex === 0 || argumentIndex < argumentCount, "argumentCount < argumentIndex, " + argumentCount + " < " + argumentIndex); + return { + kind: isTypeArgList ? 0 : 1, + invocation: callExpression, + argumentsSpan: getApplicableSpanForArguments(list), + argumentIndex: argumentIndex, + argumentCount: argumentCount + }; + } + } + else if (node.kind === 10 && node.parent.kind === 159) { + if (ts.isInsideTemplateLiteral(node, position)) { + return getArgumentListInfoForTemplate(node.parent, 0); + } + } + else if (node.kind === 11 && node.parent.parent.kind === 159) { + var templateExpression = node.parent; + var tagExpression = templateExpression.parent; + ts.Debug.assert(templateExpression.kind === 171); + var argumentIndex = ts.isInsideTemplateLiteral(node, position) ? 0 : 1; + return getArgumentListInfoForTemplate(tagExpression, argumentIndex); + } + else if (node.parent.kind === 176 && node.parent.parent.parent.kind === 159) { + var templateSpan = node.parent; + var templateExpression = templateSpan.parent; + var tagExpression = templateExpression.parent; + ts.Debug.assert(templateExpression.kind === 171); + if (node.kind === 13 && !ts.isInsideTemplateLiteral(node, position)) { + return undefined; + } + var spanIndex = templateExpression.templateSpans.indexOf(templateSpan); + var argumentIndex = getArgumentIndexForTemplatePiece(spanIndex, node); + return getArgumentListInfoForTemplate(tagExpression, argumentIndex); + } + return undefined; + } + function getArgumentIndex(argumentsList, node) { + var argumentIndex = 0; + var listChildren = argumentsList.getChildren(); + for (var _i = 0; _i < listChildren.length; _i++) { + var child = listChildren[_i]; + if (child === node) { + break; + } + if (child.kind !== 23) { + argumentIndex++; + } + } + return argumentIndex; + } + function getArgumentCount(argumentsList) { + var listChildren = argumentsList.getChildren(); + var argumentCount = ts.countWhere(listChildren, function (arg) { return arg.kind !== 23; }); + if (listChildren.length > 0 && ts.lastOrUndefined(listChildren).kind === 23) { + argumentCount++; + } + return argumentCount; + } + function getArgumentIndexForTemplatePiece(spanIndex, node) { + ts.Debug.assert(position >= node.getStart(), "Assumed 'position' could not occur before node."); + if (ts.isTemplateLiteralKind(node.kind)) { + if (ts.isInsideTemplateLiteral(node, position)) { + return 0; + } + return spanIndex + 2; + } + return spanIndex + 1; + } + function getArgumentListInfoForTemplate(tagExpression, argumentIndex) { + var argumentCount = tagExpression.template.kind === 10 + ? 1 + : tagExpression.template.templateSpans.length + 1; + ts.Debug.assert(argumentIndex === 0 || argumentIndex < argumentCount, "argumentCount < argumentIndex, " + argumentCount + " < " + argumentIndex); + return { + kind: 2, + invocation: tagExpression, + argumentsSpan: getApplicableSpanForTaggedTemplate(tagExpression), + argumentIndex: argumentIndex, + argumentCount: argumentCount + }; + } + function getApplicableSpanForArguments(argumentsList) { + var applicableSpanStart = argumentsList.getFullStart(); + var applicableSpanEnd = ts.skipTrivia(sourceFile.text, argumentsList.getEnd(), false); + return ts.createTextSpan(applicableSpanStart, applicableSpanEnd - applicableSpanStart); + } + function getApplicableSpanForTaggedTemplate(taggedTemplate) { + var template = taggedTemplate.template; + var applicableSpanStart = template.getStart(); + var applicableSpanEnd = template.getEnd(); + if (template.kind === 171) { + var lastSpan = ts.lastOrUndefined(template.templateSpans); + if (lastSpan.literal.getFullWidth() === 0) { + applicableSpanEnd = ts.skipTrivia(sourceFile.text, applicableSpanEnd, false); + } + } + return ts.createTextSpan(applicableSpanStart, applicableSpanEnd - applicableSpanStart); + } + function getContainingArgumentInfo(node) { + for (var n = node; n.kind !== 227; n = n.parent) { + if (ts.isFunctionBlock(n)) { + return undefined; + } + if (n.pos < n.parent.pos || n.end > n.parent.end) { + ts.Debug.fail("Node of kind " + n.kind + " is not a subspan of its parent of kind " + n.parent.kind); + } + var argumentInfo_1 = getImmediatelyContainingArgumentInfo(n); + if (argumentInfo_1) { + return argumentInfo_1; + } + } + return undefined; + } + function getChildListThatStartsWithOpenerToken(parent, openerToken, sourceFile) { + var children = parent.getChildren(sourceFile); + var indexOfOpenerToken = children.indexOf(openerToken); + ts.Debug.assert(indexOfOpenerToken >= 0 && children.length > indexOfOpenerToken + 1); + return children[indexOfOpenerToken + 1]; + } + function selectBestInvalidOverloadIndex(candidates, argumentCount) { + var maxParamsSignatureIndex = -1; + var maxParams = -1; + for (var i = 0; i < candidates.length; i++) { + var candidate = candidates[i]; + if (candidate.hasRestParameter || candidate.parameters.length >= argumentCount) { + return i; + } + if (candidate.parameters.length > maxParams) { + maxParams = candidate.parameters.length; + maxParamsSignatureIndex = i; + } + } + return maxParamsSignatureIndex; + } + function createSignatureHelpItems(candidates, bestSignature, argumentListInfo) { + var applicableSpan = argumentListInfo.argumentsSpan; + var isTypeParameterList = argumentListInfo.kind === 0; + var invocation = argumentListInfo.invocation; + var callTarget = ts.getInvokedExpression(invocation); + var callTargetSymbol = typeInfoResolver.getSymbolAtLocation(callTarget); + var callTargetDisplayParts = callTargetSymbol && ts.symbolToDisplayParts(typeInfoResolver, callTargetSymbol, undefined, undefined); + var items = ts.map(candidates, function (candidateSignature) { + var signatureHelpParameters; + var prefixDisplayParts = []; + var suffixDisplayParts = []; + if (callTargetDisplayParts) { + prefixDisplayParts.push.apply(prefixDisplayParts, callTargetDisplayParts); + } + if (isTypeParameterList) { + prefixDisplayParts.push(ts.punctuationPart(24)); + var typeParameters = candidateSignature.typeParameters; + signatureHelpParameters = typeParameters && typeParameters.length > 0 ? ts.map(typeParameters, createSignatureHelpParameterForTypeParameter) : emptyArray; + suffixDisplayParts.push(ts.punctuationPart(25)); + var parameterParts = ts.mapToDisplayParts(function (writer) { + return typeInfoResolver.getSymbolDisplayBuilder().buildDisplayForParametersAndDelimiters(candidateSignature.parameters, writer, invocation); + }); + suffixDisplayParts.push.apply(suffixDisplayParts, parameterParts); + } + else { + var typeParameterParts = ts.mapToDisplayParts(function (writer) { + return typeInfoResolver.getSymbolDisplayBuilder().buildDisplayForTypeParametersAndDelimiters(candidateSignature.typeParameters, writer, invocation); + }); + prefixDisplayParts.push.apply(prefixDisplayParts, typeParameterParts); + prefixDisplayParts.push(ts.punctuationPart(16)); + var parameters = candidateSignature.parameters; + signatureHelpParameters = parameters.length > 0 ? ts.map(parameters, createSignatureHelpParameterForParameter) : emptyArray; + suffixDisplayParts.push(ts.punctuationPart(17)); + } + var returnTypeParts = ts.mapToDisplayParts(function (writer) { + return typeInfoResolver.getSymbolDisplayBuilder().buildReturnTypeDisplay(candidateSignature, writer, invocation); + }); + suffixDisplayParts.push.apply(suffixDisplayParts, returnTypeParts); + return { + isVariadic: candidateSignature.hasRestParameter, + prefixDisplayParts: prefixDisplayParts, + suffixDisplayParts: suffixDisplayParts, + separatorDisplayParts: [ts.punctuationPart(23), ts.spacePart()], + parameters: signatureHelpParameters, + documentation: candidateSignature.getDocumentationComment() + }; + }); + var argumentIndex = argumentListInfo.argumentIndex; + var argumentCount = argumentListInfo.argumentCount; + var selectedItemIndex = candidates.indexOf(bestSignature); + if (selectedItemIndex < 0) { + selectedItemIndex = selectBestInvalidOverloadIndex(candidates, argumentCount); + } + ts.Debug.assert(argumentIndex === 0 || argumentIndex < argumentCount, "argumentCount < argumentIndex, " + argumentCount + " < " + argumentIndex); + return { + items: items, + applicableSpan: applicableSpan, + selectedItemIndex: selectedItemIndex, + argumentIndex: argumentIndex, + argumentCount: argumentCount + }; + function createSignatureHelpParameterForParameter(parameter) { + var displayParts = ts.mapToDisplayParts(function (writer) { + return typeInfoResolver.getSymbolDisplayBuilder().buildParameterDisplay(parameter, writer, invocation); + }); + var isOptional = ts.hasQuestionToken(parameter.valueDeclaration); + return { + name: parameter.name, + documentation: parameter.getDocumentationComment(), + displayParts: displayParts, + isOptional: isOptional + }; + } + function createSignatureHelpParameterForTypeParameter(typeParameter) { + var displayParts = ts.mapToDisplayParts(function (writer) { + return typeInfoResolver.getSymbolDisplayBuilder().buildTypeParameterDisplay(typeParameter, writer, invocation); + }); + return { + name: typeParameter.symbol.name, + documentation: emptyArray, + displayParts: displayParts, + isOptional: false + }; + } + } + } + SignatureHelp.getSignatureHelpItems = getSignatureHelpItems; + })(SignatureHelp = ts.SignatureHelp || (ts.SignatureHelp = {})); +})(ts || (ts = {})); +var ts; +(function (ts) { + function getEndLinePosition(line, sourceFile) { + ts.Debug.assert(line >= 0); + var lineStarts = sourceFile.getLineStarts(); + var lineIndex = line; + if (lineIndex + 1 === lineStarts.length) { + return sourceFile.text.length - 1; + } + else { + var start = lineStarts[lineIndex]; + var pos = lineStarts[lineIndex + 1] - 1; + ts.Debug.assert(ts.isLineBreak(sourceFile.text.charCodeAt(pos))); + while (start <= pos && ts.isLineBreak(sourceFile.text.charCodeAt(pos))) { + pos--; + } + return pos; + } + } + ts.getEndLinePosition = getEndLinePosition; + function getLineStartPositionForPosition(position, sourceFile) { + var lineStarts = sourceFile.getLineStarts(); + var line = sourceFile.getLineAndCharacterOfPosition(position).line; + return lineStarts[line]; + } + ts.getLineStartPositionForPosition = getLineStartPositionForPosition; + function rangeContainsRange(r1, r2) { + return startEndContainsRange(r1.pos, r1.end, r2); + } + ts.rangeContainsRange = rangeContainsRange; + function startEndContainsRange(start, end, range) { + return start <= range.pos && end >= range.end; + } + ts.startEndContainsRange = startEndContainsRange; + function rangeContainsStartEnd(range, start, end) { + return range.pos <= start && range.end >= end; + } + ts.rangeContainsStartEnd = rangeContainsStartEnd; + function rangeOverlapsWithStartEnd(r1, start, end) { + return startEndOverlapsWithStartEnd(r1.pos, r1.end, start, end); + } + ts.rangeOverlapsWithStartEnd = rangeOverlapsWithStartEnd; + function startEndOverlapsWithStartEnd(start1, end1, start2, end2) { + var start = Math.max(start1, start2); + var end = Math.min(end1, end2); + return start < end; + } + ts.startEndOverlapsWithStartEnd = startEndOverlapsWithStartEnd; + function positionBelongsToNode(candidate, position, sourceFile) { + return candidate.end > position || !isCompletedNode(candidate, sourceFile); + } + ts.positionBelongsToNode = positionBelongsToNode; + function isCompletedNode(n, sourceFile) { + if (ts.nodeIsMissing(n)) { + return false; + } + switch (n.kind) { + case 201: + case 202: + case 204: + case 154: + case 150: + case 145: + case 179: + case 206: + case 207: + return nodeEndsWith(n, 15, sourceFile); + case 223: + return isCompletedNode(n.block, sourceFile); + case 158: + if (!n.arguments) { + return true; + } + case 157: + case 161: + case 149: + return nodeEndsWith(n, 17, sourceFile); + case 142: + case 143: + return isCompletedNode(n.type, sourceFile); + case 135: + case 136: + case 137: + case 200: + case 162: + case 134: + case 133: + case 139: + case 138: + case 163: + if (n.body) { + return isCompletedNode(n.body, sourceFile); + } + if (n.type) { + return isCompletedNode(n.type, sourceFile); + } + return hasChildOfKind(n, 17, sourceFile); + case 205: + return n.body && isCompletedNode(n.body, sourceFile); + case 183: + if (n.elseStatement) { + return isCompletedNode(n.elseStatement, sourceFile); + } + return isCompletedNode(n.thenStatement, sourceFile); + case 182: + return isCompletedNode(n.expression, sourceFile); + case 153: + case 151: + case 156: + case 127: + case 147: + return nodeEndsWith(n, 19, sourceFile); + case 140: + if (n.type) { + return isCompletedNode(n.type, sourceFile); + } + return hasChildOfKind(n, 19, sourceFile); + case 220: + case 221: + return false; + case 186: + case 187: + case 188: + case 185: + return isCompletedNode(n.statement, sourceFile); + case 184: + var hasWhileKeyword = findChildOfKind(n, 100, sourceFile); + if (hasWhileKeyword) { + return nodeEndsWith(n, 17, sourceFile); + } + return isCompletedNode(n.statement, sourceFile); + case 144: + return isCompletedNode(n.exprName, sourceFile); + case 165: + case 164: + case 166: + case 172: + case 173: + var unaryWordExpression = n; + return isCompletedNode(unaryWordExpression.expression, sourceFile); + case 159: + return isCompletedNode(n.template, sourceFile); + case 171: + var lastSpan = ts.lastOrUndefined(n.templateSpans); + return isCompletedNode(lastSpan, sourceFile); + case 176: + return ts.nodeIsPresent(n.literal); + case 167: + return isCompletedNode(n.operand, sourceFile); + case 169: + return isCompletedNode(n.right, sourceFile); + case 170: + return isCompletedNode(n.whenFalse, sourceFile); + default: + return true; + } + } + ts.isCompletedNode = isCompletedNode; + function nodeEndsWith(n, expectedLastToken, sourceFile) { + var children = n.getChildren(sourceFile); + if (children.length) { + var last = children[children.length - 1]; + if (last.kind === expectedLastToken) { + return true; + } + else if (last.kind === 22 && children.length !== 1) { + return children[children.length - 2].kind === expectedLastToken; + } + } + return false; + } + function findListItemInfo(node) { + var list = findContainingList(node); + if (!list) { + return undefined; + } + var children = list.getChildren(); + var listItemIndex = ts.indexOf(children, node); + return { + listItemIndex: listItemIndex, + list: list + }; + } + ts.findListItemInfo = findListItemInfo; + function hasChildOfKind(n, kind, sourceFile) { + return !!findChildOfKind(n, kind, sourceFile); + } + ts.hasChildOfKind = hasChildOfKind; + function findChildOfKind(n, kind, sourceFile) { + return ts.forEach(n.getChildren(sourceFile), function (c) { return c.kind === kind && c; }); + } + ts.findChildOfKind = findChildOfKind; + function findContainingList(node) { + var syntaxList = ts.forEach(node.parent.getChildren(), function (c) { + if (c.kind === 228 && c.pos <= node.pos && c.end >= node.end) { + return c; + } + }); + ts.Debug.assert(!syntaxList || ts.contains(syntaxList.getChildren(), node)); + return syntaxList; + } + ts.findContainingList = findContainingList; + function getTouchingWord(sourceFile, position) { + return getTouchingToken(sourceFile, position, function (n) { return isWord(n.kind); }); + } + ts.getTouchingWord = getTouchingWord; + function getTouchingPropertyName(sourceFile, position) { + return getTouchingToken(sourceFile, position, function (n) { return isPropertyName(n.kind); }); + } + ts.getTouchingPropertyName = getTouchingPropertyName; + function getTouchingToken(sourceFile, position, includeItemAtEndPosition) { + return getTokenAtPositionWorker(sourceFile, position, false, includeItemAtEndPosition); + } + ts.getTouchingToken = getTouchingToken; + function getTokenAtPosition(sourceFile, position) { + return getTokenAtPositionWorker(sourceFile, position, true, undefined); + } + ts.getTokenAtPosition = getTokenAtPosition; + function getTokenAtPositionWorker(sourceFile, position, allowPositionInLeadingTrivia, includeItemAtEndPosition) { + var current = sourceFile; + outer: while (true) { + if (isToken(current)) { + return current; + } + for (var i = 0, n = current.getChildCount(sourceFile); i < n; i++) { + var child = current.getChildAt(i); + var start = allowPositionInLeadingTrivia ? child.getFullStart() : child.getStart(sourceFile); + if (start <= position) { + var end = child.getEnd(); + if (position < end || (position === end && child.kind === 1)) { + current = child; + continue outer; + } + else if (includeItemAtEndPosition && end === position) { + var previousToken = findPrecedingToken(position, sourceFile, child); + if (previousToken && includeItemAtEndPosition(previousToken)) { + return previousToken; + } + } + } + } + return current; + } + } + function findTokenOnLeftOfPosition(file, position) { + var tokenAtPosition = getTokenAtPosition(file, position); + if (isToken(tokenAtPosition) && position > tokenAtPosition.getStart(file) && position < tokenAtPosition.getEnd()) { + return tokenAtPosition; + } + return findPrecedingToken(position, file); + } + ts.findTokenOnLeftOfPosition = findTokenOnLeftOfPosition; + function findNextToken(previousToken, parent) { + return find(parent); + function find(n) { + if (isToken(n) && n.pos === previousToken.end) { + return n; + } + var children = n.getChildren(); + for (var _i = 0; _i < children.length; _i++) { + var child = children[_i]; + var shouldDiveInChildNode = (child.pos <= previousToken.pos && child.end > previousToken.end) || + (child.pos === previousToken.end); + if (shouldDiveInChildNode && nodeHasTokens(child)) { + return find(child); + } + } + return undefined; + } + } + ts.findNextToken = findNextToken; + function findPrecedingToken(position, sourceFile, startNode) { + return find(startNode || sourceFile); + function findRightmostToken(n) { + if (isToken(n)) { + return n; + } + var children = n.getChildren(); + var candidate = findRightmostChildNodeWithTokens(children, children.length); + return candidate && findRightmostToken(candidate); + } + function find(n) { + if (isToken(n)) { + return n; + } + var children = n.getChildren(); + for (var i = 0, len = children.length; i < len; i++) { + var child = children[i]; + if (nodeHasTokens(child)) { + if (position <= child.end) { + if (child.getStart(sourceFile) >= position) { + var candidate = findRightmostChildNodeWithTokens(children, i); + return candidate && findRightmostToken(candidate); + } + else { + return find(child); + } + } + } + } + ts.Debug.assert(startNode !== undefined || n.kind === 227); + if (children.length) { + var candidate = findRightmostChildNodeWithTokens(children, children.length); + return candidate && findRightmostToken(candidate); + } + } + function findRightmostChildNodeWithTokens(children, exclusiveStartPosition) { + for (var i = exclusiveStartPosition - 1; i >= 0; --i) { + if (nodeHasTokens(children[i])) { + return children[i]; + } + } + } + } + ts.findPrecedingToken = findPrecedingToken; + function nodeHasTokens(n) { + return n.getWidth() !== 0; + } + function getNodeModifiers(node) { + var flags = ts.getCombinedNodeFlags(node); + var result = []; + if (flags & 32) + result.push(ts.ScriptElementKindModifier.privateMemberModifier); + if (flags & 64) + result.push(ts.ScriptElementKindModifier.protectedMemberModifier); + if (flags & 16) + result.push(ts.ScriptElementKindModifier.publicMemberModifier); + if (flags & 128) + result.push(ts.ScriptElementKindModifier.staticModifier); + if (flags & 1) + result.push(ts.ScriptElementKindModifier.exportedModifier); + if (ts.isInAmbientContext(node)) + result.push(ts.ScriptElementKindModifier.ambientModifier); + return result.length > 0 ? result.join(',') : ts.ScriptElementKindModifier.none; + } + ts.getNodeModifiers = getNodeModifiers; + function getTypeArgumentOrTypeParameterList(node) { + if (node.kind === 141 || node.kind === 157) { + return node.typeArguments; + } + if (ts.isFunctionLike(node) || node.kind === 201 || node.kind === 202) { + return node.typeParameters; + } + return undefined; + } + ts.getTypeArgumentOrTypeParameterList = getTypeArgumentOrTypeParameterList; + function isToken(n) { + return n.kind >= 0 && n.kind <= 125; + } + ts.isToken = isToken; + function isWord(kind) { + return kind === 65 || ts.isKeyword(kind); + } + ts.isWord = isWord; + function isPropertyName(kind) { + return kind === 8 || kind === 7 || isWord(kind); + } + function isComment(kind) { + return kind === 2 || kind === 3; + } + ts.isComment = isComment; + function isPunctuation(kind) { + return 14 <= kind && kind <= 64; + } + ts.isPunctuation = isPunctuation; + function isInsideTemplateLiteral(node, position) { + return ts.isTemplateLiteralKind(node.kind) + && (node.getStart() < position && position < node.getEnd()) || (!!node.isUnterminated && position === node.getEnd()); + } + ts.isInsideTemplateLiteral = isInsideTemplateLiteral; + function isAccessibilityModifier(kind) { + switch (kind) { + case 109: + case 107: + case 108: + return true; + } + return false; + } + ts.isAccessibilityModifier = isAccessibilityModifier; + function compareDataObjects(dst, src) { + for (var e in dst) { + if (typeof dst[e] === "object") { + if (!compareDataObjects(dst[e], src[e])) { + return false; + } + } + else if (typeof dst[e] !== "function") { + if (dst[e] !== src[e]) { + return false; + } + } + } + return true; + } + ts.compareDataObjects = compareDataObjects; +})(ts || (ts = {})); +var ts; +(function (ts) { + function isFirstDeclarationOfSymbolParameter(symbol) { + return symbol.declarations && symbol.declarations.length > 0 && symbol.declarations[0].kind === 129; + } + ts.isFirstDeclarationOfSymbolParameter = isFirstDeclarationOfSymbolParameter; + var displayPartWriter = getDisplayPartWriter(); + function getDisplayPartWriter() { + var displayParts; + var lineStart; + var indent; + resetWriter(); + return { + displayParts: function () { return displayParts; }, + writeKeyword: function (text) { return writeKind(text, ts.SymbolDisplayPartKind.keyword); }, + writeOperator: function (text) { return writeKind(text, ts.SymbolDisplayPartKind.operator); }, + writePunctuation: function (text) { return writeKind(text, ts.SymbolDisplayPartKind.punctuation); }, + writeSpace: function (text) { return writeKind(text, ts.SymbolDisplayPartKind.space); }, + writeStringLiteral: function (text) { return writeKind(text, ts.SymbolDisplayPartKind.stringLiteral); }, + writeParameter: function (text) { return writeKind(text, ts.SymbolDisplayPartKind.parameterName); }, + writeSymbol: writeSymbol, + writeLine: writeLine, + increaseIndent: function () { indent++; }, + decreaseIndent: function () { indent--; }, + clear: resetWriter, + trackSymbol: function () { } + }; + function writeIndent() { + if (lineStart) { + var indentString = ts.getIndentString(indent); + if (indentString) { + displayParts.push(displayPart(indentString, ts.SymbolDisplayPartKind.space)); + } + lineStart = false; + } + } + function writeKind(text, kind) { + writeIndent(); + displayParts.push(displayPart(text, kind)); + } + function writeSymbol(text, symbol) { + writeIndent(); + displayParts.push(symbolPart(text, symbol)); + } + function writeLine() { + displayParts.push(lineBreakPart()); + lineStart = true; + } + function resetWriter() { + displayParts = []; + lineStart = true; + indent = 0; + } + } + function symbolPart(text, symbol) { + return displayPart(text, displayPartKind(symbol), symbol); + function displayPartKind(symbol) { + var flags = symbol.flags; + if (flags & 3) { + return isFirstDeclarationOfSymbolParameter(symbol) ? ts.SymbolDisplayPartKind.parameterName : ts.SymbolDisplayPartKind.localName; + } + else if (flags & 4) { + return ts.SymbolDisplayPartKind.propertyName; + } + else if (flags & 32768) { + return ts.SymbolDisplayPartKind.propertyName; + } + else if (flags & 65536) { + return ts.SymbolDisplayPartKind.propertyName; + } + else if (flags & 8) { + return ts.SymbolDisplayPartKind.enumMemberName; + } + else if (flags & 16) { + return ts.SymbolDisplayPartKind.functionName; + } + else if (flags & 32) { + return ts.SymbolDisplayPartKind.className; + } + else if (flags & 64) { + return ts.SymbolDisplayPartKind.interfaceName; + } + else if (flags & 384) { + return ts.SymbolDisplayPartKind.enumName; + } + else if (flags & 1536) { + return ts.SymbolDisplayPartKind.moduleName; + } + else if (flags & 8192) { + return ts.SymbolDisplayPartKind.methodName; + } + else if (flags & 262144) { + return ts.SymbolDisplayPartKind.typeParameterName; + } + else if (flags & 524288) { + return ts.SymbolDisplayPartKind.aliasName; + } + else if (flags & 8388608) { + return ts.SymbolDisplayPartKind.aliasName; + } + return ts.SymbolDisplayPartKind.text; + } + } + ts.symbolPart = symbolPart; + function displayPart(text, kind, symbol) { + return { + text: text, + kind: ts.SymbolDisplayPartKind[kind] + }; + } + ts.displayPart = displayPart; + function spacePart() { + return displayPart(" ", ts.SymbolDisplayPartKind.space); + } + ts.spacePart = spacePart; + function keywordPart(kind) { + return displayPart(ts.tokenToString(kind), ts.SymbolDisplayPartKind.keyword); + } + ts.keywordPart = keywordPart; + function punctuationPart(kind) { + return displayPart(ts.tokenToString(kind), ts.SymbolDisplayPartKind.punctuation); + } + ts.punctuationPart = punctuationPart; + function operatorPart(kind) { + return displayPart(ts.tokenToString(kind), ts.SymbolDisplayPartKind.operator); + } + ts.operatorPart = operatorPart; + function textOrKeywordPart(text) { + var kind = ts.stringToToken(text); + return kind === undefined + ? textPart(text) + : keywordPart(kind); + } + ts.textOrKeywordPart = textOrKeywordPart; + function textPart(text) { + return displayPart(text, ts.SymbolDisplayPartKind.text); + } + ts.textPart = textPart; + function lineBreakPart() { + return displayPart("\n", ts.SymbolDisplayPartKind.lineBreak); + } + ts.lineBreakPart = lineBreakPart; + function mapToDisplayParts(writeDisplayParts) { + writeDisplayParts(displayPartWriter); + var result = displayPartWriter.displayParts(); + displayPartWriter.clear(); + return result; + } + ts.mapToDisplayParts = mapToDisplayParts; + function typeToDisplayParts(typechecker, type, enclosingDeclaration, flags) { + return mapToDisplayParts(function (writer) { + typechecker.getSymbolDisplayBuilder().buildTypeDisplay(type, writer, enclosingDeclaration, flags); + }); + } + ts.typeToDisplayParts = typeToDisplayParts; + function symbolToDisplayParts(typeChecker, symbol, enclosingDeclaration, meaning, flags) { + return mapToDisplayParts(function (writer) { + typeChecker.getSymbolDisplayBuilder().buildSymbolDisplay(symbol, writer, enclosingDeclaration, meaning, flags); + }); + } + ts.symbolToDisplayParts = symbolToDisplayParts; + function signatureToDisplayParts(typechecker, signature, enclosingDeclaration, flags) { + return mapToDisplayParts(function (writer) { + typechecker.getSymbolDisplayBuilder().buildSignatureDisplay(signature, writer, enclosingDeclaration, flags); + }); + } + ts.signatureToDisplayParts = signatureToDisplayParts; +})(ts || (ts = {})); +/// +/// +var ts; +(function (ts) { + var formatting; + (function (formatting) { + var scanner = ts.createScanner(2, false); + function getFormattingScanner(sourceFile, startPos, endPos) { + scanner.setText(sourceFile.text); + scanner.setTextPos(startPos); + var wasNewLine = true; + var leadingTrivia; + var trailingTrivia; + var savedPos; + var lastScanAction; + var lastTokenInfo; + return { + advance: advance, + readTokenInfo: readTokenInfo, + isOnToken: isOnToken, + lastTrailingTriviaWasNewLine: function () { return wasNewLine; }, + close: function () { + lastTokenInfo = undefined; + scanner.setText(undefined); + } + }; + function advance() { + lastTokenInfo = undefined; + var isStarted = scanner.getStartPos() !== startPos; + if (isStarted) { + if (trailingTrivia) { + ts.Debug.assert(trailingTrivia.length !== 0); + wasNewLine = trailingTrivia[trailingTrivia.length - 1].kind === 4; + } + else { + wasNewLine = false; + } + } + leadingTrivia = undefined; + trailingTrivia = undefined; + if (!isStarted) { + scanner.scan(); + } + var t; + var pos = scanner.getStartPos(); + while (pos < endPos) { + var t_2 = scanner.getToken(); + if (!ts.isTrivia(t_2)) { + break; + } + scanner.scan(); + var item_4 = { + pos: pos, + end: scanner.getStartPos(), + kind: t_2 + }; + pos = scanner.getStartPos(); + if (!leadingTrivia) { + leadingTrivia = []; + } + leadingTrivia.push(item_4); + } + savedPos = scanner.getStartPos(); + } + function shouldRescanGreaterThanToken(node) { + if (node) { + switch (node.kind) { + case 27: + case 60: + case 61: + case 42: + case 41: + return true; + } + } + return false; + } + function shouldRescanSlashToken(container) { + return container.kind === 9; + } + function shouldRescanTemplateToken(container) { + return container.kind === 12 || + container.kind === 13; + } + function startsWithSlashToken(t) { + return t === 36 || t === 57; + } + function readTokenInfo(n) { + if (!isOnToken()) { + return { + leadingTrivia: leadingTrivia, + trailingTrivia: undefined, + token: undefined + }; + } + var expectedScanAction = shouldRescanGreaterThanToken(n) + ? 1 + : shouldRescanSlashToken(n) + ? 2 + : shouldRescanTemplateToken(n) + ? 3 + : 0; + if (lastTokenInfo && expectedScanAction === lastScanAction) { + return fixTokenKind(lastTokenInfo, n); + } + if (scanner.getStartPos() !== savedPos) { + ts.Debug.assert(lastTokenInfo !== undefined); + scanner.setTextPos(savedPos); + scanner.scan(); + } + var currentToken = scanner.getToken(); + if (expectedScanAction === 1 && currentToken === 25) { + currentToken = scanner.reScanGreaterToken(); + ts.Debug.assert(n.kind === currentToken); + lastScanAction = 1; + } + else if (expectedScanAction === 2 && startsWithSlashToken(currentToken)) { + currentToken = scanner.reScanSlashToken(); + ts.Debug.assert(n.kind === currentToken); + lastScanAction = 2; + } + else if (expectedScanAction === 3 && currentToken === 15) { + currentToken = scanner.reScanTemplateToken(); + lastScanAction = 3; + } + else { + lastScanAction = 0; + } + var token = { + pos: scanner.getStartPos(), + end: scanner.getTextPos(), + kind: currentToken + }; + if (trailingTrivia) { + trailingTrivia = undefined; + } + while (scanner.getStartPos() < endPos) { + currentToken = scanner.scan(); + if (!ts.isTrivia(currentToken)) { + break; + } + var trivia = { + pos: scanner.getStartPos(), + end: scanner.getTextPos(), + kind: currentToken + }; + if (!trailingTrivia) { + trailingTrivia = []; + } + trailingTrivia.push(trivia); + if (currentToken === 4) { + scanner.scan(); + break; + } + } + lastTokenInfo = { + leadingTrivia: leadingTrivia, + trailingTrivia: trailingTrivia, + token: token + }; + return fixTokenKind(lastTokenInfo, n); + } + function isOnToken() { + var current = (lastTokenInfo && lastTokenInfo.token.kind) || scanner.getToken(); + var startPos = (lastTokenInfo && lastTokenInfo.token.pos) || scanner.getStartPos(); + return startPos < endPos && current !== 1 && !ts.isTrivia(current); + } + function fixTokenKind(tokenInfo, container) { + if (ts.isToken(container) && tokenInfo.token.kind !== container.kind) { + tokenInfo.token.kind = container.kind; + } + return tokenInfo; + } + } + formatting.getFormattingScanner = getFormattingScanner; + })(formatting = ts.formatting || (ts.formatting = {})); +})(ts || (ts = {})); +// +// Copyright (c) Microsoft Corporation. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +/// +var ts; +(function (ts) { + var formatting; + (function (formatting) { + var FormattingContext = (function () { + function FormattingContext(sourceFile, formattingRequestKind) { + this.sourceFile = sourceFile; + this.formattingRequestKind = formattingRequestKind; + } + FormattingContext.prototype.updateContext = function (currentRange, currentTokenParent, nextRange, nextTokenParent, commonParent) { + ts.Debug.assert(currentRange !== undefined, "currentTokenSpan is null"); + ts.Debug.assert(currentTokenParent !== undefined, "currentTokenParent is null"); + ts.Debug.assert(nextRange !== undefined, "nextTokenSpan is null"); + ts.Debug.assert(nextTokenParent !== undefined, "nextTokenParent is null"); + ts.Debug.assert(commonParent !== undefined, "commonParent is null"); + this.currentTokenSpan = currentRange; + this.currentTokenParent = currentTokenParent; + this.nextTokenSpan = nextRange; + this.nextTokenParent = nextTokenParent; + this.contextNode = commonParent; + this.contextNodeAllOnSameLine = undefined; + this.nextNodeAllOnSameLine = undefined; + this.tokensAreOnSameLine = undefined; + this.contextNodeBlockIsOnOneLine = undefined; + this.nextNodeBlockIsOnOneLine = undefined; + }; + FormattingContext.prototype.ContextNodeAllOnSameLine = function () { + if (this.contextNodeAllOnSameLine === undefined) { + this.contextNodeAllOnSameLine = this.NodeIsOnOneLine(this.contextNode); + } + return this.contextNodeAllOnSameLine; + }; + FormattingContext.prototype.NextNodeAllOnSameLine = function () { + if (this.nextNodeAllOnSameLine === undefined) { + this.nextNodeAllOnSameLine = this.NodeIsOnOneLine(this.nextTokenParent); + } + return this.nextNodeAllOnSameLine; + }; + FormattingContext.prototype.TokensAreOnSameLine = function () { + if (this.tokensAreOnSameLine === undefined) { + var startLine = this.sourceFile.getLineAndCharacterOfPosition(this.currentTokenSpan.pos).line; + var endLine = this.sourceFile.getLineAndCharacterOfPosition(this.nextTokenSpan.pos).line; + this.tokensAreOnSameLine = (startLine == endLine); + } + return this.tokensAreOnSameLine; + }; + FormattingContext.prototype.ContextNodeBlockIsOnOneLine = function () { + if (this.contextNodeBlockIsOnOneLine === undefined) { + this.contextNodeBlockIsOnOneLine = this.BlockIsOnOneLine(this.contextNode); + } + return this.contextNodeBlockIsOnOneLine; + }; + FormattingContext.prototype.NextNodeBlockIsOnOneLine = function () { + if (this.nextNodeBlockIsOnOneLine === undefined) { + this.nextNodeBlockIsOnOneLine = this.BlockIsOnOneLine(this.nextTokenParent); + } + return this.nextNodeBlockIsOnOneLine; + }; + FormattingContext.prototype.NodeIsOnOneLine = function (node) { + var startLine = this.sourceFile.getLineAndCharacterOfPosition(node.getStart(this.sourceFile)).line; + var endLine = this.sourceFile.getLineAndCharacterOfPosition(node.getEnd()).line; + return startLine == endLine; + }; + FormattingContext.prototype.BlockIsOnOneLine = function (node) { + var openBrace = ts.findChildOfKind(node, 14, this.sourceFile); + var closeBrace = ts.findChildOfKind(node, 15, this.sourceFile); + if (openBrace && closeBrace) { + var startLine = this.sourceFile.getLineAndCharacterOfPosition(openBrace.getEnd()).line; + var endLine = this.sourceFile.getLineAndCharacterOfPosition(closeBrace.getStart(this.sourceFile)).line; + return startLine === endLine; + } + return false; + }; + return FormattingContext; + })(); + formatting.FormattingContext = FormattingContext; + })(formatting = ts.formatting || (ts.formatting = {})); +})(ts || (ts = {})); +// +// Copyright (c) Microsoft Corporation. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +/// +// +// Copyright (c) Microsoft Corporation. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +/// +var ts; +(function (ts) { + var formatting; + (function (formatting) { + var Rule = (function () { + function Rule(Descriptor, Operation, Flag) { + if (Flag === void 0) { Flag = 0; } + this.Descriptor = Descriptor; + this.Operation = Operation; + this.Flag = Flag; + } + Rule.prototype.toString = function () { + return "[desc=" + this.Descriptor + "," + + "operation=" + this.Operation + "," + + "flag=" + this.Flag + "]"; + }; + return Rule; + })(); + formatting.Rule = Rule; + })(formatting = ts.formatting || (ts.formatting = {})); +})(ts || (ts = {})); +// +// Copyright (c) Microsoft Corporation. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +/// +// +// Copyright (c) Microsoft Corporation. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +/// +var ts; +(function (ts) { + var formatting; + (function (formatting) { + var RuleDescriptor = (function () { + function RuleDescriptor(LeftTokenRange, RightTokenRange) { + this.LeftTokenRange = LeftTokenRange; + this.RightTokenRange = RightTokenRange; + } + RuleDescriptor.prototype.toString = function () { + return "[leftRange=" + this.LeftTokenRange + "," + + "rightRange=" + this.RightTokenRange + "]"; + }; + RuleDescriptor.create1 = function (left, right) { + return RuleDescriptor.create4(formatting.Shared.TokenRange.FromToken(left), formatting.Shared.TokenRange.FromToken(right)); + }; + RuleDescriptor.create2 = function (left, right) { + return RuleDescriptor.create4(left, formatting.Shared.TokenRange.FromToken(right)); + }; + RuleDescriptor.create3 = function (left, right) { + return RuleDescriptor.create4(formatting.Shared.TokenRange.FromToken(left), right); + }; + RuleDescriptor.create4 = function (left, right) { + return new RuleDescriptor(left, right); + }; + return RuleDescriptor; + })(); + formatting.RuleDescriptor = RuleDescriptor; + })(formatting = ts.formatting || (ts.formatting = {})); +})(ts || (ts = {})); +// +// Copyright (c) Microsoft Corporation. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +/// +// +// Copyright (c) Microsoft Corporation. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +/// +var ts; +(function (ts) { + var formatting; + (function (formatting) { + var RuleOperation = (function () { + function RuleOperation() { + this.Context = null; + this.Action = null; + } + RuleOperation.prototype.toString = function () { + return "[context=" + this.Context + "," + + "action=" + this.Action + "]"; + }; + RuleOperation.create1 = function (action) { + return RuleOperation.create2(formatting.RuleOperationContext.Any, action); + }; + RuleOperation.create2 = function (context, action) { + var result = new RuleOperation(); + result.Context = context; + result.Action = action; + return result; + }; + return RuleOperation; + })(); + formatting.RuleOperation = RuleOperation; + })(formatting = ts.formatting || (ts.formatting = {})); +})(ts || (ts = {})); +// +// Copyright (c) Microsoft Corporation. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +/// +var ts; +(function (ts) { + var formatting; + (function (formatting) { + var RuleOperationContext = (function () { + function RuleOperationContext() { + var funcs = []; + for (var _i = 0; _i < arguments.length; _i++) { + funcs[_i - 0] = arguments[_i]; + } + this.customContextChecks = funcs; + } + RuleOperationContext.prototype.IsAny = function () { + return this == RuleOperationContext.Any; + }; + RuleOperationContext.prototype.InContext = function (context) { + if (this.IsAny()) { + return true; + } + for (var _i = 0, _a = this.customContextChecks; _i < _a.length; _i++) { + var check = _a[_i]; + if (!check(context)) { + return false; + } + } + return true; + }; + RuleOperationContext.Any = new RuleOperationContext(); + return RuleOperationContext; + })(); + formatting.RuleOperationContext = RuleOperationContext; + })(formatting = ts.formatting || (ts.formatting = {})); +})(ts || (ts = {})); +// +// Copyright (c) Microsoft Corporation. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +/// +var ts; +(function (ts) { + var formatting; + (function (formatting) { + var Rules = (function () { + function Rules() { + /// + /// Common Rules + /// + this.IgnoreBeforeComment = new formatting.Rule(formatting.RuleDescriptor.create4(formatting.Shared.TokenRange.Any, formatting.Shared.TokenRange.Comments), formatting.RuleOperation.create1(1)); + this.IgnoreAfterLineComment = new formatting.Rule(formatting.RuleDescriptor.create3(2, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create1(1)); + this.NoSpaceBeforeSemicolon = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.Any, 22), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8)); + this.NoSpaceBeforeColon = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.Any, 51), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsNotBinaryOpContext), 8)); + this.NoSpaceBeforeQuestionMark = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.Any, 50), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsNotBinaryOpContext), 8)); + this.SpaceAfterColon = new formatting.Rule(formatting.RuleDescriptor.create3(51, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsNotBinaryOpContext), 2)); + this.SpaceAfterQuestionMarkInConditionalOperator = new formatting.Rule(formatting.RuleDescriptor.create3(50, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsConditionalOperatorContext), 2)); + this.NoSpaceAfterQuestionMark = new formatting.Rule(formatting.RuleDescriptor.create3(50, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8)); + this.SpaceAfterSemicolon = new formatting.Rule(formatting.RuleDescriptor.create3(22, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 2)); + this.SpaceAfterCloseBrace = new formatting.Rule(formatting.RuleDescriptor.create3(15, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsAfterCodeBlockContext), 2)); + this.SpaceBetweenCloseBraceAndElse = new formatting.Rule(formatting.RuleDescriptor.create1(15, 76), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 2)); + this.SpaceBetweenCloseBraceAndWhile = new formatting.Rule(formatting.RuleDescriptor.create1(15, 100), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 2)); + this.NoSpaceAfterCloseBrace = new formatting.Rule(formatting.RuleDescriptor.create3(15, formatting.Shared.TokenRange.FromTokens([17, 19, 23, 22])), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8)); + this.NoSpaceBeforeDot = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.Any, 20), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8)); + this.NoSpaceAfterDot = new formatting.Rule(formatting.RuleDescriptor.create3(20, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8)); + this.NoSpaceBeforeOpenBracket = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.Any, 18), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8)); + this.NoSpaceAfterOpenBracket = new formatting.Rule(formatting.RuleDescriptor.create3(18, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8)); + this.NoSpaceBeforeCloseBracket = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.Any, 19), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8)); + this.NoSpaceAfterCloseBracket = new formatting.Rule(formatting.RuleDescriptor.create3(19, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8)); + this.FunctionOpenBraceLeftTokenRange = formatting.Shared.TokenRange.AnyIncludingMultilineComments; + this.SpaceBeforeOpenBraceInFunction = new formatting.Rule(formatting.RuleDescriptor.create2(this.FunctionOpenBraceLeftTokenRange, 14), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsFunctionDeclContext, Rules.IsBeforeBlockContext, Rules.IsNotFormatOnEnter, Rules.IsSameLineTokenOrBeforeMultilineBlockContext), 2), 1); + this.TypeScriptOpenBraceLeftTokenRange = formatting.Shared.TokenRange.FromTokens([65, 3]); + this.SpaceBeforeOpenBraceInTypeScriptDeclWithBlock = new formatting.Rule(formatting.RuleDescriptor.create2(this.TypeScriptOpenBraceLeftTokenRange, 14), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsTypeScriptDeclWithBlockContext, Rules.IsNotFormatOnEnter, Rules.IsSameLineTokenOrBeforeMultilineBlockContext), 2), 1); + this.ControlOpenBraceLeftTokenRange = formatting.Shared.TokenRange.FromTokens([17, 3, 75, 96, 81, 76]); + this.SpaceBeforeOpenBraceInControl = new formatting.Rule(formatting.RuleDescriptor.create2(this.ControlOpenBraceLeftTokenRange, 14), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsControlDeclContext, Rules.IsNotFormatOnEnter, Rules.IsSameLineTokenOrBeforeMultilineBlockContext), 2), 1); + this.SpaceAfterOpenBrace = new formatting.Rule(formatting.RuleDescriptor.create3(14, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSingleLineBlockContext), 2)); + this.SpaceBeforeCloseBrace = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.Any, 15), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSingleLineBlockContext), 2)); + this.NoSpaceBetweenEmptyBraceBrackets = new formatting.Rule(formatting.RuleDescriptor.create1(14, 15), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsObjectContext), 8)); + this.NewLineAfterOpenBraceInBlockContext = new formatting.Rule(formatting.RuleDescriptor.create3(14, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsMultilineBlockContext), 4)); + this.NewLineBeforeCloseBraceInBlockContext = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.AnyIncludingMultilineComments, 15), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsMultilineBlockContext), 4)); + this.NoSpaceAfterUnaryPrefixOperator = new formatting.Rule(formatting.RuleDescriptor.create4(formatting.Shared.TokenRange.UnaryPrefixOperators, formatting.Shared.TokenRange.UnaryPrefixExpressions), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsNotBinaryOpContext), 8)); + this.NoSpaceAfterUnaryPreincrementOperator = new formatting.Rule(formatting.RuleDescriptor.create3(38, formatting.Shared.TokenRange.UnaryPreincrementExpressions), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8)); + this.NoSpaceAfterUnaryPredecrementOperator = new formatting.Rule(formatting.RuleDescriptor.create3(39, formatting.Shared.TokenRange.UnaryPredecrementExpressions), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8)); + this.NoSpaceBeforeUnaryPostincrementOperator = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.UnaryPostincrementExpressions, 38), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8)); + this.NoSpaceBeforeUnaryPostdecrementOperator = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.UnaryPostdecrementExpressions, 39), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8)); + this.SpaceAfterPostincrementWhenFollowedByAdd = new formatting.Rule(formatting.RuleDescriptor.create1(38, 33), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsBinaryOpContext), 2)); + this.SpaceAfterAddWhenFollowedByUnaryPlus = new formatting.Rule(formatting.RuleDescriptor.create1(33, 33), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsBinaryOpContext), 2)); + this.SpaceAfterAddWhenFollowedByPreincrement = new formatting.Rule(formatting.RuleDescriptor.create1(33, 38), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsBinaryOpContext), 2)); + this.SpaceAfterPostdecrementWhenFollowedBySubtract = new formatting.Rule(formatting.RuleDescriptor.create1(39, 34), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsBinaryOpContext), 2)); + this.SpaceAfterSubtractWhenFollowedByUnaryMinus = new formatting.Rule(formatting.RuleDescriptor.create1(34, 34), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsBinaryOpContext), 2)); + this.SpaceAfterSubtractWhenFollowedByPredecrement = new formatting.Rule(formatting.RuleDescriptor.create1(34, 39), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsBinaryOpContext), 2)); + this.NoSpaceBeforeComma = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.Any, 23), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8)); + this.SpaceAfterCertainKeywords = new formatting.Rule(formatting.RuleDescriptor.create4(formatting.Shared.TokenRange.FromTokens([98, 94, 88, 74, 90, 97]), formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 2)); + this.SpaceAfterLetConstInVariableDeclaration = new formatting.Rule(formatting.RuleDescriptor.create4(formatting.Shared.TokenRange.FromTokens([105, 70]), formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsStartOfVariableDeclarationList), 2)); + this.NoSpaceBeforeOpenParenInFuncCall = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.Any, 16), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsFunctionCallOrNewContext, Rules.IsPreviousTokenNotComma), 8)); + this.SpaceAfterFunctionInFuncDecl = new formatting.Rule(formatting.RuleDescriptor.create3(83, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsFunctionDeclContext), 2)); + this.NoSpaceBeforeOpenParenInFuncDecl = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.Any, 16), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsFunctionDeclContext), 8)); + this.SpaceAfterVoidOperator = new formatting.Rule(formatting.RuleDescriptor.create3(99, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsVoidOpContext), 2)); + this.NoSpaceBetweenReturnAndSemicolon = new formatting.Rule(formatting.RuleDescriptor.create1(90, 22), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8)); + this.SpaceBetweenStatements = new formatting.Rule(formatting.RuleDescriptor.create4(formatting.Shared.TokenRange.FromTokens([17, 75, 76, 67]), formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsNotForContext), 2)); + this.SpaceAfterTryFinally = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.FromTokens([96, 81]), 14), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 2)); + this.SpaceAfterGetSetInMember = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.FromTokens([116, 120]), 65), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsFunctionDeclContext), 2)); + this.SpaceBeforeBinaryKeywordOperator = new formatting.Rule(formatting.RuleDescriptor.create4(formatting.Shared.TokenRange.Any, formatting.Shared.TokenRange.BinaryKeywordOperators), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsBinaryOpContext), 2)); + this.SpaceAfterBinaryKeywordOperator = new formatting.Rule(formatting.RuleDescriptor.create4(formatting.Shared.TokenRange.BinaryKeywordOperators, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsBinaryOpContext), 2)); + this.NoSpaceAfterConstructor = new formatting.Rule(formatting.RuleDescriptor.create1(114, 16), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8)); + this.NoSpaceAfterModuleImport = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.FromTokens([117, 118]), 16), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8)); + this.SpaceAfterCertainTypeScriptKeywords = new formatting.Rule(formatting.RuleDescriptor.create4(formatting.Shared.TokenRange.FromTokens([69, 115, 77, 78, 79, 116, 103, 85, 104, 117, 107, 109, 120, 110]), formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 2)); + this.SpaceBeforeCertainTypeScriptKeywords = new formatting.Rule(formatting.RuleDescriptor.create4(formatting.Shared.TokenRange.Any, formatting.Shared.TokenRange.FromTokens([79, 103])), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 2)); + this.SpaceAfterModuleName = new formatting.Rule(formatting.RuleDescriptor.create1(8, 14), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsModuleDeclContext), 2)); + this.SpaceAfterArrow = new formatting.Rule(formatting.RuleDescriptor.create3(32, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 2)); + this.NoSpaceAfterEllipsis = new formatting.Rule(formatting.RuleDescriptor.create1(21, 65), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8)); + this.NoSpaceAfterOptionalParameters = new formatting.Rule(formatting.RuleDescriptor.create3(50, formatting.Shared.TokenRange.FromTokens([17, 23])), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsNotBinaryOpContext), 8)); + this.NoSpaceBeforeOpenAngularBracket = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.TypeNames, 24), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsTypeArgumentOrParameterContext), 8)); + this.NoSpaceBetweenCloseParenAndAngularBracket = new formatting.Rule(formatting.RuleDescriptor.create1(17, 24), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsTypeArgumentOrParameterContext), 8)); + this.NoSpaceAfterOpenAngularBracket = new formatting.Rule(formatting.RuleDescriptor.create3(24, formatting.Shared.TokenRange.TypeNames), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsTypeArgumentOrParameterContext), 8)); + this.NoSpaceBeforeCloseAngularBracket = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.Any, 25), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsTypeArgumentOrParameterContext), 8)); + this.NoSpaceAfterCloseAngularBracket = new formatting.Rule(formatting.RuleDescriptor.create3(25, formatting.Shared.TokenRange.FromTokens([16, 18, 25, 23])), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsTypeArgumentOrParameterContext), 8)); + this.NoSpaceBetweenEmptyInterfaceBraceBrackets = new formatting.Rule(formatting.RuleDescriptor.create1(14, 15), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsObjectTypeContext), 8)); + this.HighPriorityCommonRules = + [ + this.IgnoreBeforeComment, this.IgnoreAfterLineComment, + this.NoSpaceBeforeColon, this.SpaceAfterColon, this.NoSpaceBeforeQuestionMark, this.SpaceAfterQuestionMarkInConditionalOperator, + this.NoSpaceAfterQuestionMark, + this.NoSpaceBeforeDot, this.NoSpaceAfterDot, + this.NoSpaceAfterUnaryPrefixOperator, + this.NoSpaceAfterUnaryPreincrementOperator, this.NoSpaceAfterUnaryPredecrementOperator, + this.NoSpaceBeforeUnaryPostincrementOperator, this.NoSpaceBeforeUnaryPostdecrementOperator, + this.SpaceAfterPostincrementWhenFollowedByAdd, + this.SpaceAfterAddWhenFollowedByUnaryPlus, this.SpaceAfterAddWhenFollowedByPreincrement, + this.SpaceAfterPostdecrementWhenFollowedBySubtract, + this.SpaceAfterSubtractWhenFollowedByUnaryMinus, this.SpaceAfterSubtractWhenFollowedByPredecrement, + this.NoSpaceAfterCloseBrace, + this.SpaceAfterOpenBrace, this.SpaceBeforeCloseBrace, this.NewLineBeforeCloseBraceInBlockContext, + this.SpaceAfterCloseBrace, this.SpaceBetweenCloseBraceAndElse, this.SpaceBetweenCloseBraceAndWhile, this.NoSpaceBetweenEmptyBraceBrackets, + this.SpaceAfterFunctionInFuncDecl, this.NewLineAfterOpenBraceInBlockContext, this.SpaceAfterGetSetInMember, + this.NoSpaceBetweenReturnAndSemicolon, + this.SpaceAfterCertainKeywords, + this.SpaceAfterLetConstInVariableDeclaration, + this.NoSpaceBeforeOpenParenInFuncCall, + this.SpaceBeforeBinaryKeywordOperator, this.SpaceAfterBinaryKeywordOperator, + this.SpaceAfterVoidOperator, + this.NoSpaceAfterConstructor, this.NoSpaceAfterModuleImport, + this.SpaceAfterCertainTypeScriptKeywords, this.SpaceBeforeCertainTypeScriptKeywords, + this.SpaceAfterModuleName, + this.SpaceAfterArrow, + this.NoSpaceAfterEllipsis, + this.NoSpaceAfterOptionalParameters, + this.NoSpaceBetweenEmptyInterfaceBraceBrackets, + this.NoSpaceBeforeOpenAngularBracket, + this.NoSpaceBetweenCloseParenAndAngularBracket, + this.NoSpaceAfterOpenAngularBracket, + this.NoSpaceBeforeCloseAngularBracket, + this.NoSpaceAfterCloseAngularBracket + ]; + this.LowPriorityCommonRules = + [ + this.NoSpaceBeforeSemicolon, + this.SpaceBeforeOpenBraceInControl, this.SpaceBeforeOpenBraceInFunction, this.SpaceBeforeOpenBraceInTypeScriptDeclWithBlock, + this.NoSpaceBeforeComma, + this.NoSpaceBeforeOpenBracket, this.NoSpaceAfterOpenBracket, + this.NoSpaceBeforeCloseBracket, this.NoSpaceAfterCloseBracket, + this.SpaceAfterSemicolon, + this.NoSpaceBeforeOpenParenInFuncDecl, + this.SpaceBetweenStatements, this.SpaceAfterTryFinally + ]; + this.SpaceAfterComma = new formatting.Rule(formatting.RuleDescriptor.create3(23, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 2)); + this.NoSpaceAfterComma = new formatting.Rule(formatting.RuleDescriptor.create3(23, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8)); + this.SpaceBeforeBinaryOperator = new formatting.Rule(formatting.RuleDescriptor.create4(formatting.Shared.TokenRange.Any, formatting.Shared.TokenRange.BinaryOperators), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsBinaryOpContext), 2)); + this.SpaceAfterBinaryOperator = new formatting.Rule(formatting.RuleDescriptor.create4(formatting.Shared.TokenRange.BinaryOperators, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsBinaryOpContext), 2)); + this.NoSpaceBeforeBinaryOperator = new formatting.Rule(formatting.RuleDescriptor.create4(formatting.Shared.TokenRange.Any, formatting.Shared.TokenRange.BinaryOperators), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsBinaryOpContext), 8)); + this.NoSpaceAfterBinaryOperator = new formatting.Rule(formatting.RuleDescriptor.create4(formatting.Shared.TokenRange.BinaryOperators, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsBinaryOpContext), 8)); + this.SpaceAfterKeywordInControl = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.Keywords, 16), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsControlDeclContext), 2)); + this.NoSpaceAfterKeywordInControl = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.Keywords, 16), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsControlDeclContext), 8)); + this.NewLineBeforeOpenBraceInFunction = new formatting.Rule(formatting.RuleDescriptor.create2(this.FunctionOpenBraceLeftTokenRange, 14), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsFunctionDeclContext, Rules.IsBeforeMultilineBlockContext), 4), 1); + this.NewLineBeforeOpenBraceInTypeScriptDeclWithBlock = new formatting.Rule(formatting.RuleDescriptor.create2(this.TypeScriptOpenBraceLeftTokenRange, 14), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsTypeScriptDeclWithBlockContext, Rules.IsBeforeMultilineBlockContext), 4), 1); + this.NewLineBeforeOpenBraceInControl = new formatting.Rule(formatting.RuleDescriptor.create2(this.ControlOpenBraceLeftTokenRange, 14), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsControlDeclContext, Rules.IsBeforeMultilineBlockContext), 4), 1); + this.SpaceAfterSemicolonInFor = new formatting.Rule(formatting.RuleDescriptor.create3(22, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsForContext), 2)); + this.NoSpaceAfterSemicolonInFor = new formatting.Rule(formatting.RuleDescriptor.create3(22, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsForContext), 8)); + this.SpaceAfterOpenParen = new formatting.Rule(formatting.RuleDescriptor.create3(16, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 2)); + this.SpaceBeforeCloseParen = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.Any, 17), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 2)); + this.NoSpaceBetweenParens = new formatting.Rule(formatting.RuleDescriptor.create1(16, 17), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8)); + this.NoSpaceAfterOpenParen = new formatting.Rule(formatting.RuleDescriptor.create3(16, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8)); + this.NoSpaceBeforeCloseParen = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.Any, 17), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8)); + this.SpaceAfterAnonymousFunctionKeyword = new formatting.Rule(formatting.RuleDescriptor.create1(83, 16), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsFunctionDeclContext), 2)); + this.NoSpaceAfterAnonymousFunctionKeyword = new formatting.Rule(formatting.RuleDescriptor.create1(83, 16), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsFunctionDeclContext), 8)); + } + Rules.prototype.getRuleName = function (rule) { + var o = this; + for (var name_19 in o) { + if (o[name_19] === rule) { + return name_19; + } + } + throw new Error("Unknown rule"); + }; + Rules.IsForContext = function (context) { + return context.contextNode.kind === 186; + }; + Rules.IsNotForContext = function (context) { + return !Rules.IsForContext(context); + }; + Rules.IsBinaryOpContext = function (context) { + switch (context.contextNode.kind) { + case 169: + case 170: + return true; + case 208: + case 198: + case 129: + case 226: + case 132: + case 131: + return context.currentTokenSpan.kind === 53 || context.nextTokenSpan.kind === 53; + case 187: + return context.currentTokenSpan.kind === 86 || context.nextTokenSpan.kind === 86; + case 188: + return context.currentTokenSpan.kind === 125 || context.nextTokenSpan.kind === 125; + case 152: + return context.currentTokenSpan.kind === 53 || context.nextTokenSpan.kind === 53; + } + return false; + }; + Rules.IsNotBinaryOpContext = function (context) { + return !Rules.IsBinaryOpContext(context); + }; + Rules.IsConditionalOperatorContext = function (context) { + return context.contextNode.kind === 170; + }; + Rules.IsSameLineTokenOrBeforeMultilineBlockContext = function (context) { + //// This check is mainly used inside SpaceBeforeOpenBraceInControl and SpaceBeforeOpenBraceInFunction. + //// + //// Ex: + //// if (1) { .... + //// * ) and { are on the same line so apply the rule. Here we don't care whether it's same or multi block context + //// + //// Ex: + //// if (1) + //// { ... } + //// * ) and { are on differnet lines. We only need to format if the block is multiline context. So in this case we don't format. + //// + //// Ex: + //// if (1) + //// { ... + //// } + //// * ) and { are on differnet lines. We only need to format if the block is multiline context. So in this case we format. + return context.TokensAreOnSameLine() || Rules.IsBeforeMultilineBlockContext(context); + }; + Rules.IsBeforeMultilineBlockContext = function (context) { + return Rules.IsBeforeBlockContext(context) && !(context.NextNodeAllOnSameLine() || context.NextNodeBlockIsOnOneLine()); + }; + Rules.IsMultilineBlockContext = function (context) { + return Rules.IsBlockContext(context) && !(context.ContextNodeAllOnSameLine() || context.ContextNodeBlockIsOnOneLine()); + }; + Rules.IsSingleLineBlockContext = function (context) { + return Rules.IsBlockContext(context) && (context.ContextNodeAllOnSameLine() || context.ContextNodeBlockIsOnOneLine()); + }; + Rules.IsBlockContext = function (context) { + return Rules.NodeIsBlockContext(context.contextNode); + }; + Rules.IsBeforeBlockContext = function (context) { + return Rules.NodeIsBlockContext(context.nextTokenParent); + }; + Rules.NodeIsBlockContext = function (node) { + if (Rules.NodeIsTypeScriptDeclWithBlockContext(node)) { + return true; + } + switch (node.kind) { + case 179: + case 207: + case 154: + case 206: + return true; + } + return false; + }; + Rules.IsFunctionDeclContext = function (context) { + switch (context.contextNode.kind) { + case 200: + case 134: + case 133: + case 136: + case 137: + case 138: + case 162: + case 135: + case 163: + case 202: + return true; + } + return false; + }; + Rules.IsTypeScriptDeclWithBlockContext = function (context) { + return Rules.NodeIsTypeScriptDeclWithBlockContext(context.contextNode); + }; + Rules.NodeIsTypeScriptDeclWithBlockContext = function (node) { + switch (node.kind) { + case 201: + case 202: + case 204: + case 145: + case 205: + return true; + } + return false; + }; + Rules.IsAfterCodeBlockContext = function (context) { + switch (context.currentTokenParent.kind) { + case 201: + case 205: + case 204: + case 179: + case 223: + case 206: + case 193: + return true; + } + return false; + }; + Rules.IsControlDeclContext = function (context) { + switch (context.contextNode.kind) { + case 183: + case 193: + case 186: + case 187: + case 188: + case 185: + case 196: + case 184: + case 192: + case 223: + return true; + default: + return false; + } + }; + Rules.IsObjectContext = function (context) { + return context.contextNode.kind === 154; + }; + Rules.IsFunctionCallContext = function (context) { + return context.contextNode.kind === 157; + }; + Rules.IsNewContext = function (context) { + return context.contextNode.kind === 158; + }; + Rules.IsFunctionCallOrNewContext = function (context) { + return Rules.IsFunctionCallContext(context) || Rules.IsNewContext(context); + }; + Rules.IsPreviousTokenNotComma = function (context) { + return context.currentTokenSpan.kind !== 23; + }; + Rules.IsSameLineTokenContext = function (context) { + return context.TokensAreOnSameLine(); + }; + Rules.IsStartOfVariableDeclarationList = function (context) { + return context.currentTokenParent.kind === 199 && + context.currentTokenParent.getStart(context.sourceFile) === context.currentTokenSpan.pos; + }; + Rules.IsNotFormatOnEnter = function (context) { + return context.formattingRequestKind != 2; + }; + Rules.IsModuleDeclContext = function (context) { + return context.contextNode.kind === 205; + }; + Rules.IsObjectTypeContext = function (context) { + return context.contextNode.kind === 145; + }; + Rules.IsTypeArgumentOrParameter = function (token, parent) { + if (token.kind !== 24 && token.kind !== 25) { + return false; + } + switch (parent.kind) { + case 141: + case 201: + case 202: + case 200: + case 162: + case 163: + case 134: + case 133: + case 138: + case 139: + case 157: + case 158: + return true; + default: + return false; + } + }; + Rules.IsTypeArgumentOrParameterContext = function (context) { + return Rules.IsTypeArgumentOrParameter(context.currentTokenSpan, context.currentTokenParent) || + Rules.IsTypeArgumentOrParameter(context.nextTokenSpan, context.nextTokenParent); + }; + Rules.IsVoidOpContext = function (context) { + return context.currentTokenSpan.kind === 99 && context.currentTokenParent.kind === 166; + }; + return Rules; + })(); + formatting.Rules = Rules; + })(formatting = ts.formatting || (ts.formatting = {})); +})(ts || (ts = {})); +// +// Copyright (c) Microsoft Corporation. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +/// +var ts; +(function (ts) { + var formatting; + (function (formatting) { + var RulesMap = (function () { + function RulesMap() { + this.map = []; + this.mapRowLength = 0; + } + RulesMap.create = function (rules) { + var result = new RulesMap(); + result.Initialize(rules); + return result; + }; + RulesMap.prototype.Initialize = function (rules) { + this.mapRowLength = 125 + 1; + this.map = new Array(this.mapRowLength * this.mapRowLength); + var rulesBucketConstructionStateList = new Array(this.map.length); + this.FillRules(rules, rulesBucketConstructionStateList); + return this.map; + }; + RulesMap.prototype.FillRules = function (rules, rulesBucketConstructionStateList) { + var _this = this; + rules.forEach(function (rule) { + _this.FillRule(rule, rulesBucketConstructionStateList); + }); + }; + RulesMap.prototype.GetRuleBucketIndex = function (row, column) { + var rulesBucketIndex = (row * this.mapRowLength) + column; + return rulesBucketIndex; + }; + RulesMap.prototype.FillRule = function (rule, rulesBucketConstructionStateList) { + var _this = this; + var specificRule = rule.Descriptor.LeftTokenRange != formatting.Shared.TokenRange.Any && + rule.Descriptor.RightTokenRange != formatting.Shared.TokenRange.Any; + rule.Descriptor.LeftTokenRange.GetTokens().forEach(function (left) { + rule.Descriptor.RightTokenRange.GetTokens().forEach(function (right) { + var rulesBucketIndex = _this.GetRuleBucketIndex(left, right); + var rulesBucket = _this.map[rulesBucketIndex]; + if (rulesBucket == undefined) { + rulesBucket = _this.map[rulesBucketIndex] = new RulesBucket(); + } + rulesBucket.AddRule(rule, specificRule, rulesBucketConstructionStateList, rulesBucketIndex); + }); + }); + }; + RulesMap.prototype.GetRule = function (context) { + var bucketIndex = this.GetRuleBucketIndex(context.currentTokenSpan.kind, context.nextTokenSpan.kind); + var bucket = this.map[bucketIndex]; + if (bucket != null) { + for (var _i = 0, _a = bucket.Rules(); _i < _a.length; _i++) { + var rule = _a[_i]; + if (rule.Operation.Context.InContext(context)) { + return rule; + } + } + } + return null; + }; + return RulesMap; + })(); + formatting.RulesMap = RulesMap; + var MaskBitSize = 5; + var Mask = 0x1f; + (function (RulesPosition) { + RulesPosition[RulesPosition["IgnoreRulesSpecific"] = 0] = "IgnoreRulesSpecific"; + RulesPosition[RulesPosition["IgnoreRulesAny"] = MaskBitSize * 1] = "IgnoreRulesAny"; + RulesPosition[RulesPosition["ContextRulesSpecific"] = MaskBitSize * 2] = "ContextRulesSpecific"; + RulesPosition[RulesPosition["ContextRulesAny"] = MaskBitSize * 3] = "ContextRulesAny"; + RulesPosition[RulesPosition["NoContextRulesSpecific"] = MaskBitSize * 4] = "NoContextRulesSpecific"; + RulesPosition[RulesPosition["NoContextRulesAny"] = MaskBitSize * 5] = "NoContextRulesAny"; + })(formatting.RulesPosition || (formatting.RulesPosition = {})); + var RulesPosition = formatting.RulesPosition; + var RulesBucketConstructionState = (function () { + function RulesBucketConstructionState() { + this.rulesInsertionIndexBitmap = 0; + } + RulesBucketConstructionState.prototype.GetInsertionIndex = function (maskPosition) { + var index = 0; + var pos = 0; + var indexBitmap = this.rulesInsertionIndexBitmap; + while (pos <= maskPosition) { + index += (indexBitmap & Mask); + indexBitmap >>= MaskBitSize; + pos += MaskBitSize; + } + return index; + }; + RulesBucketConstructionState.prototype.IncreaseInsertionIndex = function (maskPosition) { + var value = (this.rulesInsertionIndexBitmap >> maskPosition) & Mask; + value++; + ts.Debug.assert((value & Mask) == value, "Adding more rules into the sub-bucket than allowed. Maximum allowed is 32 rules."); + var temp = this.rulesInsertionIndexBitmap & ~(Mask << maskPosition); + temp |= value << maskPosition; + this.rulesInsertionIndexBitmap = temp; + }; + return RulesBucketConstructionState; + })(); + formatting.RulesBucketConstructionState = RulesBucketConstructionState; + var RulesBucket = (function () { + function RulesBucket() { + this.rules = []; + } + RulesBucket.prototype.Rules = function () { + return this.rules; + }; + RulesBucket.prototype.AddRule = function (rule, specificTokens, constructionState, rulesBucketIndex) { + var position; + if (rule.Operation.Action == 1) { + position = specificTokens ? + RulesPosition.IgnoreRulesSpecific : + RulesPosition.IgnoreRulesAny; + } + else if (!rule.Operation.Context.IsAny()) { + position = specificTokens ? + RulesPosition.ContextRulesSpecific : + RulesPosition.ContextRulesAny; + } + else { + position = specificTokens ? + RulesPosition.NoContextRulesSpecific : + RulesPosition.NoContextRulesAny; + } + var state = constructionState[rulesBucketIndex]; + if (state === undefined) { + state = constructionState[rulesBucketIndex] = new RulesBucketConstructionState(); + } + var index = state.GetInsertionIndex(position); + this.rules.splice(index, 0, rule); + state.IncreaseInsertionIndex(position); + }; + return RulesBucket; + })(); + formatting.RulesBucket = RulesBucket; + })(formatting = ts.formatting || (ts.formatting = {})); +})(ts || (ts = {})); +// +// Copyright (c) Microsoft Corporation. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +/// +var ts; +(function (ts) { + var formatting; + (function (formatting) { + var Shared; + (function (Shared) { + var TokenRangeAccess = (function () { + function TokenRangeAccess(from, to, except) { + this.tokens = []; + for (var token = from; token <= to; token++) { + if (except.indexOf(token) < 0) { + this.tokens.push(token); + } + } + } + TokenRangeAccess.prototype.GetTokens = function () { + return this.tokens; + }; + TokenRangeAccess.prototype.Contains = function (token) { + return this.tokens.indexOf(token) >= 0; + }; + return TokenRangeAccess; + })(); + Shared.TokenRangeAccess = TokenRangeAccess; + var TokenValuesAccess = (function () { + function TokenValuesAccess(tks) { + this.tokens = tks && tks.length ? tks : []; + } + TokenValuesAccess.prototype.GetTokens = function () { + return this.tokens; + }; + TokenValuesAccess.prototype.Contains = function (token) { + return this.tokens.indexOf(token) >= 0; + }; + return TokenValuesAccess; + })(); + Shared.TokenValuesAccess = TokenValuesAccess; + var TokenSingleValueAccess = (function () { + function TokenSingleValueAccess(token) { + this.token = token; + } + TokenSingleValueAccess.prototype.GetTokens = function () { + return [this.token]; + }; + TokenSingleValueAccess.prototype.Contains = function (tokenValue) { + return tokenValue == this.token; + }; + return TokenSingleValueAccess; + })(); + Shared.TokenSingleValueAccess = TokenSingleValueAccess; + var TokenAllAccess = (function () { + function TokenAllAccess() { + } + TokenAllAccess.prototype.GetTokens = function () { + var result = []; + for (var token = 0; token <= 125; token++) { + result.push(token); + } + return result; + }; + TokenAllAccess.prototype.Contains = function (tokenValue) { + return true; + }; + TokenAllAccess.prototype.toString = function () { + return "[allTokens]"; + }; + return TokenAllAccess; + })(); + Shared.TokenAllAccess = TokenAllAccess; + var TokenRange = (function () { + function TokenRange(tokenAccess) { + this.tokenAccess = tokenAccess; + } + TokenRange.FromToken = function (token) { + return new TokenRange(new TokenSingleValueAccess(token)); + }; + TokenRange.FromTokens = function (tokens) { + return new TokenRange(new TokenValuesAccess(tokens)); + }; + TokenRange.FromRange = function (f, to, except) { + if (except === void 0) { except = []; } + return new TokenRange(new TokenRangeAccess(f, to, except)); + }; + TokenRange.AllTokens = function () { + return new TokenRange(new TokenAllAccess()); + }; + TokenRange.prototype.GetTokens = function () { + return this.tokenAccess.GetTokens(); + }; + TokenRange.prototype.Contains = function (token) { + return this.tokenAccess.Contains(token); + }; + TokenRange.prototype.toString = function () { + return this.tokenAccess.toString(); + }; + TokenRange.Any = TokenRange.AllTokens(); + TokenRange.AnyIncludingMultilineComments = TokenRange.FromTokens(TokenRange.Any.GetTokens().concat([3])); + TokenRange.Keywords = TokenRange.FromRange(66, 125); + TokenRange.BinaryOperators = TokenRange.FromRange(24, 64); + TokenRange.BinaryKeywordOperators = TokenRange.FromTokens([86, 87, 125]); + TokenRange.UnaryPrefixOperators = TokenRange.FromTokens([38, 39, 47, 46]); + TokenRange.UnaryPrefixExpressions = TokenRange.FromTokens([7, 65, 16, 18, 14, 93, 88]); + TokenRange.UnaryPreincrementExpressions = TokenRange.FromTokens([65, 16, 93, 88]); + TokenRange.UnaryPostincrementExpressions = TokenRange.FromTokens([65, 17, 19, 88]); + TokenRange.UnaryPredecrementExpressions = TokenRange.FromTokens([65, 16, 93, 88]); + TokenRange.UnaryPostdecrementExpressions = TokenRange.FromTokens([65, 17, 19, 88]); + TokenRange.Comments = TokenRange.FromTokens([2, 3]); + TokenRange.TypeNames = TokenRange.FromTokens([65, 119, 121, 113, 122, 99, 112]); + return TokenRange; + })(); + Shared.TokenRange = TokenRange; + })(Shared = formatting.Shared || (formatting.Shared = {})); + })(formatting = ts.formatting || (ts.formatting = {})); +})(ts || (ts = {})); +// +// Copyright (c) Microsoft Corporation. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +// +// Copyright (c) Microsoft Corporation. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +/// +var ts; +(function (ts) { + var formatting; + (function (formatting) { + var RulesProvider = (function () { + function RulesProvider() { + this.globalRules = new formatting.Rules(); + } + RulesProvider.prototype.getRuleName = function (rule) { + return this.globalRules.getRuleName(rule); + }; + RulesProvider.prototype.getRuleByName = function (name) { + return this.globalRules[name]; + }; + RulesProvider.prototype.getRulesMap = function () { + return this.rulesMap; + }; + RulesProvider.prototype.ensureUpToDate = function (options) { + if (this.options == null || !ts.compareDataObjects(this.options, options)) { + var activeRules = this.createActiveRules(options); + var rulesMap = formatting.RulesMap.create(activeRules); + this.activeRules = activeRules; + this.rulesMap = rulesMap; + this.options = ts.clone(options); + } + }; + RulesProvider.prototype.createActiveRules = function (options) { + var rules = this.globalRules.HighPriorityCommonRules.slice(0); + if (options.InsertSpaceAfterCommaDelimiter) { + rules.push(this.globalRules.SpaceAfterComma); + } + else { + rules.push(this.globalRules.NoSpaceAfterComma); + } + if (options.InsertSpaceAfterFunctionKeywordForAnonymousFunctions) { + rules.push(this.globalRules.SpaceAfterAnonymousFunctionKeyword); + } + else { + rules.push(this.globalRules.NoSpaceAfterAnonymousFunctionKeyword); + } + if (options.InsertSpaceAfterKeywordsInControlFlowStatements) { + rules.push(this.globalRules.SpaceAfterKeywordInControl); + } + else { + rules.push(this.globalRules.NoSpaceAfterKeywordInControl); + } + if (options.InsertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis) { + rules.push(this.globalRules.SpaceAfterOpenParen); + rules.push(this.globalRules.SpaceBeforeCloseParen); + rules.push(this.globalRules.NoSpaceBetweenParens); + } + else { + rules.push(this.globalRules.NoSpaceAfterOpenParen); + rules.push(this.globalRules.NoSpaceBeforeCloseParen); + rules.push(this.globalRules.NoSpaceBetweenParens); + } + if (options.InsertSpaceAfterSemicolonInForStatements) { + rules.push(this.globalRules.SpaceAfterSemicolonInFor); + } + else { + rules.push(this.globalRules.NoSpaceAfterSemicolonInFor); + } + if (options.InsertSpaceBeforeAndAfterBinaryOperators) { + rules.push(this.globalRules.SpaceBeforeBinaryOperator); + rules.push(this.globalRules.SpaceAfterBinaryOperator); + } + else { + rules.push(this.globalRules.NoSpaceBeforeBinaryOperator); + rules.push(this.globalRules.NoSpaceAfterBinaryOperator); + } + if (options.PlaceOpenBraceOnNewLineForControlBlocks) { + rules.push(this.globalRules.NewLineBeforeOpenBraceInControl); + } + if (options.PlaceOpenBraceOnNewLineForFunctions) { + rules.push(this.globalRules.NewLineBeforeOpenBraceInFunction); + rules.push(this.globalRules.NewLineBeforeOpenBraceInTypeScriptDeclWithBlock); + } + rules = rules.concat(this.globalRules.LowPriorityCommonRules); + return rules; + }; + return RulesProvider; + })(); + formatting.RulesProvider = RulesProvider; + })(formatting = ts.formatting || (ts.formatting = {})); +})(ts || (ts = {})); +/// +/// +/// +/// +var ts; +(function (ts) { + var formatting; + (function (formatting) { + function formatOnEnter(position, sourceFile, rulesProvider, options) { + var line = sourceFile.getLineAndCharacterOfPosition(position).line; + if (line === 0) { + return []; + } + var span = { + pos: ts.getStartPositionOfLine(line - 1, sourceFile), + end: ts.getEndLinePosition(line, sourceFile) + 1 + }; + return formatSpan(span, sourceFile, options, rulesProvider, 2); + } + formatting.formatOnEnter = formatOnEnter; + function formatOnSemicolon(position, sourceFile, rulesProvider, options) { + return formatOutermostParent(position, 22, sourceFile, options, rulesProvider, 3); + } + formatting.formatOnSemicolon = formatOnSemicolon; + function formatOnClosingCurly(position, sourceFile, rulesProvider, options) { + return formatOutermostParent(position, 15, sourceFile, options, rulesProvider, 4); + } + formatting.formatOnClosingCurly = formatOnClosingCurly; + function formatDocument(sourceFile, rulesProvider, options) { + var span = { + pos: 0, + end: sourceFile.text.length + }; + return formatSpan(span, sourceFile, options, rulesProvider, 0); + } + formatting.formatDocument = formatDocument; + function formatSelection(start, end, sourceFile, rulesProvider, options) { + var span = { + pos: ts.getLineStartPositionForPosition(start, sourceFile), + end: end + }; + return formatSpan(span, sourceFile, options, rulesProvider, 1); + } + formatting.formatSelection = formatSelection; + function formatOutermostParent(position, expectedLastToken, sourceFile, options, rulesProvider, requestKind) { + var parent = findOutermostParent(position, expectedLastToken, sourceFile); + if (!parent) { + return []; + } + var span = { + pos: ts.getLineStartPositionForPosition(parent.getStart(sourceFile), sourceFile), + end: parent.end + }; + return formatSpan(span, sourceFile, options, rulesProvider, requestKind); + } + function findOutermostParent(position, expectedTokenKind, sourceFile) { + var precedingToken = ts.findPrecedingToken(position, sourceFile); + if (!precedingToken || + precedingToken.kind !== expectedTokenKind || + position !== precedingToken.getEnd()) { + return undefined; + } + var current = precedingToken; + while (current && + current.parent && + current.parent.end === precedingToken.end && + !isListElement(current.parent, current)) { + current = current.parent; + } + return current; + } + function isListElement(parent, node) { + switch (parent.kind) { + case 201: + case 202: + return ts.rangeContainsRange(parent.members, node); + case 205: + var body = parent.body; + return body && body.kind === 179 && ts.rangeContainsRange(body.statements, node); + case 227: + case 179: + case 206: + return ts.rangeContainsRange(parent.statements, node); + case 223: + return ts.rangeContainsRange(parent.block.statements, node); + } + return false; + } + function findEnclosingNode(range, sourceFile) { + return find(sourceFile); + function find(n) { + var candidate = ts.forEachChild(n, function (c) { return ts.startEndContainsRange(c.getStart(sourceFile), c.end, range) && c; }); + if (candidate) { + var result = find(candidate); + if (result) { + return result; + } + } + return n; + } + } + function prepareRangeContainsErrorFunction(errors, originalRange) { + if (!errors.length) { + return rangeHasNoErrors; + } + var sorted = errors + .filter(function (d) { return ts.rangeOverlapsWithStartEnd(originalRange, d.start, d.start + d.length); }) + .sort(function (e1, e2) { return e1.start - e2.start; }); + if (!sorted.length) { + return rangeHasNoErrors; + } + var index = 0; + return function (r) { + while (true) { + if (index >= sorted.length) { + return false; + } + var error = sorted[index]; + if (r.end <= error.start) { + return false; + } + if (ts.startEndOverlapsWithStartEnd(r.pos, r.end, error.start, error.start + error.length)) { + return true; + } + index++; + } + }; + function rangeHasNoErrors(r) { + return false; + } + } + function getScanStartPosition(enclosingNode, originalRange, sourceFile) { + var start = enclosingNode.getStart(sourceFile); + if (start === originalRange.pos && enclosingNode.end === originalRange.end) { + return start; + } + var precedingToken = ts.findPrecedingToken(originalRange.pos, sourceFile); + if (!precedingToken) { + return enclosingNode.pos; + } + if (precedingToken.end >= originalRange.pos) { + return enclosingNode.pos; + } + return precedingToken.end; + } + function getOwnOrInheritedDelta(n, options, sourceFile) { + var previousLine = -1; + var childKind = 0; + while (n) { + var line = sourceFile.getLineAndCharacterOfPosition(n.getStart(sourceFile)).line; + if (previousLine !== -1 && line !== previousLine) { + break; + } + if (formatting.SmartIndenter.shouldIndentChildNode(n.kind, childKind)) { + return options.IndentSize; + } + previousLine = line; + childKind = n.kind; + n = n.parent; + } + return 0; + } + function formatSpan(originalRange, sourceFile, options, rulesProvider, requestKind) { + var rangeContainsError = prepareRangeContainsErrorFunction(sourceFile.parseDiagnostics, originalRange); + var formattingContext = new formatting.FormattingContext(sourceFile, requestKind); + var enclosingNode = findEnclosingNode(originalRange, sourceFile); + var formattingScanner = formatting.getFormattingScanner(sourceFile, getScanStartPosition(enclosingNode, originalRange, sourceFile), originalRange.end); + var initialIndentation = formatting.SmartIndenter.getIndentationForNode(enclosingNode, originalRange, sourceFile, options); + var previousRangeHasError; + var previousRange; + var previousParent; + var previousRangeStartLine; + var edits = []; + formattingScanner.advance(); + if (formattingScanner.isOnToken()) { + var startLine = sourceFile.getLineAndCharacterOfPosition(enclosingNode.getStart(sourceFile)).line; + var delta = getOwnOrInheritedDelta(enclosingNode, options, sourceFile); + processNode(enclosingNode, enclosingNode, startLine, initialIndentation, delta); + } + formattingScanner.close(); + return edits; + function tryComputeIndentationForListItem(startPos, endPos, parentStartLine, range, inheritedIndentation) { + if (ts.rangeOverlapsWithStartEnd(range, startPos, endPos)) { + if (inheritedIndentation !== -1) { + return inheritedIndentation; + } + } + else { + var startLine = sourceFile.getLineAndCharacterOfPosition(startPos).line; + var startLinePosition = ts.getLineStartPositionForPosition(startPos, sourceFile); + var column = formatting.SmartIndenter.findFirstNonWhitespaceColumn(startLinePosition, startPos, sourceFile, options); + if (startLine !== parentStartLine || startPos === column) { + return column; + } + } + return -1; + } + function computeIndentation(node, startLine, inheritedIndentation, parent, parentDynamicIndentation, effectiveParentStartLine) { + var indentation = inheritedIndentation; + if (indentation === -1) { + if (isSomeBlock(node.kind)) { + if (isSomeBlock(parent.kind) || + parent.kind === 227 || + parent.kind === 220 || + parent.kind === 221) { + indentation = parentDynamicIndentation.getIndentation() + parentDynamicIndentation.getDelta(); + } + else { + indentation = parentDynamicIndentation.getIndentation(); + } + } + else { + if (formatting.SmartIndenter.childStartsOnTheSameLineWithElseInIfStatement(parent, node, startLine, sourceFile)) { + indentation = parentDynamicIndentation.getIndentation(); + } + else { + indentation = parentDynamicIndentation.getIndentation() + parentDynamicIndentation.getDelta(); + } + } + } + var delta = formatting.SmartIndenter.shouldIndentChildNode(node.kind, 0) ? options.IndentSize : 0; + if (effectiveParentStartLine === startLine) { + indentation = parentDynamicIndentation.getIndentation(); + delta = Math.min(options.IndentSize, parentDynamicIndentation.getDelta() + delta); + } + return { + indentation: indentation, + delta: delta + }; + } + function getFirstNonDecoratorTokenOfNode(node) { + if (node.modifiers && node.modifiers.length) { + return node.modifiers[0].kind; + } + switch (node.kind) { + case 201: return 69; + case 202: return 104; + case 200: return 83; + case 204: return 204; + case 136: return 116; + case 137: return 120; + case 134: + if (node.asteriskToken) { + return 35; + } + case 132: + case 129: + return node.name.kind; + } + } + function getDynamicIndentation(node, nodeStartLine, indentation, delta) { + return { + getIndentationForComment: function (kind) { + switch (kind) { + case 15: + case 19: + return indentation + delta; + } + return indentation; + }, + getIndentationForToken: function (line, kind) { + if (nodeStartLine !== line && node.decorators) { + if (kind === getFirstNonDecoratorTokenOfNode(node)) { + return indentation; + } + } + switch (kind) { + case 14: + case 15: + case 18: + case 19: + case 76: + case 100: + case 52: + return indentation; + default: + return nodeStartLine !== line ? indentation + delta : indentation; + } + }, + getIndentation: function () { return indentation; }, + getDelta: function () { return delta; }, + recomputeIndentation: function (lineAdded) { + if (node.parent && formatting.SmartIndenter.shouldIndentChildNode(node.parent.kind, node.kind)) { + if (lineAdded) { + indentation += options.IndentSize; + } + else { + indentation -= options.IndentSize; + } + if (formatting.SmartIndenter.shouldIndentChildNode(node.kind, 0)) { + delta = options.IndentSize; + } + else { + delta = 0; + } + } + } + }; + } + function processNode(node, contextNode, nodeStartLine, indentation, delta) { + if (!ts.rangeOverlapsWithStartEnd(originalRange, node.getStart(sourceFile), node.getEnd())) { + return; + } + var nodeDynamicIndentation = getDynamicIndentation(node, nodeStartLine, indentation, delta); + var childContextNode = contextNode; + ts.forEachChild(node, function (child) { + processChildNode(child, -1, node, nodeDynamicIndentation, nodeStartLine, false); + }, function (nodes) { + processChildNodes(nodes, node, nodeStartLine, nodeDynamicIndentation); + }); + while (formattingScanner.isOnToken()) { + var tokenInfo = formattingScanner.readTokenInfo(node); + if (tokenInfo.token.end > node.end) { + break; + } + consumeTokenAndAdvanceScanner(tokenInfo, node, nodeDynamicIndentation); + } + function processChildNode(child, inheritedIndentation, parent, parentDynamicIndentation, parentStartLine, isListItem) { + var childStartPos = child.getStart(sourceFile); + var childStart = sourceFile.getLineAndCharacterOfPosition(childStartPos); + var childIndentationAmount = -1; + if (isListItem) { + childIndentationAmount = tryComputeIndentationForListItem(childStartPos, child.end, parentStartLine, originalRange, inheritedIndentation); + if (childIndentationAmount !== -1) { + inheritedIndentation = childIndentationAmount; + } + } + if (!ts.rangeOverlapsWithStartEnd(originalRange, child.pos, child.end)) { + return inheritedIndentation; + } + if (child.getFullWidth() === 0) { + return inheritedIndentation; + } + while (formattingScanner.isOnToken()) { + var tokenInfo = formattingScanner.readTokenInfo(node); + if (tokenInfo.token.end > childStartPos) { + break; + } + consumeTokenAndAdvanceScanner(tokenInfo, node, parentDynamicIndentation); + } + if (!formattingScanner.isOnToken()) { + return inheritedIndentation; + } + if (ts.isToken(child)) { + var tokenInfo = formattingScanner.readTokenInfo(child); + ts.Debug.assert(tokenInfo.token.end === child.end); + consumeTokenAndAdvanceScanner(tokenInfo, node, parentDynamicIndentation); + return inheritedIndentation; + } + var childIndentation = computeIndentation(child, childStart.line, childIndentationAmount, node, parentDynamicIndentation, parentStartLine); + processNode(child, childContextNode, childStart.line, childIndentation.indentation, childIndentation.delta); + childContextNode = node; + return inheritedIndentation; + } + function processChildNodes(nodes, parent, parentStartLine, parentDynamicIndentation) { + var listStartToken = getOpenTokenForList(parent, nodes); + var listEndToken = getCloseTokenForOpenToken(listStartToken); + var listDynamicIndentation = parentDynamicIndentation; + var startLine = parentStartLine; + if (listStartToken !== 0) { + while (formattingScanner.isOnToken()) { + var tokenInfo = formattingScanner.readTokenInfo(parent); + if (tokenInfo.token.end > nodes.pos) { + break; + } + else if (tokenInfo.token.kind === listStartToken) { + startLine = sourceFile.getLineAndCharacterOfPosition(tokenInfo.token.pos).line; + var indentation_1 = computeIndentation(tokenInfo.token, startLine, -1, parent, parentDynamicIndentation, startLine); + listDynamicIndentation = getDynamicIndentation(parent, parentStartLine, indentation_1.indentation, indentation_1.delta); + consumeTokenAndAdvanceScanner(tokenInfo, parent, listDynamicIndentation); + } + else { + consumeTokenAndAdvanceScanner(tokenInfo, parent, parentDynamicIndentation); + } + } + } + var inheritedIndentation = -1; + for (var _i = 0; _i < nodes.length; _i++) { + var child = nodes[_i]; + inheritedIndentation = processChildNode(child, inheritedIndentation, node, listDynamicIndentation, startLine, true); + } + if (listEndToken !== 0) { + if (formattingScanner.isOnToken()) { + var tokenInfo = formattingScanner.readTokenInfo(parent); + if (tokenInfo.token.kind === listEndToken && ts.rangeContainsRange(parent, tokenInfo.token)) { + consumeTokenAndAdvanceScanner(tokenInfo, parent, listDynamicIndentation); + } + } + } + } + function consumeTokenAndAdvanceScanner(currentTokenInfo, parent, dynamicIndentation) { + ts.Debug.assert(ts.rangeContainsRange(parent, currentTokenInfo.token)); + var lastTriviaWasNewLine = formattingScanner.lastTrailingTriviaWasNewLine(); + var indentToken = false; + if (currentTokenInfo.leadingTrivia) { + processTrivia(currentTokenInfo.leadingTrivia, parent, childContextNode, dynamicIndentation); + } + var lineAdded; + var isTokenInRange = ts.rangeContainsRange(originalRange, currentTokenInfo.token); + var tokenStart = sourceFile.getLineAndCharacterOfPosition(currentTokenInfo.token.pos); + if (isTokenInRange) { + var rangeHasError = rangeContainsError(currentTokenInfo.token); + var prevStartLine = previousRangeStartLine; + lineAdded = processRange(currentTokenInfo.token, tokenStart, parent, childContextNode, dynamicIndentation); + if (rangeHasError) { + indentToken = false; + } + else { + if (lineAdded !== undefined) { + indentToken = lineAdded; + } + else { + indentToken = lastTriviaWasNewLine && tokenStart.line !== prevStartLine; + } + } + } + if (currentTokenInfo.trailingTrivia) { + processTrivia(currentTokenInfo.trailingTrivia, parent, childContextNode, dynamicIndentation); + } + if (indentToken) { + var indentNextTokenOrTrivia = true; + if (currentTokenInfo.leadingTrivia) { + for (var _i = 0, _a = currentTokenInfo.leadingTrivia; _i < _a.length; _i++) { + var triviaItem = _a[_i]; + if (!ts.rangeContainsRange(originalRange, triviaItem)) { + continue; + } + var triviaStartLine = sourceFile.getLineAndCharacterOfPosition(triviaItem.pos).line; + switch (triviaItem.kind) { + case 3: + var commentIndentation = dynamicIndentation.getIndentationForComment(currentTokenInfo.token.kind); + indentMultilineComment(triviaItem, commentIndentation, !indentNextTokenOrTrivia); + indentNextTokenOrTrivia = false; + break; + case 2: + if (indentNextTokenOrTrivia) { + var commentIndentation_1 = dynamicIndentation.getIndentationForComment(currentTokenInfo.token.kind); + insertIndentation(triviaItem.pos, commentIndentation_1, false); + indentNextTokenOrTrivia = false; + } + break; + case 4: + indentNextTokenOrTrivia = true; + break; + } + } + } + if (isTokenInRange && !rangeContainsError(currentTokenInfo.token)) { + var tokenIndentation = dynamicIndentation.getIndentationForToken(tokenStart.line, currentTokenInfo.token.kind); + insertIndentation(currentTokenInfo.token.pos, tokenIndentation, lineAdded); + } + } + formattingScanner.advance(); + childContextNode = parent; + } + } + function processTrivia(trivia, parent, contextNode, dynamicIndentation) { + for (var _i = 0; _i < trivia.length; _i++) { + var triviaItem = trivia[_i]; + if (ts.isComment(triviaItem.kind) && ts.rangeContainsRange(originalRange, triviaItem)) { + var triviaItemStart = sourceFile.getLineAndCharacterOfPosition(triviaItem.pos); + processRange(triviaItem, triviaItemStart, parent, contextNode, dynamicIndentation); + } + } + } + function processRange(range, rangeStart, parent, contextNode, dynamicIndentation) { + var rangeHasError = rangeContainsError(range); + var lineAdded; + if (!rangeHasError && !previousRangeHasError) { + if (!previousRange) { + var originalStart = sourceFile.getLineAndCharacterOfPosition(originalRange.pos); + trimTrailingWhitespacesForLines(originalStart.line, rangeStart.line); + } + else { + lineAdded = + processPair(range, rangeStart.line, parent, previousRange, previousRangeStartLine, previousParent, contextNode, dynamicIndentation); + } + } + previousRange = range; + previousParent = parent; + previousRangeStartLine = rangeStart.line; + previousRangeHasError = rangeHasError; + return lineAdded; + } + function processPair(currentItem, currentStartLine, currentParent, previousItem, previousStartLine, previousParent, contextNode, dynamicIndentation) { + formattingContext.updateContext(previousItem, previousParent, currentItem, currentParent, contextNode); + var rule = rulesProvider.getRulesMap().GetRule(formattingContext); + var trimTrailingWhitespaces; + var lineAdded; + if (rule) { + applyRuleEdits(rule, previousItem, previousStartLine, currentItem, currentStartLine); + if (rule.Operation.Action & (2 | 8) && currentStartLine !== previousStartLine) { + lineAdded = false; + if (currentParent.getStart(sourceFile) === currentItem.pos) { + dynamicIndentation.recomputeIndentation(false); + } + } + else if (rule.Operation.Action & 4 && currentStartLine === previousStartLine) { + lineAdded = true; + if (currentParent.getStart(sourceFile) === currentItem.pos) { + dynamicIndentation.recomputeIndentation(true); + } + } + trimTrailingWhitespaces = + (rule.Operation.Action & (4 | 2)) && + rule.Flag !== 1; + } + else { + trimTrailingWhitespaces = true; + } + if (currentStartLine !== previousStartLine && trimTrailingWhitespaces) { + trimTrailingWhitespacesForLines(previousStartLine, currentStartLine, previousItem); + } + return lineAdded; + } + function insertIndentation(pos, indentation, lineAdded) { + var indentationString = getIndentationString(indentation, options); + if (lineAdded) { + recordReplace(pos, 0, indentationString); + } + else { + var tokenStart = sourceFile.getLineAndCharacterOfPosition(pos); + if (indentation !== tokenStart.character) { + var startLinePosition = ts.getStartPositionOfLine(tokenStart.line, sourceFile); + recordReplace(startLinePosition, tokenStart.character, indentationString); + } + } + } + function indentMultilineComment(commentRange, indentation, firstLineIsIndented) { + var startLine = sourceFile.getLineAndCharacterOfPosition(commentRange.pos).line; + var endLine = sourceFile.getLineAndCharacterOfPosition(commentRange.end).line; + var parts; + if (startLine === endLine) { + if (!firstLineIsIndented) { + insertIndentation(commentRange.pos, indentation, false); + } + return; + } + else { + parts = []; + var startPos = commentRange.pos; + for (var line = startLine; line < endLine; ++line) { + var endOfLine = ts.getEndLinePosition(line, sourceFile); + parts.push({ pos: startPos, end: endOfLine }); + startPos = ts.getStartPositionOfLine(line + 1, sourceFile); + } + parts.push({ pos: startPos, end: commentRange.end }); + } + var startLinePos = ts.getStartPositionOfLine(startLine, sourceFile); + var nonWhitespaceColumnInFirstPart = formatting.SmartIndenter.findFirstNonWhitespaceCharacterAndColumn(startLinePos, parts[0].pos, sourceFile, options); + if (indentation === nonWhitespaceColumnInFirstPart.column) { + return; + } + var startIndex = 0; + if (firstLineIsIndented) { + startIndex = 1; + startLine++; + } + var delta = indentation - nonWhitespaceColumnInFirstPart.column; + for (var i = startIndex, len = parts.length; i < len; ++i, ++startLine) { + var startLinePos_1 = ts.getStartPositionOfLine(startLine, sourceFile); + var nonWhitespaceCharacterAndColumn = i === 0 + ? nonWhitespaceColumnInFirstPart + : formatting.SmartIndenter.findFirstNonWhitespaceCharacterAndColumn(parts[i].pos, parts[i].end, sourceFile, options); + var newIndentation = nonWhitespaceCharacterAndColumn.column + delta; + if (newIndentation > 0) { + var indentationString = getIndentationString(newIndentation, options); + recordReplace(startLinePos_1, nonWhitespaceCharacterAndColumn.character, indentationString); + } + else { + recordDelete(startLinePos_1, nonWhitespaceCharacterAndColumn.character); + } + } + } + function trimTrailingWhitespacesForLines(line1, line2, range) { + for (var line = line1; line < line2; ++line) { + var lineStartPosition = ts.getStartPositionOfLine(line, sourceFile); + var lineEndPosition = ts.getEndLinePosition(line, sourceFile); + if (range && ts.isComment(range.kind) && range.pos <= lineEndPosition && range.end > lineEndPosition) { + continue; + } + var pos = lineEndPosition; + while (pos >= lineStartPosition && ts.isWhiteSpace(sourceFile.text.charCodeAt(pos))) { + pos--; + } + if (pos !== lineEndPosition) { + ts.Debug.assert(pos === lineStartPosition || !ts.isWhiteSpace(sourceFile.text.charCodeAt(pos))); + recordDelete(pos + 1, lineEndPosition - pos); + } + } + } + function newTextChange(start, len, newText) { + return { span: ts.createTextSpan(start, len), newText: newText }; + } + function recordDelete(start, len) { + if (len) { + edits.push(newTextChange(start, len, "")); + } + } + function recordReplace(start, len, newText) { + if (len || newText) { + edits.push(newTextChange(start, len, newText)); + } + } + function applyRuleEdits(rule, previousRange, previousStartLine, currentRange, currentStartLine) { + var between; + switch (rule.Operation.Action) { + case 1: + return; + case 8: + if (previousRange.end !== currentRange.pos) { + recordDelete(previousRange.end, currentRange.pos - previousRange.end); + } + break; + case 4: + if (rule.Flag !== 1 && previousStartLine !== currentStartLine) { + return; + } + var lineDelta = currentStartLine - previousStartLine; + if (lineDelta !== 1) { + recordReplace(previousRange.end, currentRange.pos - previousRange.end, options.NewLineCharacter); + } + break; + case 2: + if (rule.Flag !== 1 && previousStartLine !== currentStartLine) { + return; + } + var posDelta = currentRange.pos - previousRange.end; + if (posDelta !== 1 || sourceFile.text.charCodeAt(previousRange.end) !== 32) { + recordReplace(previousRange.end, currentRange.pos - previousRange.end, " "); + } + break; + } + } + } + function isSomeBlock(kind) { + switch (kind) { + case 179: + case 206: + return true; + } + return false; + } + function getOpenTokenForList(node, list) { + switch (node.kind) { + case 135: + case 200: + case 162: + case 134: + case 133: + case 163: + if (node.typeParameters === list) { + return 24; + } + else if (node.parameters === list) { + return 16; + } + break; + case 157: + case 158: + if (node.typeArguments === list) { + return 24; + } + else if (node.arguments === list) { + return 16; + } + break; + case 141: + if (node.typeArguments === list) { + return 24; + } + } + return 0; + } + function getCloseTokenForOpenToken(kind) { + switch (kind) { + case 16: + return 17; + case 24: + return 25; + } + return 0; + } + var internedSizes; + var internedTabsIndentation; + var internedSpacesIndentation; + function getIndentationString(indentation, options) { + var resetInternedStrings = !internedSizes || (internedSizes.tabSize !== options.TabSize || internedSizes.indentSize !== options.IndentSize); + if (resetInternedStrings) { + internedSizes = { tabSize: options.TabSize, indentSize: options.IndentSize }; + internedTabsIndentation = internedSpacesIndentation = undefined; + } + if (!options.ConvertTabsToSpaces) { + var tabs = Math.floor(indentation / options.TabSize); + var spaces = indentation - tabs * options.TabSize; + var tabString; + if (!internedTabsIndentation) { + internedTabsIndentation = []; + } + if (internedTabsIndentation[tabs] === undefined) { + internedTabsIndentation[tabs] = tabString = repeat('\t', tabs); + } + else { + tabString = internedTabsIndentation[tabs]; + } + return spaces ? tabString + repeat(" ", spaces) : tabString; + } + else { + var spacesString; + var quotient = Math.floor(indentation / options.IndentSize); + var remainder = indentation % options.IndentSize; + if (!internedSpacesIndentation) { + internedSpacesIndentation = []; + } + if (internedSpacesIndentation[quotient] === undefined) { + spacesString = repeat(" ", options.IndentSize * quotient); + internedSpacesIndentation[quotient] = spacesString; + } + else { + spacesString = internedSpacesIndentation[quotient]; + } + return remainder ? spacesString + repeat(" ", remainder) : spacesString; + } + function repeat(value, count) { + var s = ""; + for (var i = 0; i < count; ++i) { + s += value; + } + return s; + } + } + formatting.getIndentationString = getIndentationString; + })(formatting = ts.formatting || (ts.formatting = {})); +})(ts || (ts = {})); +/// +var ts; +(function (ts) { + var formatting; + (function (formatting) { + var SmartIndenter; + (function (SmartIndenter) { + function getIndentation(position, sourceFile, options) { + if (position > sourceFile.text.length) { + return 0; + } + var precedingToken = ts.findPrecedingToken(position, sourceFile); + if (!precedingToken) { + return 0; + } + var precedingTokenIsLiteral = precedingToken.kind === 8 || + precedingToken.kind === 9 || + precedingToken.kind === 10 || + precedingToken.kind === 11 || + precedingToken.kind === 12 || + precedingToken.kind === 13; + if (precedingTokenIsLiteral && precedingToken.getStart(sourceFile) <= position && precedingToken.end > position) { + return 0; + } + var lineAtPosition = sourceFile.getLineAndCharacterOfPosition(position).line; + if (precedingToken.kind === 23 && precedingToken.parent.kind !== 169) { + var actualIndentation = getActualIndentationForListItemBeforeComma(precedingToken, sourceFile, options); + if (actualIndentation !== -1) { + return actualIndentation; + } + } + var previous; + var current = precedingToken; + var currentStart; + var indentationDelta; + while (current) { + if (ts.positionBelongsToNode(current, position, sourceFile) && shouldIndentChildNode(current.kind, previous ? previous.kind : 0)) { + currentStart = getStartLineAndCharacterForNode(current, sourceFile); + if (nextTokenIsCurlyBraceOnSameLineAsCursor(precedingToken, current, lineAtPosition, sourceFile)) { + indentationDelta = 0; + } + else { + indentationDelta = lineAtPosition !== currentStart.line ? options.IndentSize : 0; + } + break; + } + var actualIndentation = getActualIndentationForListItem(current, sourceFile, options); + if (actualIndentation !== -1) { + return actualIndentation; + } + previous = current; + current = current.parent; + } + if (!current) { + return 0; + } + return getIndentationForNodeWorker(current, currentStart, undefined, indentationDelta, sourceFile, options); + } + SmartIndenter.getIndentation = getIndentation; + function getIndentationForNode(n, ignoreActualIndentationRange, sourceFile, options) { + var start = sourceFile.getLineAndCharacterOfPosition(n.getStart(sourceFile)); + return getIndentationForNodeWorker(n, start, ignoreActualIndentationRange, 0, sourceFile, options); + } + SmartIndenter.getIndentationForNode = getIndentationForNode; + function getIndentationForNodeWorker(current, currentStart, ignoreActualIndentationRange, indentationDelta, sourceFile, options) { + var parent = current.parent; + var parentStart; + while (parent) { + var useActualIndentation = true; + if (ignoreActualIndentationRange) { + var start = current.getStart(sourceFile); + useActualIndentation = start < ignoreActualIndentationRange.pos || start > ignoreActualIndentationRange.end; + } + if (useActualIndentation) { + var actualIndentation = getActualIndentationForListItem(current, sourceFile, options); + if (actualIndentation !== -1) { + return actualIndentation + indentationDelta; + } + } + parentStart = getParentStart(parent, current, sourceFile); + var parentAndChildShareLine = parentStart.line === currentStart.line || + childStartsOnTheSameLineWithElseInIfStatement(parent, current, currentStart.line, sourceFile); + if (useActualIndentation) { + var actualIndentation = getActualIndentationForNode(current, parent, currentStart, parentAndChildShareLine, sourceFile, options); + if (actualIndentation !== -1) { + return actualIndentation + indentationDelta; + } + } + if (shouldIndentChildNode(parent.kind, current.kind) && !parentAndChildShareLine) { + indentationDelta += options.IndentSize; + } + current = parent; + currentStart = parentStart; + parent = current.parent; + } + return indentationDelta; + } + function getParentStart(parent, child, sourceFile) { + var containingList = getContainingList(child, sourceFile); + if (containingList) { + return sourceFile.getLineAndCharacterOfPosition(containingList.pos); + } + return sourceFile.getLineAndCharacterOfPosition(parent.getStart(sourceFile)); + } + function getActualIndentationForListItemBeforeComma(commaToken, sourceFile, options) { + var commaItemInfo = ts.findListItemInfo(commaToken); + if (commaItemInfo && commaItemInfo.listItemIndex > 0) { + return deriveActualIndentationFromList(commaItemInfo.list.getChildren(), commaItemInfo.listItemIndex - 1, sourceFile, options); + } + else { + return -1; + } + } + function getActualIndentationForNode(current, parent, currentLineAndChar, parentAndChildShareLine, sourceFile, options) { + var useActualIndentation = (ts.isDeclaration(current) || ts.isStatement(current)) && + (parent.kind === 227 || !parentAndChildShareLine); + if (!useActualIndentation) { + return -1; + } + return findColumnForFirstNonWhitespaceCharacterInLine(currentLineAndChar, sourceFile, options); + } + function nextTokenIsCurlyBraceOnSameLineAsCursor(precedingToken, current, lineAtPosition, sourceFile) { + var nextToken = ts.findNextToken(precedingToken, current); + if (!nextToken) { + return false; + } + if (nextToken.kind === 14) { + return true; + } + else if (nextToken.kind === 15) { + var nextTokenStartLine = getStartLineAndCharacterForNode(nextToken, sourceFile).line; + return lineAtPosition === nextTokenStartLine; + } + return false; + } + function getStartLineAndCharacterForNode(n, sourceFile) { + return sourceFile.getLineAndCharacterOfPosition(n.getStart(sourceFile)); + } + function childStartsOnTheSameLineWithElseInIfStatement(parent, child, childStartLine, sourceFile) { + if (parent.kind === 183 && parent.elseStatement === child) { + var elseKeyword = ts.findChildOfKind(parent, 76, sourceFile); + ts.Debug.assert(elseKeyword !== undefined); + var elseKeywordStartLine = getStartLineAndCharacterForNode(elseKeyword, sourceFile).line; + return elseKeywordStartLine === childStartLine; + } + return false; + } + SmartIndenter.childStartsOnTheSameLineWithElseInIfStatement = childStartsOnTheSameLineWithElseInIfStatement; + function getContainingList(node, sourceFile) { + if (node.parent) { + switch (node.parent.kind) { + case 141: + if (node.parent.typeArguments && + ts.rangeContainsStartEnd(node.parent.typeArguments, node.getStart(sourceFile), node.getEnd())) { + return node.parent.typeArguments; + } + break; + case 154: + return node.parent.properties; + case 153: + return node.parent.elements; + case 200: + case 162: + case 163: + case 134: + case 133: + case 138: + case 139: { + var start = node.getStart(sourceFile); + if (node.parent.typeParameters && + ts.rangeContainsStartEnd(node.parent.typeParameters, start, node.getEnd())) { + return node.parent.typeParameters; + } + if (ts.rangeContainsStartEnd(node.parent.parameters, start, node.getEnd())) { + return node.parent.parameters; + } + break; + } + case 158: + case 157: { + var start = node.getStart(sourceFile); + if (node.parent.typeArguments && + ts.rangeContainsStartEnd(node.parent.typeArguments, start, node.getEnd())) { + return node.parent.typeArguments; + } + if (node.parent.arguments && + ts.rangeContainsStartEnd(node.parent.arguments, start, node.getEnd())) { + return node.parent.arguments; + } + break; + } + } + } + return undefined; + } + function getActualIndentationForListItem(node, sourceFile, options) { + var containingList = getContainingList(node, sourceFile); + return containingList ? getActualIndentationFromList(containingList) : -1; + function getActualIndentationFromList(list) { + var index = ts.indexOf(list, node); + return index !== -1 ? deriveActualIndentationFromList(list, index, sourceFile, options) : -1; + } + } + function deriveActualIndentationFromList(list, index, sourceFile, options) { + ts.Debug.assert(index >= 0 && index < list.length); + var node = list[index]; + var lineAndCharacter = getStartLineAndCharacterForNode(node, sourceFile); + for (var i = index - 1; i >= 0; --i) { + if (list[i].kind === 23) { + continue; + } + var prevEndLine = sourceFile.getLineAndCharacterOfPosition(list[i].end).line; + if (prevEndLine !== lineAndCharacter.line) { + return findColumnForFirstNonWhitespaceCharacterInLine(lineAndCharacter, sourceFile, options); + } + lineAndCharacter = getStartLineAndCharacterForNode(list[i], sourceFile); + } + return -1; + } + function findColumnForFirstNonWhitespaceCharacterInLine(lineAndCharacter, sourceFile, options) { + var lineStart = sourceFile.getPositionOfLineAndCharacter(lineAndCharacter.line, 0); + return findFirstNonWhitespaceColumn(lineStart, lineStart + lineAndCharacter.character, sourceFile, options); + } + function findFirstNonWhitespaceCharacterAndColumn(startPos, endPos, sourceFile, options) { + var character = 0; + var column = 0; + for (var pos = startPos; pos < endPos; ++pos) { + var ch = sourceFile.text.charCodeAt(pos); + if (!ts.isWhiteSpace(ch)) { + break; + } + if (ch === 9) { + column += options.TabSize + (column % options.TabSize); + } + else { + column++; + } + character++; + } + return { column: column, character: character }; + } + SmartIndenter.findFirstNonWhitespaceCharacterAndColumn = findFirstNonWhitespaceCharacterAndColumn; + function findFirstNonWhitespaceColumn(startPos, endPos, sourceFile, options) { + return findFirstNonWhitespaceCharacterAndColumn(startPos, endPos, sourceFile, options).column; + } + SmartIndenter.findFirstNonWhitespaceColumn = findFirstNonWhitespaceColumn; + function nodeContentIsAlwaysIndented(kind) { + switch (kind) { + case 201: + case 202: + case 204: + case 153: + case 179: + case 206: + case 154: + case 145: + case 147: + case 207: + case 221: + case 220: + case 161: + case 157: + case 158: + case 180: + case 198: + case 214: + case 191: + case 170: + case 151: + case 150: + return true; + } + return false; + } + function shouldIndentChildNode(parent, child) { + if (nodeContentIsAlwaysIndented(parent)) { + return true; + } + switch (parent) { + case 184: + case 185: + case 187: + case 188: + case 186: + case 183: + case 200: + case 162: + case 134: + case 133: + case 138: + case 163: + case 135: + case 136: + case 137: + return child !== 179; + default: + return false; + } + } + SmartIndenter.shouldIndentChildNode = shouldIndentChildNode; + })(SmartIndenter = formatting.SmartIndenter || (formatting.SmartIndenter = {})); + })(formatting = ts.formatting || (ts.formatting = {})); +})(ts || (ts = {})); +/// +var __extends = this.__extends || function (d, b) { + for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; + function __() { this.constructor = d; } + __.prototype = b.prototype; + d.prototype = new __(); +}; +/// +/// +/// +/// +/// +/// +/// +/// +/// +var ts; +(function (ts) { + ts.servicesVersion = "0.4"; + var ScriptSnapshot; + (function (ScriptSnapshot) { + var StringScriptSnapshot = (function () { + function StringScriptSnapshot(text) { + this.text = text; + this._lineStartPositions = undefined; + } + StringScriptSnapshot.prototype.getText = function (start, end) { + return this.text.substring(start, end); + }; + StringScriptSnapshot.prototype.getLength = function () { + return this.text.length; + }; + StringScriptSnapshot.prototype.getChangeRange = function (oldSnapshot) { + return undefined; + }; + return StringScriptSnapshot; + })(); + function fromString(text) { + return new StringScriptSnapshot(text); + } + ScriptSnapshot.fromString = fromString; + })(ScriptSnapshot = ts.ScriptSnapshot || (ts.ScriptSnapshot = {})); + var scanner = ts.createScanner(2, true); + var emptyArray = []; + function createNode(kind, pos, end, flags, parent) { + var node = new (ts.getNodeConstructor(kind))(); + node.pos = pos; + node.end = end; + node.flags = flags; + node.parent = parent; + return node; + } + var NodeObject = (function () { + function NodeObject() { + } + NodeObject.prototype.getSourceFile = function () { + return ts.getSourceFileOfNode(this); + }; + NodeObject.prototype.getStart = function (sourceFile) { + return ts.getTokenPosOfNode(this, sourceFile); + }; + NodeObject.prototype.getFullStart = function () { + return this.pos; + }; + NodeObject.prototype.getEnd = function () { + return this.end; + }; + NodeObject.prototype.getWidth = function (sourceFile) { + return this.getEnd() - this.getStart(sourceFile); + }; + NodeObject.prototype.getFullWidth = function () { + return this.end - this.getFullStart(); + }; + NodeObject.prototype.getLeadingTriviaWidth = function (sourceFile) { + return this.getStart(sourceFile) - this.pos; + }; + NodeObject.prototype.getFullText = function (sourceFile) { + return (sourceFile || this.getSourceFile()).text.substring(this.pos, this.end); + }; + NodeObject.prototype.getText = function (sourceFile) { + return (sourceFile || this.getSourceFile()).text.substring(this.getStart(), this.getEnd()); + }; + NodeObject.prototype.addSyntheticNodes = function (nodes, pos, end) { + scanner.setTextPos(pos); + while (pos < end) { + var token = scanner.scan(); + var textPos = scanner.getTextPos(); + nodes.push(createNode(token, pos, textPos, 1024, this)); + pos = textPos; + } + return pos; + }; + NodeObject.prototype.createSyntaxList = function (nodes) { + var list = createNode(228, nodes.pos, nodes.end, 1024, this); + list._children = []; + var pos = nodes.pos; + for (var _i = 0; _i < nodes.length; _i++) { + var node = nodes[_i]; + if (pos < node.pos) { + pos = this.addSyntheticNodes(list._children, pos, node.pos); + } + list._children.push(node); + pos = node.end; + } + if (pos < nodes.end) { + this.addSyntheticNodes(list._children, pos, nodes.end); + } + return list; + }; + NodeObject.prototype.createChildren = function (sourceFile) { + var _this = this; + var children; + if (this.kind >= 126) { + scanner.setText((sourceFile || this.getSourceFile()).text); + children = []; + var pos = this.pos; + var processNode = function (node) { + if (pos < node.pos) { + pos = _this.addSyntheticNodes(children, pos, node.pos); + } + children.push(node); + pos = node.end; + }; + var processNodes = function (nodes) { + if (pos < nodes.pos) { + pos = _this.addSyntheticNodes(children, pos, nodes.pos); + } + children.push(_this.createSyntaxList(nodes)); + pos = nodes.end; + }; + ts.forEachChild(this, processNode, processNodes); + if (pos < this.end) { + this.addSyntheticNodes(children, pos, this.end); + } + scanner.setText(undefined); + } + this._children = children || emptyArray; + }; + NodeObject.prototype.getChildCount = function (sourceFile) { + if (!this._children) + this.createChildren(sourceFile); + return this._children.length; + }; + NodeObject.prototype.getChildAt = function (index, sourceFile) { + if (!this._children) + this.createChildren(sourceFile); + return this._children[index]; + }; + NodeObject.prototype.getChildren = function (sourceFile) { + if (!this._children) + this.createChildren(sourceFile); + return this._children; + }; + NodeObject.prototype.getFirstToken = function (sourceFile) { + var children = this.getChildren(); + for (var _i = 0; _i < children.length; _i++) { + var child = children[_i]; + if (child.kind < 126) { + return child; + } + return child.getFirstToken(sourceFile); + } + }; + NodeObject.prototype.getLastToken = function (sourceFile) { + var children = this.getChildren(sourceFile); + for (var i = children.length - 1; i >= 0; i--) { + var child = children[i]; + if (child.kind < 126) { + return child; + } + return child.getLastToken(sourceFile); + } + }; + return NodeObject; + })(); + var SymbolObject = (function () { + function SymbolObject(flags, name) { + this.flags = flags; + this.name = name; + } + SymbolObject.prototype.getFlags = function () { + return this.flags; + }; + SymbolObject.prototype.getName = function () { + return this.name; + }; + SymbolObject.prototype.getDeclarations = function () { + return this.declarations; + }; + SymbolObject.prototype.getDocumentationComment = function () { + if (this.documentationComment === undefined) { + this.documentationComment = getJsDocCommentsFromDeclarations(this.declarations, this.name, !(this.flags & 4)); + } + return this.documentationComment; + }; + return SymbolObject; + })(); + function getJsDocCommentsFromDeclarations(declarations, name, canUseParsedParamTagComments) { + var documentationComment = []; + var docComments = getJsDocCommentsSeparatedByNewLines(); + ts.forEach(docComments, function (docComment) { + if (documentationComment.length) { + documentationComment.push(ts.lineBreakPart()); + } + documentationComment.push(docComment); + }); + return documentationComment; + function getJsDocCommentsSeparatedByNewLines() { + var paramTag = "@param"; + var jsDocCommentParts = []; + ts.forEach(declarations, function (declaration, indexOfDeclaration) { + if (ts.indexOf(declarations, declaration) === indexOfDeclaration) { + var sourceFileOfDeclaration = ts.getSourceFileOfNode(declaration); + if (canUseParsedParamTagComments && declaration.kind === 129) { + ts.forEach(getJsDocCommentTextRange(declaration.parent, sourceFileOfDeclaration), function (jsDocCommentTextRange) { + var cleanedParamJsDocComment = getCleanedParamJsDocComment(jsDocCommentTextRange.pos, jsDocCommentTextRange.end, sourceFileOfDeclaration); + if (cleanedParamJsDocComment) { + jsDocCommentParts.push.apply(jsDocCommentParts, cleanedParamJsDocComment); + } + }); + } + if (declaration.kind === 205 && declaration.body.kind === 205) { + return; + } + while (declaration.kind === 205 && declaration.parent.kind === 205) { + declaration = declaration.parent; + } + ts.forEach(getJsDocCommentTextRange(declaration.kind === 198 ? declaration.parent.parent : declaration, sourceFileOfDeclaration), function (jsDocCommentTextRange) { + var cleanedJsDocComment = getCleanedJsDocComment(jsDocCommentTextRange.pos, jsDocCommentTextRange.end, sourceFileOfDeclaration); + if (cleanedJsDocComment) { + jsDocCommentParts.push.apply(jsDocCommentParts, cleanedJsDocComment); + } + }); + } + }); + return jsDocCommentParts; + function getJsDocCommentTextRange(node, sourceFile) { + return ts.map(ts.getJsDocComments(node, sourceFile), function (jsDocComment) { + return { + pos: jsDocComment.pos + "/*".length, + end: jsDocComment.end - "*/".length + }; + }); + } + function consumeWhiteSpacesOnTheLine(pos, end, sourceFile, maxSpacesToRemove) { + if (maxSpacesToRemove !== undefined) { + end = Math.min(end, pos + maxSpacesToRemove); + } + for (; pos < end; pos++) { + var ch = sourceFile.text.charCodeAt(pos); + if (!ts.isWhiteSpace(ch) || ts.isLineBreak(ch)) { + return pos; + } + } + return end; + } + function consumeLineBreaks(pos, end, sourceFile) { + while (pos < end && ts.isLineBreak(sourceFile.text.charCodeAt(pos))) { + pos++; + } + return pos; + } + function isName(pos, end, sourceFile, name) { + return pos + name.length < end && + sourceFile.text.substr(pos, name.length) === name && + (ts.isWhiteSpace(sourceFile.text.charCodeAt(pos + name.length)) || + ts.isLineBreak(sourceFile.text.charCodeAt(pos + name.length))); + } + function isParamTag(pos, end, sourceFile) { + return isName(pos, end, sourceFile, paramTag); + } + function pushDocCommentLineText(docComments, text, blankLineCount) { + while (blankLineCount--) { + docComments.push(ts.textPart("")); + } + docComments.push(ts.textPart(text)); + } + function getCleanedJsDocComment(pos, end, sourceFile) { + var spacesToRemoveAfterAsterisk; + var docComments = []; + var blankLineCount = 0; + var isInParamTag = false; + while (pos < end) { + var docCommentTextOfLine = ""; + pos = consumeWhiteSpacesOnTheLine(pos, end, sourceFile); + if (pos < end && sourceFile.text.charCodeAt(pos) === 42) { + var lineStartPos = pos + 1; + pos = consumeWhiteSpacesOnTheLine(pos + 1, end, sourceFile, spacesToRemoveAfterAsterisk); + if (spacesToRemoveAfterAsterisk === undefined && pos < end && !ts.isLineBreak(sourceFile.text.charCodeAt(pos))) { + spacesToRemoveAfterAsterisk = pos - lineStartPos; + } + } + else if (spacesToRemoveAfterAsterisk === undefined) { + spacesToRemoveAfterAsterisk = 0; + } + while (pos < end && !ts.isLineBreak(sourceFile.text.charCodeAt(pos))) { + var ch = sourceFile.text.charAt(pos); + if (ch === "@") { + if (isParamTag(pos, end, sourceFile)) { + isInParamTag = true; + pos += paramTag.length; + continue; + } + else { + isInParamTag = false; + } + } + if (!isInParamTag) { + docCommentTextOfLine += ch; + } + pos++; + } + pos = consumeLineBreaks(pos, end, sourceFile); + if (docCommentTextOfLine) { + pushDocCommentLineText(docComments, docCommentTextOfLine, blankLineCount); + blankLineCount = 0; + } + else if (!isInParamTag && docComments.length) { + blankLineCount++; + } + } + return docComments; + } + function getCleanedParamJsDocComment(pos, end, sourceFile) { + var paramHelpStringMargin; + var paramDocComments = []; + while (pos < end) { + if (isParamTag(pos, end, sourceFile)) { + var blankLineCount = 0; + var recordedParamTag = false; + pos = consumeWhiteSpaces(pos + paramTag.length); + if (pos >= end) { + break; + } + if (sourceFile.text.charCodeAt(pos) === 123) { + pos++; + for (var curlies = 1; pos < end; pos++) { + var charCode = sourceFile.text.charCodeAt(pos); + if (charCode === 123) { + curlies++; + continue; + } + if (charCode === 125) { + curlies--; + if (curlies === 0) { + pos++; + break; + } + else { + continue; + } + } + if (charCode === 64) { + break; + } + } + pos = consumeWhiteSpaces(pos); + if (pos >= end) { + break; + } + } + if (isName(pos, end, sourceFile, name)) { + pos = consumeWhiteSpaces(pos + name.length); + if (pos >= end) { + break; + } + var paramHelpString = ""; + var firstLineParamHelpStringPos = pos; + while (pos < end) { + var ch = sourceFile.text.charCodeAt(pos); + if (ts.isLineBreak(ch)) { + if (paramHelpString) { + pushDocCommentLineText(paramDocComments, paramHelpString, blankLineCount); + paramHelpString = ""; + blankLineCount = 0; + recordedParamTag = true; + } + else if (recordedParamTag) { + blankLineCount++; + } + setPosForParamHelpStringOnNextLine(firstLineParamHelpStringPos); + continue; + } + if (ch === 64) { + break; + } + paramHelpString += sourceFile.text.charAt(pos); + pos++; + } + if (paramHelpString) { + pushDocCommentLineText(paramDocComments, paramHelpString, blankLineCount); + } + paramHelpStringMargin = undefined; + } + if (sourceFile.text.charCodeAt(pos) === 64) { + continue; + } + } + pos++; + } + return paramDocComments; + function consumeWhiteSpaces(pos) { + while (pos < end && ts.isWhiteSpace(sourceFile.text.charCodeAt(pos))) { + pos++; + } + return pos; + } + function setPosForParamHelpStringOnNextLine(firstLineParamHelpStringPos) { + pos = consumeLineBreaks(pos, end, sourceFile); + if (pos >= end) { + return; + } + if (paramHelpStringMargin === undefined) { + paramHelpStringMargin = sourceFile.getLineAndCharacterOfPosition(firstLineParamHelpStringPos).character; + } + var startOfLinePos = pos; + pos = consumeWhiteSpacesOnTheLine(pos, end, sourceFile, paramHelpStringMargin); + if (pos >= end) { + return; + } + var consumedSpaces = pos - startOfLinePos; + if (consumedSpaces < paramHelpStringMargin) { + var ch = sourceFile.text.charCodeAt(pos); + if (ch === 42) { + pos = consumeWhiteSpacesOnTheLine(pos + 1, end, sourceFile, paramHelpStringMargin - consumedSpaces - 1); + } + } + } + } + } + } + var TypeObject = (function () { + function TypeObject(checker, flags) { + this.checker = checker; + this.flags = flags; + } + TypeObject.prototype.getFlags = function () { + return this.flags; + }; + TypeObject.prototype.getSymbol = function () { + return this.symbol; + }; + TypeObject.prototype.getProperties = function () { + return this.checker.getPropertiesOfType(this); + }; + TypeObject.prototype.getProperty = function (propertyName) { + return this.checker.getPropertyOfType(this, propertyName); + }; + TypeObject.prototype.getApparentProperties = function () { + return this.checker.getAugmentedPropertiesOfType(this); + }; + TypeObject.prototype.getCallSignatures = function () { + return this.checker.getSignaturesOfType(this, 0); + }; + TypeObject.prototype.getConstructSignatures = function () { + return this.checker.getSignaturesOfType(this, 1); + }; + TypeObject.prototype.getStringIndexType = function () { + return this.checker.getIndexTypeOfType(this, 0); + }; + TypeObject.prototype.getNumberIndexType = function () { + return this.checker.getIndexTypeOfType(this, 1); + }; + return TypeObject; + })(); + var SignatureObject = (function () { + function SignatureObject(checker) { + this.checker = checker; + } + SignatureObject.prototype.getDeclaration = function () { + return this.declaration; + }; + SignatureObject.prototype.getTypeParameters = function () { + return this.typeParameters; + }; + SignatureObject.prototype.getParameters = function () { + return this.parameters; + }; + SignatureObject.prototype.getReturnType = function () { + return this.checker.getReturnTypeOfSignature(this); + }; + SignatureObject.prototype.getDocumentationComment = function () { + if (this.documentationComment === undefined) { + this.documentationComment = this.declaration ? getJsDocCommentsFromDeclarations([this.declaration], undefined, false) : []; + } + return this.documentationComment; + }; + return SignatureObject; + })(); + var SourceFileObject = (function (_super) { + __extends(SourceFileObject, _super); + function SourceFileObject() { + _super.apply(this, arguments); + } + SourceFileObject.prototype.update = function (newText, textChangeRange) { + return ts.updateSourceFile(this, newText, textChangeRange); + }; + SourceFileObject.prototype.getLineAndCharacterOfPosition = function (position) { + return ts.getLineAndCharacterOfPosition(this, position); + }; + SourceFileObject.prototype.getLineStarts = function () { + return ts.getLineStarts(this); + }; + SourceFileObject.prototype.getPositionOfLineAndCharacter = function (line, character) { + return ts.getPositionOfLineAndCharacter(this, line, character); + }; + SourceFileObject.prototype.getNamedDeclarations = function () { + if (!this.namedDeclarations) { + var sourceFile = this; + var namedDeclarations = []; + ts.forEachChild(sourceFile, function visit(node) { + switch (node.kind) { + case 200: + case 134: + case 133: + var functionDeclaration = node; + if (functionDeclaration.name && functionDeclaration.name.getFullWidth() > 0) { + var lastDeclaration = namedDeclarations.length > 0 ? + namedDeclarations[namedDeclarations.length - 1] : + undefined; + if (lastDeclaration && functionDeclaration.symbol === lastDeclaration.symbol) { + if (functionDeclaration.body && !lastDeclaration.body) { + namedDeclarations[namedDeclarations.length - 1] = functionDeclaration; + } + } + else { + namedDeclarations.push(functionDeclaration); + } + ts.forEachChild(node, visit); + } + break; + case 201: + case 202: + case 203: + case 204: + case 205: + case 208: + case 217: + case 213: + case 208: + case 210: + case 211: + case 136: + case 137: + case 145: + if (node.name) { + namedDeclarations.push(node); + } + case 135: + case 180: + case 199: + case 150: + case 151: + case 206: + ts.forEachChild(node, visit); + break; + case 179: + if (ts.isFunctionBlock(node)) { + ts.forEachChild(node, visit); + } + break; + case 129: + if (!(node.flags & 112)) { + break; + } + case 198: + case 152: + if (ts.isBindingPattern(node.name)) { + ts.forEachChild(node.name, visit); + break; + } + case 226: + case 132: + case 131: + namedDeclarations.push(node); + break; + case 215: + if (node.exportClause) { + ts.forEach(node.exportClause.elements, visit); + } + break; + case 209: + var importClause = node.importClause; + if (importClause) { + if (importClause.name) { + namedDeclarations.push(importClause); + } + if (importClause.namedBindings) { + if (importClause.namedBindings.kind === 211) { + namedDeclarations.push(importClause.namedBindings); + } + else { + ts.forEach(importClause.namedBindings.elements, visit); + } + } + } + break; + } + }); + this.namedDeclarations = namedDeclarations; + } + return this.namedDeclarations; + }; + return SourceFileObject; + })(NodeObject); + var TextChange = (function () { + function TextChange() { + } + return TextChange; + })(); + ts.TextChange = TextChange; + (function (SymbolDisplayPartKind) { + SymbolDisplayPartKind[SymbolDisplayPartKind["aliasName"] = 0] = "aliasName"; + SymbolDisplayPartKind[SymbolDisplayPartKind["className"] = 1] = "className"; + SymbolDisplayPartKind[SymbolDisplayPartKind["enumName"] = 2] = "enumName"; + SymbolDisplayPartKind[SymbolDisplayPartKind["fieldName"] = 3] = "fieldName"; + SymbolDisplayPartKind[SymbolDisplayPartKind["interfaceName"] = 4] = "interfaceName"; + SymbolDisplayPartKind[SymbolDisplayPartKind["keyword"] = 5] = "keyword"; + SymbolDisplayPartKind[SymbolDisplayPartKind["lineBreak"] = 6] = "lineBreak"; + SymbolDisplayPartKind[SymbolDisplayPartKind["numericLiteral"] = 7] = "numericLiteral"; + SymbolDisplayPartKind[SymbolDisplayPartKind["stringLiteral"] = 8] = "stringLiteral"; + SymbolDisplayPartKind[SymbolDisplayPartKind["localName"] = 9] = "localName"; + SymbolDisplayPartKind[SymbolDisplayPartKind["methodName"] = 10] = "methodName"; + SymbolDisplayPartKind[SymbolDisplayPartKind["moduleName"] = 11] = "moduleName"; + SymbolDisplayPartKind[SymbolDisplayPartKind["operator"] = 12] = "operator"; + SymbolDisplayPartKind[SymbolDisplayPartKind["parameterName"] = 13] = "parameterName"; + SymbolDisplayPartKind[SymbolDisplayPartKind["propertyName"] = 14] = "propertyName"; + SymbolDisplayPartKind[SymbolDisplayPartKind["punctuation"] = 15] = "punctuation"; + SymbolDisplayPartKind[SymbolDisplayPartKind["space"] = 16] = "space"; + SymbolDisplayPartKind[SymbolDisplayPartKind["text"] = 17] = "text"; + SymbolDisplayPartKind[SymbolDisplayPartKind["typeParameterName"] = 18] = "typeParameterName"; + SymbolDisplayPartKind[SymbolDisplayPartKind["enumMemberName"] = 19] = "enumMemberName"; + SymbolDisplayPartKind[SymbolDisplayPartKind["functionName"] = 20] = "functionName"; + SymbolDisplayPartKind[SymbolDisplayPartKind["regularExpressionLiteral"] = 21] = "regularExpressionLiteral"; + })(ts.SymbolDisplayPartKind || (ts.SymbolDisplayPartKind = {})); + var SymbolDisplayPartKind = ts.SymbolDisplayPartKind; + (function (TokenClass) { + TokenClass[TokenClass["Punctuation"] = 0] = "Punctuation"; + TokenClass[TokenClass["Keyword"] = 1] = "Keyword"; + TokenClass[TokenClass["Operator"] = 2] = "Operator"; + TokenClass[TokenClass["Comment"] = 3] = "Comment"; + TokenClass[TokenClass["Whitespace"] = 4] = "Whitespace"; + TokenClass[TokenClass["Identifier"] = 5] = "Identifier"; + TokenClass[TokenClass["NumberLiteral"] = 6] = "NumberLiteral"; + TokenClass[TokenClass["StringLiteral"] = 7] = "StringLiteral"; + TokenClass[TokenClass["RegExpLiteral"] = 8] = "RegExpLiteral"; + })(ts.TokenClass || (ts.TokenClass = {})); + var TokenClass = ts.TokenClass; + var ScriptElementKind = (function () { + function ScriptElementKind() { + } + ScriptElementKind.unknown = ""; + ScriptElementKind.keyword = "keyword"; + ScriptElementKind.scriptElement = "script"; + ScriptElementKind.moduleElement = "module"; + ScriptElementKind.classElement = "class"; + ScriptElementKind.interfaceElement = "interface"; + ScriptElementKind.typeElement = "type"; + ScriptElementKind.enumElement = "enum"; + ScriptElementKind.variableElement = "var"; + ScriptElementKind.localVariableElement = "local var"; + ScriptElementKind.functionElement = "function"; + ScriptElementKind.localFunctionElement = "local function"; + ScriptElementKind.memberFunctionElement = "method"; + ScriptElementKind.memberGetAccessorElement = "getter"; + ScriptElementKind.memberSetAccessorElement = "setter"; + ScriptElementKind.memberVariableElement = "property"; + ScriptElementKind.constructorImplementationElement = "constructor"; + ScriptElementKind.callSignatureElement = "call"; + ScriptElementKind.indexSignatureElement = "index"; + ScriptElementKind.constructSignatureElement = "construct"; + ScriptElementKind.parameterElement = "parameter"; + ScriptElementKind.typeParameterElement = "type parameter"; + ScriptElementKind.primitiveType = "primitive type"; + ScriptElementKind.label = "label"; + ScriptElementKind.alias = "alias"; + ScriptElementKind.constElement = "const"; + ScriptElementKind.letElement = "let"; + return ScriptElementKind; + })(); + ts.ScriptElementKind = ScriptElementKind; + var ScriptElementKindModifier = (function () { + function ScriptElementKindModifier() { + } + ScriptElementKindModifier.none = ""; + ScriptElementKindModifier.publicMemberModifier = "public"; + ScriptElementKindModifier.privateMemberModifier = "private"; + ScriptElementKindModifier.protectedMemberModifier = "protected"; + ScriptElementKindModifier.exportedModifier = "export"; + ScriptElementKindModifier.ambientModifier = "declare"; + ScriptElementKindModifier.staticModifier = "static"; + return ScriptElementKindModifier; + })(); + ts.ScriptElementKindModifier = ScriptElementKindModifier; + var ClassificationTypeNames = (function () { + function ClassificationTypeNames() { + } + ClassificationTypeNames.comment = "comment"; + ClassificationTypeNames.identifier = "identifier"; + ClassificationTypeNames.keyword = "keyword"; + ClassificationTypeNames.numericLiteral = "number"; + ClassificationTypeNames.operator = "operator"; + ClassificationTypeNames.stringLiteral = "string"; + ClassificationTypeNames.whiteSpace = "whitespace"; + ClassificationTypeNames.text = "text"; + ClassificationTypeNames.punctuation = "punctuation"; + ClassificationTypeNames.className = "class name"; + ClassificationTypeNames.enumName = "enum name"; + ClassificationTypeNames.interfaceName = "interface name"; + ClassificationTypeNames.moduleName = "module name"; + ClassificationTypeNames.typeParameterName = "type parameter name"; + ClassificationTypeNames.typeAlias = "type alias name"; + return ClassificationTypeNames; + })(); + ts.ClassificationTypeNames = ClassificationTypeNames; + function displayPartsToString(displayParts) { + if (displayParts) { + return ts.map(displayParts, function (displayPart) { return displayPart.text; }).join(""); + } + return ""; + } + ts.displayPartsToString = displayPartsToString; + function isLocalVariableOrFunction(symbol) { + if (symbol.parent) { + return false; + } + return ts.forEach(symbol.declarations, function (declaration) { + if (declaration.kind === 162) { + return true; + } + if (declaration.kind !== 198 && declaration.kind !== 200) { + return false; + } + for (var parent_7 = declaration.parent; !ts.isFunctionBlock(parent_7); parent_7 = parent_7.parent) { + if (parent_7.kind === 227 || parent_7.kind === 206) { + return false; + } + } + return true; + }); + } + function getDefaultCompilerOptions() { + return { + target: 1, + module: 0 + }; + } + ts.getDefaultCompilerOptions = getDefaultCompilerOptions; + var OperationCanceledException = (function () { + function OperationCanceledException() { + } + return OperationCanceledException; + })(); + ts.OperationCanceledException = OperationCanceledException; + var CancellationTokenObject = (function () { + function CancellationTokenObject(cancellationToken) { + this.cancellationToken = cancellationToken; + } + CancellationTokenObject.prototype.isCancellationRequested = function () { + return this.cancellationToken && this.cancellationToken.isCancellationRequested(); + }; + CancellationTokenObject.prototype.throwIfCancellationRequested = function () { + if (this.isCancellationRequested()) { + throw new OperationCanceledException(); + } + }; + CancellationTokenObject.None = new CancellationTokenObject(null); + return CancellationTokenObject; + })(); + ts.CancellationTokenObject = CancellationTokenObject; + var HostCache = (function () { + function HostCache(host) { + this.host = host; + this.fileNameToEntry = {}; + var rootFileNames = host.getScriptFileNames(); + for (var _i = 0; _i < rootFileNames.length; _i++) { + var fileName = rootFileNames[_i]; + this.createEntry(fileName); + } + this._compilationSettings = host.getCompilationSettings() || getDefaultCompilerOptions(); + } + HostCache.prototype.compilationSettings = function () { + return this._compilationSettings; + }; + HostCache.prototype.createEntry = function (fileName) { + var entry; + var scriptSnapshot = this.host.getScriptSnapshot(fileName); + if (scriptSnapshot) { + entry = { + hostFileName: fileName, + version: this.host.getScriptVersion(fileName), + scriptSnapshot: scriptSnapshot + }; + } + return this.fileNameToEntry[ts.normalizeSlashes(fileName)] = entry; + }; + HostCache.prototype.getEntry = function (fileName) { + return ts.lookUp(this.fileNameToEntry, ts.normalizeSlashes(fileName)); + }; + HostCache.prototype.contains = function (fileName) { + return ts.hasProperty(this.fileNameToEntry, ts.normalizeSlashes(fileName)); + }; + HostCache.prototype.getOrCreateEntry = function (fileName) { + if (this.contains(fileName)) { + return this.getEntry(fileName); + } + return this.createEntry(fileName); + }; + HostCache.prototype.getRootFileNames = function () { + var _this = this; + var fileNames = []; + ts.forEachKey(this.fileNameToEntry, function (key) { + if (ts.hasProperty(_this.fileNameToEntry, key) && _this.fileNameToEntry[key]) + fileNames.push(key); + }); + return fileNames; + }; + HostCache.prototype.getVersion = function (fileName) { + var file = this.getEntry(fileName); + return file && file.version; + }; + HostCache.prototype.getScriptSnapshot = function (fileName) { + var file = this.getEntry(fileName); + return file && file.scriptSnapshot; + }; + return HostCache; + })(); + var SyntaxTreeCache = (function () { + function SyntaxTreeCache(host) { + this.host = host; + } + SyntaxTreeCache.prototype.getCurrentSourceFile = function (fileName) { + var scriptSnapshot = this.host.getScriptSnapshot(fileName); + if (!scriptSnapshot) { + throw new Error("Could not find file: '" + fileName + "'."); + } + var version = this.host.getScriptVersion(fileName); + var sourceFile; + if (this.currentFileName !== fileName) { + sourceFile = createLanguageServiceSourceFile(fileName, scriptSnapshot, 2, version, true); + } + else if (this.currentFileVersion !== version) { + var editRange = scriptSnapshot.getChangeRange(this.currentFileScriptSnapshot); + sourceFile = updateLanguageServiceSourceFile(this.currentSourceFile, scriptSnapshot, version, editRange); + } + if (sourceFile) { + this.currentFileVersion = version; + this.currentFileName = fileName; + this.currentFileScriptSnapshot = scriptSnapshot; + this.currentSourceFile = sourceFile; + } + return this.currentSourceFile; + }; + return SyntaxTreeCache; + })(); + function setSourceFileFields(sourceFile, scriptSnapshot, version) { + sourceFile.version = version; + sourceFile.scriptSnapshot = scriptSnapshot; + } + function transpile(input, compilerOptions, fileName, diagnostics) { + var options = compilerOptions ? ts.clone(compilerOptions) : getDefaultCompilerOptions(); + options.separateCompilation = true; + options.allowNonTsExtensions = true; + var inputFileName = fileName || "module.ts"; + var sourceFile = ts.createSourceFile(inputFileName, input, options.target); + if (diagnostics && sourceFile.parseDiagnostics) { + diagnostics.push.apply(diagnostics, sourceFile.parseDiagnostics); + } + var outputText; + var compilerHost = { + getSourceFile: function (fileName, target) { return fileName === inputFileName ? sourceFile : undefined; }, + writeFile: function (name, text, writeByteOrderMark) { + ts.Debug.assert(outputText === undefined, "Unexpected multiple outputs for the file: " + name); + outputText = text; + }, + getDefaultLibFileName: function () { return "lib.d.ts"; }, + useCaseSensitiveFileNames: function () { return false; }, + getCanonicalFileName: function (fileName) { return fileName; }, + getCurrentDirectory: function () { return ""; }, + getNewLine: function () { return "\r\n"; } + }; + var program = ts.createProgram([inputFileName], options, compilerHost); + if (diagnostics) { + diagnostics.push.apply(diagnostics, program.getGlobalDiagnostics()); + } + program.emit(); + ts.Debug.assert(outputText !== undefined, "Output generation failed"); + return outputText; + } + ts.transpile = transpile; + function createLanguageServiceSourceFile(fileName, scriptSnapshot, scriptTarget, version, setNodeParents) { + var sourceFile = ts.createSourceFile(fileName, scriptSnapshot.getText(0, scriptSnapshot.getLength()), scriptTarget, setNodeParents); + setSourceFileFields(sourceFile, scriptSnapshot, version); + sourceFile.nameTable = sourceFile.identifiers; + return sourceFile; + } + ts.createLanguageServiceSourceFile = createLanguageServiceSourceFile; + ts.disableIncrementalParsing = false; + function updateLanguageServiceSourceFile(sourceFile, scriptSnapshot, version, textChangeRange, aggressiveChecks) { + if (textChangeRange) { + if (version !== sourceFile.version) { + if (!ts.disableIncrementalParsing) { + var newSourceFile = ts.updateSourceFile(sourceFile, scriptSnapshot.getText(0, scriptSnapshot.getLength()), textChangeRange, aggressiveChecks); + setSourceFileFields(newSourceFile, scriptSnapshot, version); + newSourceFile.nameTable = undefined; + return newSourceFile; + } + } + } + return createLanguageServiceSourceFile(sourceFile.fileName, scriptSnapshot, sourceFile.languageVersion, version, true); + } + ts.updateLanguageServiceSourceFile = updateLanguageServiceSourceFile; + function createDocumentRegistry() { + var buckets = {}; + function getKeyFromCompilationSettings(settings) { + return "_" + settings.target; + } + function getBucketForCompilationSettings(settings, createIfMissing) { + var key = getKeyFromCompilationSettings(settings); + var bucket = ts.lookUp(buckets, key); + if (!bucket && createIfMissing) { + buckets[key] = bucket = {}; + } + return bucket; + } + function reportStats() { + var bucketInfoArray = Object.keys(buckets).filter(function (name) { return name && name.charAt(0) === '_'; }).map(function (name) { + var entries = ts.lookUp(buckets, name); + var sourceFiles = []; + for (var i in entries) { + var entry = entries[i]; + sourceFiles.push({ + name: i, + refCount: entry.languageServiceRefCount, + references: entry.owners.slice(0) + }); + } + sourceFiles.sort(function (x, y) { return y.refCount - x.refCount; }); + return { + bucket: name, + sourceFiles: sourceFiles + }; + }); + return JSON.stringify(bucketInfoArray, null, 2); + } + function acquireDocument(fileName, compilationSettings, scriptSnapshot, version) { + return acquireOrUpdateDocument(fileName, compilationSettings, scriptSnapshot, version, true); + } + function updateDocument(fileName, compilationSettings, scriptSnapshot, version) { + return acquireOrUpdateDocument(fileName, compilationSettings, scriptSnapshot, version, false); + } + function acquireOrUpdateDocument(fileName, compilationSettings, scriptSnapshot, version, acquiring) { + var bucket = getBucketForCompilationSettings(compilationSettings, true); + var entry = ts.lookUp(bucket, fileName); + if (!entry) { + ts.Debug.assert(acquiring, "How could we be trying to update a document that the registry doesn't have?"); + var sourceFile = createLanguageServiceSourceFile(fileName, scriptSnapshot, compilationSettings.target, version, false); + bucket[fileName] = entry = { + sourceFile: sourceFile, + languageServiceRefCount: 0, + owners: [] + }; + } + else { + if (entry.sourceFile.version !== version) { + entry.sourceFile = updateLanguageServiceSourceFile(entry.sourceFile, scriptSnapshot, version, scriptSnapshot.getChangeRange(entry.sourceFile.scriptSnapshot)); + } + } + if (acquiring) { + entry.languageServiceRefCount++; + } + return entry.sourceFile; + } + function releaseDocument(fileName, compilationSettings) { + var bucket = getBucketForCompilationSettings(compilationSettings, false); + ts.Debug.assert(bucket !== undefined); + var entry = ts.lookUp(bucket, fileName); + entry.languageServiceRefCount--; + ts.Debug.assert(entry.languageServiceRefCount >= 0); + if (entry.languageServiceRefCount === 0) { + delete bucket[fileName]; + } + } + return { + acquireDocument: acquireDocument, + updateDocument: updateDocument, + releaseDocument: releaseDocument, + reportStats: reportStats + }; + } + ts.createDocumentRegistry = createDocumentRegistry; + function preProcessFile(sourceText, readImportFiles) { + if (readImportFiles === void 0) { readImportFiles = true; } + var referencedFiles = []; + var importedFiles = []; + var isNoDefaultLib = false; + function processTripleSlashDirectives() { + var commentRanges = ts.getLeadingCommentRanges(sourceText, 0); + ts.forEach(commentRanges, function (commentRange) { + var comment = sourceText.substring(commentRange.pos, commentRange.end); + var referencePathMatchResult = ts.getFileReferenceFromReferencePath(comment, commentRange); + if (referencePathMatchResult) { + isNoDefaultLib = referencePathMatchResult.isNoDefaultLib; + var fileReference = referencePathMatchResult.fileReference; + if (fileReference) { + referencedFiles.push(fileReference); + } + } + }); + } + function recordModuleName() { + var importPath = scanner.getTokenValue(); + var pos = scanner.getTokenPos(); + importedFiles.push({ + fileName: importPath, + pos: pos, + end: pos + importPath.length + }); + } + function processImport() { + scanner.setText(sourceText); + var token = scanner.scan(); + while (token !== 1) { + if (token === 85) { + token = scanner.scan(); + if (token === 8) { + recordModuleName(); + continue; + } + else { + if (token === 65) { + token = scanner.scan(); + if (token === 124) { + token = scanner.scan(); + if (token === 8) { + recordModuleName(); + continue; + } + } + else if (token === 53) { + token = scanner.scan(); + if (token === 118) { + token = scanner.scan(); + if (token === 16) { + token = scanner.scan(); + if (token === 8) { + recordModuleName(); + continue; + } + } + } + } + else if (token === 23) { + token = scanner.scan(); + } + else { + continue; + } + } + if (token === 14) { + token = scanner.scan(); + while (token !== 15) { + token = scanner.scan(); + } + if (token === 15) { + token = scanner.scan(); + if (token === 124) { + token = scanner.scan(); + if (token === 8) { + recordModuleName(); + } + } + } + } + else if (token === 35) { + token = scanner.scan(); + if (token === 102) { + token = scanner.scan(); + if (token === 65) { + token = scanner.scan(); + if (token === 124) { + token = scanner.scan(); + if (token === 8) { + recordModuleName(); + } + } + } + } + } + } + } + else if (token === 78) { + token = scanner.scan(); + if (token === 14) { + token = scanner.scan(); + while (token !== 15) { + token = scanner.scan(); + } + if (token === 15) { + token = scanner.scan(); + if (token === 124) { + token = scanner.scan(); + if (token === 8) { + recordModuleName(); + } + } + } + } + else if (token === 35) { + token = scanner.scan(); + if (token === 124) { + token = scanner.scan(); + if (token === 8) { + recordModuleName(); + } + } + } + } + token = scanner.scan(); + } + scanner.setText(undefined); + } + if (readImportFiles) { + processImport(); + } + processTripleSlashDirectives(); + return { referencedFiles: referencedFiles, importedFiles: importedFiles, isLibFile: isNoDefaultLib }; + } + ts.preProcessFile = preProcessFile; + function getTargetLabel(referenceNode, labelName) { + while (referenceNode) { + if (referenceNode.kind === 194 && referenceNode.label.text === labelName) { + return referenceNode.label; + } + referenceNode = referenceNode.parent; + } + return undefined; + } + function isJumpStatementTarget(node) { + return node.kind === 65 && + (node.parent.kind === 190 || node.parent.kind === 189) && + node.parent.label === node; + } + function isLabelOfLabeledStatement(node) { + return node.kind === 65 && + node.parent.kind === 194 && + node.parent.label === node; + } + function isLabeledBy(node, labelName) { + for (var owner = node.parent; owner.kind === 194; owner = owner.parent) { + if (owner.label.text === labelName) { + return true; + } + } + return false; + } + function isLabelName(node) { + return isLabelOfLabeledStatement(node) || isJumpStatementTarget(node); + } + function isRightSideOfQualifiedName(node) { + return node.parent.kind === 126 && node.parent.right === node; + } + function isRightSideOfPropertyAccess(node) { + return node && node.parent && node.parent.kind === 155 && node.parent.name === node; + } + function isCallExpressionTarget(node) { + if (isRightSideOfPropertyAccess(node)) { + node = node.parent; + } + return node && node.parent && node.parent.kind === 157 && node.parent.expression === node; + } + function isNewExpressionTarget(node) { + if (isRightSideOfPropertyAccess(node)) { + node = node.parent; + } + return node && node.parent && node.parent.kind === 158 && node.parent.expression === node; + } + function isNameOfModuleDeclaration(node) { + return node.parent.kind === 205 && node.parent.name === node; + } + function isNameOfFunctionDeclaration(node) { + return node.kind === 65 && + ts.isFunctionLike(node.parent) && node.parent.name === node; + } + function isNameOfPropertyAssignment(node) { + return (node.kind === 65 || node.kind === 8 || node.kind === 7) && + (node.parent.kind === 224 || node.parent.kind === 225) && node.parent.name === node; + } + function isLiteralNameOfPropertyDeclarationOrIndexAccess(node) { + if (node.kind === 8 || node.kind === 7) { + switch (node.parent.kind) { + case 132: + case 131: + case 224: + case 226: + case 134: + case 133: + case 136: + case 137: + case 205: + return node.parent.name === node; + case 156: + return node.parent.argumentExpression === node; + } + } + return false; + } + function isNameOfExternalModuleImportOrDeclaration(node) { + if (node.kind === 8) { + return isNameOfModuleDeclaration(node) || + (ts.isExternalModuleImportEqualsDeclaration(node.parent.parent) && ts.getExternalModuleImportEqualsDeclarationExpression(node.parent.parent) === node); + } + return false; + } + function isInsideComment(sourceFile, token, position) { + return position <= token.getStart(sourceFile) && + (isInsideCommentRange(ts.getTrailingCommentRanges(sourceFile.text, token.getFullStart())) || + isInsideCommentRange(ts.getLeadingCommentRanges(sourceFile.text, token.getFullStart()))); + function isInsideCommentRange(comments) { + return ts.forEach(comments, function (comment) { + if (comment.pos < position && position < comment.end) { + return true; + } + else if (position === comment.end) { + var text = sourceFile.text; + var width = comment.end - comment.pos; + if (width <= 2 || text.charCodeAt(comment.pos + 1) === 47) { + return true; + } + else { + return !(text.charCodeAt(comment.end - 1) === 47 && + text.charCodeAt(comment.end - 2) === 42); + } + } + return false; + }); + } + } + var keywordCompletions = []; + for (var i = 66; i <= 125; i++) { + keywordCompletions.push({ + name: ts.tokenToString(i), + kind: ScriptElementKind.keyword, + kindModifiers: ScriptElementKindModifier.none + }); + } + function getContainerNode(node) { + while (true) { + node = node.parent; + if (!node) { + return undefined; + } + switch (node.kind) { + case 227: + case 134: + case 133: + case 200: + case 162: + case 136: + case 137: + case 201: + case 202: + case 204: + case 205: + return node; + } + } + } + ts.getContainerNode = getContainerNode; + function getNodeKind(node) { + switch (node.kind) { + case 205: return ScriptElementKind.moduleElement; + case 201: return ScriptElementKind.classElement; + case 202: return ScriptElementKind.interfaceElement; + case 203: return ScriptElementKind.typeElement; + case 204: return ScriptElementKind.enumElement; + case 198: + return ts.isConst(node) + ? ScriptElementKind.constElement + : ts.isLet(node) + ? ScriptElementKind.letElement + : ScriptElementKind.variableElement; + case 200: return ScriptElementKind.functionElement; + case 136: return ScriptElementKind.memberGetAccessorElement; + case 137: return ScriptElementKind.memberSetAccessorElement; + case 134: + case 133: + return ScriptElementKind.memberFunctionElement; + case 132: + case 131: + return ScriptElementKind.memberVariableElement; + case 140: return ScriptElementKind.indexSignatureElement; + case 139: return ScriptElementKind.constructSignatureElement; + case 138: return ScriptElementKind.callSignatureElement; + case 135: return ScriptElementKind.constructorImplementationElement; + case 128: return ScriptElementKind.typeParameterElement; + case 226: return ScriptElementKind.variableElement; + case 129: return (node.flags & 112) ? ScriptElementKind.memberVariableElement : ScriptElementKind.parameterElement; + case 208: + case 213: + case 210: + case 217: + case 211: + return ScriptElementKind.alias; + } + return ScriptElementKind.unknown; + } + ts.getNodeKind = getNodeKind; + function createLanguageService(host, documentRegistry) { + if (documentRegistry === void 0) { documentRegistry = createDocumentRegistry(); } + var syntaxTreeCache = new SyntaxTreeCache(host); + var ruleProvider; + var program; + var typeInfoResolver; + var useCaseSensitivefileNames = false; + var cancellationToken = new CancellationTokenObject(host.getCancellationToken && host.getCancellationToken()); + if (!ts.localizedDiagnosticMessages && host.getLocalizedDiagnosticMessages) { + ts.localizedDiagnosticMessages = host.getLocalizedDiagnosticMessages(); + } + function log(message) { + if (host.log) { + host.log(message); + } + } + function getCanonicalFileName(fileName) { + return useCaseSensitivefileNames ? fileName : fileName.toLowerCase(); + } + function getValidSourceFile(fileName) { + fileName = ts.normalizeSlashes(fileName); + var sourceFile = program.getSourceFile(getCanonicalFileName(fileName)); + if (!sourceFile) { + throw new Error("Could not find file: '" + fileName + "'."); + } + return sourceFile; + } + function getRuleProvider(options) { + if (!ruleProvider) { + ruleProvider = new ts.formatting.RulesProvider(); + } + ruleProvider.ensureUpToDate(options); + return ruleProvider; + } + function synchronizeHostData() { + var hostCache = new HostCache(host); + if (programUpToDate()) { + return; + } + var oldSettings = program && program.getCompilerOptions(); + var newSettings = hostCache.compilationSettings(); + var changesInCompilationSettingsAffectSyntax = oldSettings && oldSettings.target !== newSettings.target; + var newProgram = ts.createProgram(hostCache.getRootFileNames(), newSettings, { + getSourceFile: getOrCreateSourceFile, + getCancellationToken: function () { return cancellationToken; }, + getCanonicalFileName: function (fileName) { return useCaseSensitivefileNames ? fileName : fileName.toLowerCase(); }, + useCaseSensitiveFileNames: function () { return useCaseSensitivefileNames; }, + getNewLine: function () { return host.getNewLine ? host.getNewLine() : "\r\n"; }, + getDefaultLibFileName: function (options) { return host.getDefaultLibFileName(options); }, + writeFile: function (fileName, data, writeByteOrderMark) { }, + getCurrentDirectory: function () { return host.getCurrentDirectory(); } + }); + if (program) { + var oldSourceFiles = program.getSourceFiles(); + for (var _i = 0; _i < oldSourceFiles.length; _i++) { + var oldSourceFile = oldSourceFiles[_i]; + var fileName = oldSourceFile.fileName; + if (!newProgram.getSourceFile(fileName) || changesInCompilationSettingsAffectSyntax) { + documentRegistry.releaseDocument(fileName, oldSettings); + } + } + } + program = newProgram; + typeInfoResolver = program.getTypeChecker(); + return; + function getOrCreateSourceFile(fileName) { + var hostFileInformation = hostCache.getOrCreateEntry(fileName); + if (!hostFileInformation) { + return undefined; + } + if (!changesInCompilationSettingsAffectSyntax) { + var oldSourceFile = program && program.getSourceFile(fileName); + if (oldSourceFile) { + return documentRegistry.updateDocument(fileName, newSettings, hostFileInformation.scriptSnapshot, hostFileInformation.version); + } + } + return documentRegistry.acquireDocument(fileName, newSettings, hostFileInformation.scriptSnapshot, hostFileInformation.version); + } + function sourceFileUpToDate(sourceFile) { + return sourceFile && sourceFile.version === hostCache.getVersion(sourceFile.fileName); + } + function programUpToDate() { + if (!program) { + return false; + } + var rootFileNames = hostCache.getRootFileNames(); + if (program.getSourceFiles().length !== rootFileNames.length) { + return false; + } + for (var _i = 0; _i < rootFileNames.length; _i++) { + var fileName = rootFileNames[_i]; + if (!sourceFileUpToDate(program.getSourceFile(fileName))) { + return false; + } + } + return ts.compareDataObjects(program.getCompilerOptions(), hostCache.compilationSettings()); + } + } + function getProgram() { + synchronizeHostData(); + return program; + } + function cleanupSemanticCache() { + if (program) { + typeInfoResolver = program.getTypeChecker(); + } + } + function dispose() { + if (program) { + ts.forEach(program.getSourceFiles(), function (f) { + return documentRegistry.releaseDocument(f.fileName, program.getCompilerOptions()); + }); + } + } + function getSyntacticDiagnostics(fileName) { + synchronizeHostData(); + return program.getSyntacticDiagnostics(getValidSourceFile(fileName)); + } + function getSemanticDiagnostics(fileName) { + synchronizeHostData(); + var targetSourceFile = getValidSourceFile(fileName); + var semanticDiagnostics = program.getSemanticDiagnostics(targetSourceFile); + if (!program.getCompilerOptions().declaration) { + return semanticDiagnostics; + } + var declarationDiagnostics = program.getDeclarationDiagnostics(targetSourceFile); + return ts.concatenate(semanticDiagnostics, declarationDiagnostics); + } + function getCompilerOptionsDiagnostics() { + synchronizeHostData(); + return program.getGlobalDiagnostics(); + } + function getCompletionEntryDisplayName(symbol, target, performCharacterChecks) { + var displayName = symbol.getName(); + if (!displayName) { + return undefined; + } + if (displayName === "default") { + var localSymbol = ts.getLocalSymbolForExportDefault(symbol); + if (localSymbol && localSymbol.name) { + displayName = symbol.valueDeclaration.localSymbol.name; + } + } + var firstCharCode = displayName.charCodeAt(0); + if ((symbol.flags & 1536) && (firstCharCode === 39 || firstCharCode === 34)) { + return undefined; + } + if (displayName && displayName.length >= 2 && firstCharCode === displayName.charCodeAt(displayName.length - 1) && + (firstCharCode === 39 || firstCharCode === 34)) { + displayName = displayName.substring(1, displayName.length - 1); + } + if (!displayName) { + return undefined; + } + if (performCharacterChecks) { + if (!ts.isIdentifierStart(displayName.charCodeAt(0), target)) { + return undefined; + } + for (var i = 1, n = displayName.length; i < n; i++) { + if (!ts.isIdentifierPart(displayName.charCodeAt(i), target)) { + return undefined; + } + } + } + return ts.unescapeIdentifier(displayName); + } + function createCompletionEntry(symbol, typeChecker, location) { + var displayName = getCompletionEntryDisplayName(symbol, program.getCompilerOptions().target, true); + if (!displayName) { + return undefined; + } + return { + name: displayName, + kind: getSymbolKind(symbol, typeChecker, location), + kindModifiers: getSymbolModifiers(symbol) + }; + } + function getCompletionData(fileName, position) { + var syntacticStart = new Date().getTime(); + var sourceFile = getValidSourceFile(fileName); + var start = new Date().getTime(); + var currentToken = ts.getTokenAtPosition(sourceFile, position); + log("getCompletionData: Get current token: " + (new Date().getTime() - start)); + start = new Date().getTime(); + var insideComment = isInsideComment(sourceFile, currentToken, position); + log("getCompletionData: Is inside comment: " + (new Date().getTime() - start)); + if (insideComment) { + log("Returning an empty list because completion was inside a comment."); + return undefined; + } + start = new Date().getTime(); + var previousToken = ts.findPrecedingToken(position, sourceFile); + log("getCompletionData: Get previous token 1: " + (new Date().getTime() - start)); + var contextToken = previousToken; + if (contextToken && position <= contextToken.end && ts.isWord(contextToken.kind)) { + var start_1 = new Date().getTime(); + contextToken = ts.findPrecedingToken(contextToken.getFullStart(), sourceFile); + log("getCompletionData: Get previous token 2: " + (new Date().getTime() - start_1)); + } + if (contextToken && isCompletionListBlocker(contextToken)) { + log("Returning an empty list because completion was requested in an invalid position."); + return undefined; + } + var node = currentToken; + var isRightOfDot = false; + if (contextToken && contextToken.kind === 20 && contextToken.parent.kind === 155) { + node = contextToken.parent.expression; + isRightOfDot = true; + } + else if (contextToken && contextToken.kind === 20 && contextToken.parent.kind === 126) { + node = contextToken.parent.left; + isRightOfDot = true; + } + var location = ts.getTouchingPropertyName(sourceFile, position); + var target = program.getCompilerOptions().target; + var semanticStart = new Date().getTime(); + var isMemberCompletion; + var isNewIdentifierLocation; + var symbols; + if (isRightOfDot) { + symbols = []; + isMemberCompletion = true; + isNewIdentifierLocation = false; + if (node.kind === 65 || node.kind === 126 || node.kind === 155) { + var symbol = typeInfoResolver.getSymbolAtLocation(node); + if (symbol && symbol.flags & 8388608) { + symbol = typeInfoResolver.getAliasedSymbol(symbol); + } + if (symbol && symbol.flags & 1952) { + ts.forEachValue(symbol.exports, function (symbol) { + if (typeInfoResolver.isValidPropertyAccess((node.parent), symbol.name)) { + symbols.push(symbol); + } + }); + } + } + var type = typeInfoResolver.getTypeAtLocation(node); + if (type) { + ts.forEach(type.getApparentProperties(), function (symbol) { + if (typeInfoResolver.isValidPropertyAccess((node.parent), symbol.name)) { + symbols.push(symbol); + } + }); + } + } + else { + var containingObjectLiteral = getContainingObjectLiteralApplicableForCompletion(contextToken); + if (containingObjectLiteral) { + isMemberCompletion = true; + isNewIdentifierLocation = true; + var contextualType = typeInfoResolver.getContextualType(containingObjectLiteral); + if (!contextualType) { + return undefined; + } + var contextualTypeMembers = typeInfoResolver.getPropertiesOfType(contextualType); + if (contextualTypeMembers && contextualTypeMembers.length > 0) { + symbols = filterContextualMembersList(contextualTypeMembers, containingObjectLiteral.properties); + } + } + else if (ts.getAncestor(contextToken, 210)) { + isMemberCompletion = true; + isNewIdentifierLocation = true; + if (showCompletionsInImportsClause(contextToken)) { + var importDeclaration = ts.getAncestor(contextToken, 209); + ts.Debug.assert(importDeclaration !== undefined); + var exports_2 = typeInfoResolver.getExportsOfExternalModule(importDeclaration); + symbols = filterModuleExports(exports_2, importDeclaration); + } + } + else { + isMemberCompletion = false; + isNewIdentifierLocation = isNewIdentifierDefinitionLocation(contextToken); + if (previousToken !== contextToken) { + ts.Debug.assert(!!previousToken, "Expected 'contextToken' to be defined when different from 'previousToken'."); + } + var adjustedPosition = previousToken !== contextToken ? + previousToken.getStart() : + position; + var scopeNode = getScopeNode(contextToken, adjustedPosition, sourceFile) || sourceFile; + var symbolMeanings = 793056 | 107455 | 1536 | 8388608; + symbols = typeInfoResolver.getSymbolsInScope(scopeNode, symbolMeanings); + } + } + log("getCompletionData: Semantic work: " + (new Date().getTime() - semanticStart)); + return { symbols: symbols, isMemberCompletion: isMemberCompletion, isNewIdentifierLocation: isNewIdentifierLocation, location: location }; + function getScopeNode(initialToken, position, sourceFile) { + var scope = initialToken; + while (scope && !ts.positionBelongsToNode(scope, position, sourceFile)) { + scope = scope.parent; + } + return scope; + } + function isCompletionListBlocker(previousToken) { + var start = new Date().getTime(); + var result = isInStringOrRegularExpressionOrTemplateLiteral(previousToken) || + isIdentifierDefinitionLocation(previousToken) || + isRightOfIllegalDot(previousToken); + log("getCompletionsAtPosition: isCompletionListBlocker: " + (new Date().getTime() - start)); + return result; + } + function showCompletionsInImportsClause(node) { + if (node) { + if (node.kind === 14 || node.kind === 23) { + return node.parent.kind === 212; + } + } + return false; + } + function isNewIdentifierDefinitionLocation(previousToken) { + if (previousToken) { + var containingNodeKind = previousToken.parent.kind; + switch (previousToken.kind) { + case 23: + return containingNodeKind === 157 + || containingNodeKind === 135 + || containingNodeKind === 158 + || containingNodeKind === 153 + || containingNodeKind === 169; + case 16: + return containingNodeKind === 157 + || containingNodeKind === 135 + || containingNodeKind === 158 + || containingNodeKind === 161; + case 18: + return containingNodeKind === 153; + case 117: + return true; + case 20: + return containingNodeKind === 205; + case 14: + return containingNodeKind === 201; + case 53: + return containingNodeKind === 198 + || containingNodeKind === 169; + case 11: + return containingNodeKind === 171; + case 12: + return containingNodeKind === 176; + case 109: + case 107: + case 108: + return containingNodeKind === 132; + } + switch (previousToken.getText()) { + case "public": + case "protected": + case "private": + return true; + } + } + return false; + } + function isInStringOrRegularExpressionOrTemplateLiteral(previousToken) { + if (previousToken.kind === 8 + || previousToken.kind === 9 + || ts.isTemplateLiteralKind(previousToken.kind)) { + var start_2 = previousToken.getStart(); + var end = previousToken.getEnd(); + if (start_2 < position && position < end) { + return true; + } + else if (position === end) { + return !!previousToken.isUnterminated; + } + } + return false; + } + function getContainingObjectLiteralApplicableForCompletion(previousToken) { + // The locations in an object literal expression that are applicable for completion are property name definition locations. + if (previousToken) { + var parent_8 = previousToken.parent; + switch (previousToken.kind) { + case 14: + case 23: + if (parent_8 && parent_8.kind === 154) { + return parent_8; + } + break; + } + } + return undefined; + } + function isFunction(kind) { + switch (kind) { + case 162: + case 163: + case 200: + case 134: + case 133: + case 136: + case 137: + case 138: + case 139: + case 140: + return true; + } + return false; + } + function isIdentifierDefinitionLocation(previousToken) { + if (previousToken) { + var containingNodeKind = previousToken.parent.kind; + switch (previousToken.kind) { + case 23: + return containingNodeKind === 198 || + containingNodeKind === 199 || + containingNodeKind === 180 || + containingNodeKind === 204 || + isFunction(containingNodeKind) || + containingNodeKind === 201 || + containingNodeKind === 200 || + containingNodeKind === 202 || + containingNodeKind === 151 || + containingNodeKind === 150; + case 20: + return containingNodeKind === 151; + case 18: + return containingNodeKind === 151; + case 16: + return containingNodeKind === 223 || + isFunction(containingNodeKind); + case 14: + return containingNodeKind === 204 || + containingNodeKind === 202 || + containingNodeKind === 145 || + containingNodeKind === 150; + case 22: + return containingNodeKind === 131 && + (previousToken.parent.parent.kind === 202 || + previousToken.parent.parent.kind === 145); + case 24: + return containingNodeKind === 201 || + containingNodeKind === 200 || + containingNodeKind === 202 || + isFunction(containingNodeKind); + case 110: + return containingNodeKind === 132; + case 21: + return containingNodeKind === 129 || + containingNodeKind === 135 || + (previousToken.parent.parent.kind === 151); + case 109: + case 107: + case 108: + return containingNodeKind === 129; + case 69: + case 77: + case 104: + case 83: + case 98: + case 116: + case 120: + case 85: + case 105: + case 70: + case 111: + return true; + } + switch (previousToken.getText()) { + case "class": + case "interface": + case "enum": + case "function": + case "var": + case "static": + case "let": + case "const": + case "yield": + return true; + } + } + return false; + } + function isRightOfIllegalDot(previousToken) { + if (previousToken && previousToken.kind === 7) { + var text = previousToken.getFullText(); + return text.charAt(text.length - 1) === "."; + } + return false; + } + function filterModuleExports(exports, importDeclaration) { + var exisingImports = {}; + if (!importDeclaration.importClause) { + return exports; + } + if (importDeclaration.importClause.namedBindings && + importDeclaration.importClause.namedBindings.kind === 212) { + ts.forEach(importDeclaration.importClause.namedBindings.elements, function (el) { + var name = el.propertyName || el.name; + exisingImports[name.text] = true; + }); + } + if (ts.isEmpty(exisingImports)) { + return exports; + } + return ts.filter(exports, function (e) { return !ts.lookUp(exisingImports, e.name); }); + } + function filterContextualMembersList(contextualMemberSymbols, existingMembers) { + if (!existingMembers || existingMembers.length === 0) { + return contextualMemberSymbols; + } + var existingMemberNames = {}; + ts.forEach(existingMembers, function (m) { + if (m.kind !== 224 && m.kind !== 225) { + return; + } + if (m.getStart() <= position && position <= m.getEnd()) { + return; + } + existingMemberNames[m.name.text] = true; + }); + var filteredMembers = []; + ts.forEach(contextualMemberSymbols, function (s) { + if (!existingMemberNames[s.name]) { + filteredMembers.push(s); + } + }); + return filteredMembers; + } + } + function getCompletionsAtPosition(fileName, position) { + synchronizeHostData(); + var completionData = getCompletionData(fileName, position); + if (!completionData) { + return undefined; + } + var symbols = completionData.symbols, isMemberCompletion = completionData.isMemberCompletion, isNewIdentifierLocation = completionData.isNewIdentifierLocation, location = completionData.location; + if (!symbols || symbols.length === 0) { + return undefined; + } + var entries = getCompletionEntriesFromSymbols(symbols); + if (!isMemberCompletion) { + ts.addRange(entries, keywordCompletions); + } + return { isMemberCompletion: isMemberCompletion, isNewIdentifierLocation: isNewIdentifierLocation, entries: entries }; + function getCompletionEntriesFromSymbols(symbols) { + var start = new Date().getTime(); + var entries = []; + var nameToSymbol = {}; + for (var _i = 0; _i < symbols.length; _i++) { + var symbol = symbols[_i]; + var entry = createCompletionEntry(symbol, typeInfoResolver, location); + if (entry) { + var id = ts.escapeIdentifier(entry.name); + if (!ts.lookUp(nameToSymbol, id)) { + entries.push(entry); + nameToSymbol[id] = symbol; + } + } + } + log("getCompletionsAtPosition: getCompletionEntriesFromSymbols: " + (new Date().getTime() - start)); + return entries; + } + } + function getCompletionEntryDetails(fileName, position, entryName) { + synchronizeHostData(); + var completionData = getCompletionData(fileName, position); + if (completionData) { + var symbols = completionData.symbols, location_2 = completionData.location; + var target = program.getCompilerOptions().target; + var symbol = ts.forEach(symbols, function (s) { return getCompletionEntryDisplayName(s, target, false) === entryName ? s : undefined; }); + if (symbol) { + var displayPartsDocumentationsAndSymbolKind = getSymbolDisplayPartsDocumentationAndSymbolKind(symbol, getValidSourceFile(fileName), location_2, typeInfoResolver, location_2, 7); + return { + name: entryName, + kind: displayPartsDocumentationsAndSymbolKind.symbolKind, + kindModifiers: getSymbolModifiers(symbol), + displayParts: displayPartsDocumentationsAndSymbolKind.displayParts, + documentation: displayPartsDocumentationsAndSymbolKind.documentation + }; + } + } + var keywordCompletion = ts.forEach(keywordCompletions, function (c) { return c.name === entryName; }); + if (keywordCompletion) { + return { + name: entryName, + kind: ScriptElementKind.keyword, + kindModifiers: ScriptElementKindModifier.none, + displayParts: [ts.displayPart(entryName, SymbolDisplayPartKind.keyword)], + documentation: undefined + }; + } + return undefined; + } + function getSymbolKind(symbol, typeResolver, location) { + var flags = symbol.getFlags(); + if (flags & 32) + return ScriptElementKind.classElement; + if (flags & 384) + return ScriptElementKind.enumElement; + if (flags & 524288) + return ScriptElementKind.typeElement; + if (flags & 64) + return ScriptElementKind.interfaceElement; + if (flags & 262144) + return ScriptElementKind.typeParameterElement; + var result = getSymbolKindOfConstructorPropertyMethodAccessorFunctionOrVar(symbol, flags, typeResolver, location); + if (result === ScriptElementKind.unknown) { + if (flags & 262144) + return ScriptElementKind.typeParameterElement; + if (flags & 8) + return ScriptElementKind.variableElement; + if (flags & 8388608) + return ScriptElementKind.alias; + if (flags & 1536) + return ScriptElementKind.moduleElement; + } + return result; + } + function getSymbolKindOfConstructorPropertyMethodAccessorFunctionOrVar(symbol, flags, typeResolver, location) { + if (typeResolver.isUndefinedSymbol(symbol)) { + return ScriptElementKind.variableElement; + } + if (typeResolver.isArgumentsSymbol(symbol)) { + return ScriptElementKind.localVariableElement; + } + if (flags & 3) { + if (ts.isFirstDeclarationOfSymbolParameter(symbol)) { + return ScriptElementKind.parameterElement; + } + else if (symbol.valueDeclaration && ts.isConst(symbol.valueDeclaration)) { + return ScriptElementKind.constElement; + } + else if (ts.forEach(symbol.declarations, ts.isLet)) { + return ScriptElementKind.letElement; + } + return isLocalVariableOrFunction(symbol) ? ScriptElementKind.localVariableElement : ScriptElementKind.variableElement; + } + if (flags & 16) + return isLocalVariableOrFunction(symbol) ? ScriptElementKind.localFunctionElement : ScriptElementKind.functionElement; + if (flags & 32768) + return ScriptElementKind.memberGetAccessorElement; + if (flags & 65536) + return ScriptElementKind.memberSetAccessorElement; + if (flags & 8192) + return ScriptElementKind.memberFunctionElement; + if (flags & 16384) + return ScriptElementKind.constructorImplementationElement; + if (flags & 4) { + if (flags & 268435456) { + var unionPropertyKind = ts.forEach(typeInfoResolver.getRootSymbols(symbol), function (rootSymbol) { + var rootSymbolFlags = rootSymbol.getFlags(); + if (rootSymbolFlags & (98308 | 3)) { + return ScriptElementKind.memberVariableElement; + } + ts.Debug.assert(!!(rootSymbolFlags & 8192)); + }); + if (!unionPropertyKind) { + var typeOfUnionProperty = typeInfoResolver.getTypeOfSymbolAtLocation(symbol, location); + if (typeOfUnionProperty.getCallSignatures().length) { + return ScriptElementKind.memberFunctionElement; + } + return ScriptElementKind.memberVariableElement; + } + return unionPropertyKind; + } + return ScriptElementKind.memberVariableElement; + } + return ScriptElementKind.unknown; + } + function getTypeKind(type) { + var flags = type.getFlags(); + if (flags & 128) + return ScriptElementKind.enumElement; + if (flags & 1024) + return ScriptElementKind.classElement; + if (flags & 2048) + return ScriptElementKind.interfaceElement; + if (flags & 512) + return ScriptElementKind.typeParameterElement; + if (flags & 1048703) + return ScriptElementKind.primitiveType; + if (flags & 256) + return ScriptElementKind.primitiveType; + return ScriptElementKind.unknown; + } + function getSymbolModifiers(symbol) { + return symbol && symbol.declarations && symbol.declarations.length > 0 + ? ts.getNodeModifiers(symbol.declarations[0]) + : ScriptElementKindModifier.none; + } + function getSymbolDisplayPartsDocumentationAndSymbolKind(symbol, sourceFile, enclosingDeclaration, typeResolver, location, semanticMeaning) { + if (semanticMeaning === void 0) { semanticMeaning = getMeaningFromLocation(location); } + var displayParts = []; + var documentation; + var symbolFlags = symbol.flags; + var symbolKind = getSymbolKindOfConstructorPropertyMethodAccessorFunctionOrVar(symbol, symbolFlags, typeResolver, location); + var hasAddedSymbolInfo; + var type; + if (symbolKind !== ScriptElementKind.unknown || symbolFlags & 32 || symbolFlags & 8388608) { + if (symbolKind === ScriptElementKind.memberGetAccessorElement || symbolKind === ScriptElementKind.memberSetAccessorElement) { + symbolKind = ScriptElementKind.memberVariableElement; + } + var signature; + type = typeResolver.getTypeOfSymbolAtLocation(symbol, location); + if (type) { + if (location.parent && location.parent.kind === 155) { + var right = location.parent.name; + if (right === location || (right && right.getFullWidth() === 0)) { + location = location.parent; + } + } + var callExpression; + if (location.kind === 157 || location.kind === 158) { + callExpression = location; + } + else if (isCallExpressionTarget(location) || isNewExpressionTarget(location)) { + callExpression = location.parent; + } + if (callExpression) { + var candidateSignatures = []; + signature = typeResolver.getResolvedSignature(callExpression, candidateSignatures); + if (!signature && candidateSignatures.length) { + signature = candidateSignatures[0]; + } + var useConstructSignatures = callExpression.kind === 158 || callExpression.expression.kind === 91; + var allSignatures = useConstructSignatures ? type.getConstructSignatures() : type.getCallSignatures(); + if (!ts.contains(allSignatures, signature.target || signature)) { + signature = allSignatures.length ? allSignatures[0] : undefined; + } + if (signature) { + if (useConstructSignatures && (symbolFlags & 32)) { + symbolKind = ScriptElementKind.constructorImplementationElement; + addPrefixForAnyFunctionOrVar(type.symbol, symbolKind); + } + else if (symbolFlags & 8388608) { + symbolKind = ScriptElementKind.alias; + pushTypePart(symbolKind); + displayParts.push(ts.spacePart()); + if (useConstructSignatures) { + displayParts.push(ts.keywordPart(88)); + displayParts.push(ts.spacePart()); + } + addFullSymbolName(symbol); + } + else { + addPrefixForAnyFunctionOrVar(symbol, symbolKind); + } + switch (symbolKind) { + case ScriptElementKind.memberVariableElement: + case ScriptElementKind.variableElement: + case ScriptElementKind.constElement: + case ScriptElementKind.letElement: + case ScriptElementKind.parameterElement: + case ScriptElementKind.localVariableElement: + displayParts.push(ts.punctuationPart(51)); + displayParts.push(ts.spacePart()); + if (useConstructSignatures) { + displayParts.push(ts.keywordPart(88)); + displayParts.push(ts.spacePart()); + } + if (!(type.flags & 32768)) { + displayParts.push.apply(displayParts, ts.symbolToDisplayParts(typeResolver, type.symbol, enclosingDeclaration, undefined, 1)); + } + addSignatureDisplayParts(signature, allSignatures, 8); + break; + default: + addSignatureDisplayParts(signature, allSignatures); + } + hasAddedSymbolInfo = true; + } + } + else if ((isNameOfFunctionDeclaration(location) && !(symbol.flags & 98304)) || + (location.kind === 114 && location.parent.kind === 135)) { + var functionDeclaration = location.parent; + var allSignatures = functionDeclaration.kind === 135 ? type.getConstructSignatures() : type.getCallSignatures(); + if (!typeResolver.isImplementationOfOverload(functionDeclaration)) { + signature = typeResolver.getSignatureFromDeclaration(functionDeclaration); + } + else { + signature = allSignatures[0]; + } + if (functionDeclaration.kind === 135) { + symbolKind = ScriptElementKind.constructorImplementationElement; + addPrefixForAnyFunctionOrVar(type.symbol, symbolKind); + } + else { + addPrefixForAnyFunctionOrVar(functionDeclaration.kind === 138 && + !(type.symbol.flags & 2048 || type.symbol.flags & 4096) ? type.symbol : symbol, symbolKind); + } + addSignatureDisplayParts(signature, allSignatures); + hasAddedSymbolInfo = true; + } + } + } + if (symbolFlags & 32 && !hasAddedSymbolInfo) { + displayParts.push(ts.keywordPart(69)); + displayParts.push(ts.spacePart()); + addFullSymbolName(symbol); + writeTypeParametersOfSymbol(symbol, sourceFile); + } + if ((symbolFlags & 64) && (semanticMeaning & 2)) { + addNewLineIfDisplayPartsExist(); + displayParts.push(ts.keywordPart(104)); + displayParts.push(ts.spacePart()); + addFullSymbolName(symbol); + writeTypeParametersOfSymbol(symbol, sourceFile); + } + if (symbolFlags & 524288) { + addNewLineIfDisplayPartsExist(); + displayParts.push(ts.keywordPart(123)); + displayParts.push(ts.spacePart()); + addFullSymbolName(symbol); + displayParts.push(ts.spacePart()); + displayParts.push(ts.operatorPart(53)); + displayParts.push(ts.spacePart()); + displayParts.push.apply(displayParts, ts.typeToDisplayParts(typeResolver, typeResolver.getDeclaredTypeOfSymbol(symbol), enclosingDeclaration)); + } + if (symbolFlags & 384) { + addNewLineIfDisplayPartsExist(); + if (ts.forEach(symbol.declarations, ts.isConstEnumDeclaration)) { + displayParts.push(ts.keywordPart(70)); + displayParts.push(ts.spacePart()); + } + displayParts.push(ts.keywordPart(77)); + displayParts.push(ts.spacePart()); + addFullSymbolName(symbol); + } + if (symbolFlags & 1536) { + addNewLineIfDisplayPartsExist(); + displayParts.push(ts.keywordPart(117)); + displayParts.push(ts.spacePart()); + addFullSymbolName(symbol); + } + if ((symbolFlags & 262144) && (semanticMeaning & 2)) { + addNewLineIfDisplayPartsExist(); + displayParts.push(ts.punctuationPart(16)); + displayParts.push(ts.textPart("type parameter")); + displayParts.push(ts.punctuationPart(17)); + displayParts.push(ts.spacePart()); + addFullSymbolName(symbol); + displayParts.push(ts.spacePart()); + displayParts.push(ts.keywordPart(86)); + displayParts.push(ts.spacePart()); + if (symbol.parent) { + addFullSymbolName(symbol.parent, enclosingDeclaration); + writeTypeParametersOfSymbol(symbol.parent, enclosingDeclaration); + } + else { + var signatureDeclaration = ts.getDeclarationOfKind(symbol, 128).parent; + var signature = typeResolver.getSignatureFromDeclaration(signatureDeclaration); + if (signatureDeclaration.kind === 139) { + displayParts.push(ts.keywordPart(88)); + displayParts.push(ts.spacePart()); + } + else if (signatureDeclaration.kind !== 138 && signatureDeclaration.name) { + addFullSymbolName(signatureDeclaration.symbol); + } + displayParts.push.apply(displayParts, ts.signatureToDisplayParts(typeResolver, signature, sourceFile, 32)); + } + } + if (symbolFlags & 8) { + addPrefixForAnyFunctionOrVar(symbol, "enum member"); + var declaration = symbol.declarations[0]; + if (declaration.kind === 226) { + var constantValue = typeResolver.getConstantValue(declaration); + if (constantValue !== undefined) { + displayParts.push(ts.spacePart()); + displayParts.push(ts.operatorPart(53)); + displayParts.push(ts.spacePart()); + displayParts.push(ts.displayPart(constantValue.toString(), SymbolDisplayPartKind.numericLiteral)); + } + } + } + if (symbolFlags & 8388608) { + addNewLineIfDisplayPartsExist(); + displayParts.push(ts.keywordPart(85)); + displayParts.push(ts.spacePart()); + addFullSymbolName(symbol); + ts.forEach(symbol.declarations, function (declaration) { + if (declaration.kind === 208) { + var importEqualsDeclaration = declaration; + if (ts.isExternalModuleImportEqualsDeclaration(importEqualsDeclaration)) { + displayParts.push(ts.spacePart()); + displayParts.push(ts.operatorPart(53)); + displayParts.push(ts.spacePart()); + displayParts.push(ts.keywordPart(118)); + displayParts.push(ts.punctuationPart(16)); + displayParts.push(ts.displayPart(ts.getTextOfNode(ts.getExternalModuleImportEqualsDeclarationExpression(importEqualsDeclaration)), SymbolDisplayPartKind.stringLiteral)); + displayParts.push(ts.punctuationPart(17)); + } + else { + var internalAliasSymbol = typeResolver.getSymbolAtLocation(importEqualsDeclaration.moduleReference); + if (internalAliasSymbol) { + displayParts.push(ts.spacePart()); + displayParts.push(ts.operatorPart(53)); + displayParts.push(ts.spacePart()); + addFullSymbolName(internalAliasSymbol, enclosingDeclaration); + } + } + return true; + } + }); + } + if (!hasAddedSymbolInfo) { + if (symbolKind !== ScriptElementKind.unknown) { + if (type) { + addPrefixForAnyFunctionOrVar(symbol, symbolKind); + if (symbolKind === ScriptElementKind.memberVariableElement || + symbolFlags & 3 || + symbolKind === ScriptElementKind.localVariableElement) { + displayParts.push(ts.punctuationPart(51)); + displayParts.push(ts.spacePart()); + if (type.symbol && type.symbol.flags & 262144) { + var typeParameterParts = ts.mapToDisplayParts(function (writer) { + typeResolver.getSymbolDisplayBuilder().buildTypeParameterDisplay(type, writer, enclosingDeclaration); + }); + displayParts.push.apply(displayParts, typeParameterParts); + } + else { + displayParts.push.apply(displayParts, ts.typeToDisplayParts(typeResolver, type, enclosingDeclaration)); + } + } + else if (symbolFlags & 16 || + symbolFlags & 8192 || + symbolFlags & 16384 || + symbolFlags & 131072 || + symbolFlags & 98304 || + symbolKind === ScriptElementKind.memberFunctionElement) { + var allSignatures = type.getCallSignatures(); + addSignatureDisplayParts(allSignatures[0], allSignatures); + } + } + } + else { + symbolKind = getSymbolKind(symbol, typeResolver, location); + } + } + if (!documentation) { + documentation = symbol.getDocumentationComment(); + } + return { displayParts: displayParts, documentation: documentation, symbolKind: symbolKind }; + function addNewLineIfDisplayPartsExist() { + if (displayParts.length) { + displayParts.push(ts.lineBreakPart()); + } + } + function addFullSymbolName(symbol, enclosingDeclaration) { + var fullSymbolDisplayParts = ts.symbolToDisplayParts(typeResolver, symbol, enclosingDeclaration || sourceFile, undefined, 1 | 2); + displayParts.push.apply(displayParts, fullSymbolDisplayParts); + } + function addPrefixForAnyFunctionOrVar(symbol, symbolKind) { + addNewLineIfDisplayPartsExist(); + if (symbolKind) { + pushTypePart(symbolKind); + displayParts.push(ts.spacePart()); + addFullSymbolName(symbol); + } + } + function pushTypePart(symbolKind) { + switch (symbolKind) { + case ScriptElementKind.variableElement: + case ScriptElementKind.functionElement: + case ScriptElementKind.letElement: + case ScriptElementKind.constElement: + case ScriptElementKind.constructorImplementationElement: + displayParts.push(ts.textOrKeywordPart(symbolKind)); + return; + default: + displayParts.push(ts.punctuationPart(16)); + displayParts.push(ts.textOrKeywordPart(symbolKind)); + displayParts.push(ts.punctuationPart(17)); + return; + } + } + function addSignatureDisplayParts(signature, allSignatures, flags) { + displayParts.push.apply(displayParts, ts.signatureToDisplayParts(typeResolver, signature, enclosingDeclaration, flags | 32)); + if (allSignatures.length > 1) { + displayParts.push(ts.spacePart()); + displayParts.push(ts.punctuationPart(16)); + displayParts.push(ts.operatorPart(33)); + displayParts.push(ts.displayPart((allSignatures.length - 1).toString(), SymbolDisplayPartKind.numericLiteral)); + displayParts.push(ts.spacePart()); + displayParts.push(ts.textPart(allSignatures.length === 2 ? "overload" : "overloads")); + displayParts.push(ts.punctuationPart(17)); + } + documentation = signature.getDocumentationComment(); + } + function writeTypeParametersOfSymbol(symbol, enclosingDeclaration) { + var typeParameterParts = ts.mapToDisplayParts(function (writer) { + typeResolver.getSymbolDisplayBuilder().buildTypeParameterDisplayFromSymbol(symbol, writer, enclosingDeclaration); + }); + displayParts.push.apply(displayParts, typeParameterParts); + } + } + function getQuickInfoAtPosition(fileName, position) { + synchronizeHostData(); + var sourceFile = getValidSourceFile(fileName); + var node = ts.getTouchingPropertyName(sourceFile, position); + if (!node) { + return undefined; + } + var symbol = typeInfoResolver.getSymbolAtLocation(node); + if (!symbol) { + switch (node.kind) { + case 65: + case 155: + case 126: + case 93: + case 91: + var type = typeInfoResolver.getTypeAtLocation(node); + if (type) { + return { + kind: ScriptElementKind.unknown, + kindModifiers: ScriptElementKindModifier.none, + textSpan: ts.createTextSpan(node.getStart(), node.getWidth()), + displayParts: ts.typeToDisplayParts(typeInfoResolver, type, getContainerNode(node)), + documentation: type.symbol ? type.symbol.getDocumentationComment() : undefined + }; + } + } + return undefined; + } + var displayPartsDocumentationsAndKind = getSymbolDisplayPartsDocumentationAndSymbolKind(symbol, sourceFile, getContainerNode(node), typeInfoResolver, node); + return { + kind: displayPartsDocumentationsAndKind.symbolKind, + kindModifiers: getSymbolModifiers(symbol), + textSpan: ts.createTextSpan(node.getStart(), node.getWidth()), + displayParts: displayPartsDocumentationsAndKind.displayParts, + documentation: displayPartsDocumentationsAndKind.documentation + }; + } + function createDefinitionInfo(node, symbolKind, symbolName, containerName) { + return { + fileName: node.getSourceFile().fileName, + textSpan: ts.createTextSpanFromBounds(node.getStart(), node.getEnd()), + kind: symbolKind, + name: symbolName, + containerKind: undefined, + containerName: containerName + }; + } + function getDefinitionAtPosition(fileName, position) { + synchronizeHostData(); + var sourceFile = getValidSourceFile(fileName); + var node = ts.getTouchingPropertyName(sourceFile, position); + if (!node) { + return undefined; + } + if (isJumpStatementTarget(node)) { + var labelName = node.text; + var label = getTargetLabel(node.parent, node.text); + return label ? [createDefinitionInfo(label, ScriptElementKind.label, labelName, undefined)] : undefined; + } + var comment = ts.forEach(sourceFile.referencedFiles, function (r) { return (r.pos <= position && position < r.end) ? r : undefined; }); + if (comment) { + var referenceFile = ts.tryResolveScriptReference(program, sourceFile, comment); + if (referenceFile) { + return [{ + fileName: referenceFile.fileName, + textSpan: ts.createTextSpanFromBounds(0, 0), + kind: ScriptElementKind.scriptElement, + name: comment.fileName, + containerName: undefined, + containerKind: undefined + }]; + } + return undefined; + } + var symbol = typeInfoResolver.getSymbolAtLocation(node); + if (!symbol) { + return undefined; + } + if (symbol.flags & 8388608) { + var declaration = symbol.declarations[0]; + if (node.kind === 65 && node.parent === declaration) { + symbol = typeInfoResolver.getAliasedSymbol(symbol); + } + } + if (node.parent.kind === 225) { + var shorthandSymbol = typeInfoResolver.getShorthandAssignmentValueSymbol(symbol.valueDeclaration); + if (!shorthandSymbol) { + return []; + } + var shorthandDeclarations = shorthandSymbol.getDeclarations(); + var shorthandSymbolKind = getSymbolKind(shorthandSymbol, typeInfoResolver, node); + var shorthandSymbolName = typeInfoResolver.symbolToString(shorthandSymbol); + var shorthandContainerName = typeInfoResolver.symbolToString(symbol.parent, node); + return ts.map(shorthandDeclarations, function (declaration) { return createDefinitionInfo(declaration, shorthandSymbolKind, shorthandSymbolName, shorthandContainerName); }); + } + var result = []; + var declarations = symbol.getDeclarations(); + var symbolName = typeInfoResolver.symbolToString(symbol); + var symbolKind = getSymbolKind(symbol, typeInfoResolver, node); + var containerSymbol = symbol.parent; + var containerName = containerSymbol ? typeInfoResolver.symbolToString(containerSymbol, node) : ""; + if (!tryAddConstructSignature(symbol, node, symbolKind, symbolName, containerName, result) && + !tryAddCallSignature(symbol, node, symbolKind, symbolName, containerName, result)) { + ts.forEach(declarations, function (declaration) { + result.push(createDefinitionInfo(declaration, symbolKind, symbolName, containerName)); + }); + } + return result; + function tryAddConstructSignature(symbol, location, symbolKind, symbolName, containerName, result) { + if (isNewExpressionTarget(location) || location.kind === 114) { + if (symbol.flags & 32) { + var classDeclaration = symbol.getDeclarations()[0]; + ts.Debug.assert(classDeclaration && classDeclaration.kind === 201); + return tryAddSignature(classDeclaration.members, true, symbolKind, symbolName, containerName, result); + } + } + return false; + } + function tryAddCallSignature(symbol, location, symbolKind, symbolName, containerName, result) { + if (isCallExpressionTarget(location) || isNewExpressionTarget(location) || isNameOfFunctionDeclaration(location)) { + return tryAddSignature(symbol.declarations, false, symbolKind, symbolName, containerName, result); + } + return false; + } + function tryAddSignature(signatureDeclarations, selectConstructors, symbolKind, symbolName, containerName, result) { + var declarations = []; + var definition; + ts.forEach(signatureDeclarations, function (d) { + if ((selectConstructors && d.kind === 135) || + (!selectConstructors && (d.kind === 200 || d.kind === 134 || d.kind === 133))) { + declarations.push(d); + if (d.body) + definition = d; + } + }); + if (definition) { + result.push(createDefinitionInfo(definition, symbolKind, symbolName, containerName)); + return true; + } + else if (declarations.length) { + result.push(createDefinitionInfo(declarations[declarations.length - 1], symbolKind, symbolName, containerName)); + return true; + } + return false; + } + } + function getOccurrencesAtPosition(fileName, position) { + var results = getOccurrencesAtPositionCore(fileName, position); + if (results) { + var sourceFile = getCanonicalFileName(ts.normalizeSlashes(fileName)); + results.forEach(function (value) { + var targetFile = getCanonicalFileName(ts.normalizeSlashes(value.fileName)); + ts.Debug.assert(sourceFile == targetFile, "Unexpected file in results. Found results in " + targetFile + " expected only results in " + sourceFile + "."); + }); + } + return results; + } + function getOccurrencesAtPositionCore(fileName, position) { + synchronizeHostData(); + var sourceFile = getValidSourceFile(fileName); + var node = ts.getTouchingWord(sourceFile, position); + if (!node) { + return undefined; + } + if (node.kind === 65 || node.kind === 93 || node.kind === 91 || + isLiteralNameOfPropertyDeclarationOrIndexAccess(node) || isNameOfExternalModuleImportOrDeclaration(node)) { + return convertReferences(getReferencesForNode(node, [sourceFile], true, false, false)); + } + switch (node.kind) { + case 84: + case 76: + if (hasKind(node.parent, 183)) { + return getIfElseOccurrences(node.parent); + } + break; + case 90: + if (hasKind(node.parent, 191)) { + return getReturnOccurrences(node.parent); + } + break; + case 94: + if (hasKind(node.parent, 195)) { + return getThrowOccurrences(node.parent); + } + break; + case 68: + if (hasKind(parent(parent(node)), 196)) { + return getTryCatchFinallyOccurrences(node.parent.parent); + } + break; + case 96: + case 81: + if (hasKind(parent(node), 196)) { + return getTryCatchFinallyOccurrences(node.parent); + } + break; + case 92: + if (hasKind(node.parent, 193)) { + return getSwitchCaseDefaultOccurrences(node.parent); + } + break; + case 67: + case 73: + if (hasKind(parent(parent(parent(node))), 193)) { + return getSwitchCaseDefaultOccurrences(node.parent.parent.parent); + } + break; + case 66: + case 71: + if (hasKind(node.parent, 190) || hasKind(node.parent, 189)) { + return getBreakOrContinueStatementOccurences(node.parent); + } + break; + case 82: + if (hasKind(node.parent, 186) || + hasKind(node.parent, 187) || + hasKind(node.parent, 188)) { + return getLoopBreakContinueOccurrences(node.parent); + } + break; + case 100: + case 75: + if (hasKind(node.parent, 185) || hasKind(node.parent, 184)) { + return getLoopBreakContinueOccurrences(node.parent); + } + break; + case 114: + if (hasKind(node.parent, 135)) { + return getConstructorOccurrences(node.parent); + } + break; + case 116: + case 120: + if (hasKind(node.parent, 136) || hasKind(node.parent, 137)) { + return getGetAndSetOccurrences(node.parent); + } + default: + if (ts.isModifier(node.kind) && node.parent && + (ts.isDeclaration(node.parent) || node.parent.kind === 180)) { + return getModifierOccurrences(node.kind, node.parent); + } + } + return undefined; + function getIfElseOccurrences(ifStatement) { + var keywords = []; + while (hasKind(ifStatement.parent, 183) && ifStatement.parent.elseStatement === ifStatement) { + ifStatement = ifStatement.parent; + } + while (ifStatement) { + var children = ifStatement.getChildren(); + pushKeywordIf(keywords, children[0], 84); + for (var i = children.length - 1; i >= 0; i--) { + if (pushKeywordIf(keywords, children[i], 76)) { + break; + } + } + if (!hasKind(ifStatement.elseStatement, 183)) { + break; + } + ifStatement = ifStatement.elseStatement; + } + var result = []; + for (var i = 0; i < keywords.length; i++) { + if (keywords[i].kind === 76 && i < keywords.length - 1) { + var elseKeyword = keywords[i]; + var ifKeyword = keywords[i + 1]; + var shouldHighlightNextKeyword = true; + for (var j = ifKeyword.getStart() - 1; j >= elseKeyword.end; j--) { + if (!ts.isWhiteSpace(sourceFile.text.charCodeAt(j))) { + shouldHighlightNextKeyword = false; + break; + } + } + if (shouldHighlightNextKeyword) { + result.push({ + fileName: fileName, + textSpan: ts.createTextSpanFromBounds(elseKeyword.getStart(), ifKeyword.end), + isWriteAccess: false + }); + i++; + continue; + } + } + result.push(getReferenceEntryFromNode(keywords[i])); + } + return result; + } + function getReturnOccurrences(returnStatement) { + var func = ts.getContainingFunction(returnStatement); + if (!(func && hasKind(func.body, 179))) { + return undefined; + } + var keywords = []; + ts.forEachReturnStatement(func.body, function (returnStatement) { + pushKeywordIf(keywords, returnStatement.getFirstToken(), 90); + }); + ts.forEach(aggregateOwnedThrowStatements(func.body), function (throwStatement) { + pushKeywordIf(keywords, throwStatement.getFirstToken(), 94); + }); + return ts.map(keywords, getReferenceEntryFromNode); + } + function getThrowOccurrences(throwStatement) { + var owner = getThrowStatementOwner(throwStatement); + if (!owner) { + return undefined; + } + var keywords = []; + ts.forEach(aggregateOwnedThrowStatements(owner), function (throwStatement) { + pushKeywordIf(keywords, throwStatement.getFirstToken(), 94); + }); + if (ts.isFunctionBlock(owner)) { + ts.forEachReturnStatement(owner, function (returnStatement) { + pushKeywordIf(keywords, returnStatement.getFirstToken(), 90); + }); + } + return ts.map(keywords, getReferenceEntryFromNode); + } + function aggregateOwnedThrowStatements(node) { + var statementAccumulator = []; + aggregate(node); + return statementAccumulator; + function aggregate(node) { + if (node.kind === 195) { + statementAccumulator.push(node); + } + else if (node.kind === 196) { + var tryStatement = node; + if (tryStatement.catchClause) { + aggregate(tryStatement.catchClause); + } + else { + aggregate(tryStatement.tryBlock); + } + if (tryStatement.finallyBlock) { + aggregate(tryStatement.finallyBlock); + } + } + else if (!ts.isFunctionLike(node)) { + ts.forEachChild(node, aggregate); + } + } + ; + } + function getThrowStatementOwner(throwStatement) { + var child = throwStatement; + while (child.parent) { + var parent_9 = child.parent; + if (ts.isFunctionBlock(parent_9) || parent_9.kind === 227) { + return parent_9; + } + if (parent_9.kind === 196) { + var tryStatement = parent_9; + if (tryStatement.tryBlock === child && tryStatement.catchClause) { + return child; + } + } + child = parent_9; + } + return undefined; + } + function getTryCatchFinallyOccurrences(tryStatement) { + var keywords = []; + pushKeywordIf(keywords, tryStatement.getFirstToken(), 96); + if (tryStatement.catchClause) { + pushKeywordIf(keywords, tryStatement.catchClause.getFirstToken(), 68); + } + if (tryStatement.finallyBlock) { + var finallyKeyword = ts.findChildOfKind(tryStatement, 81, sourceFile); + pushKeywordIf(keywords, finallyKeyword, 81); + } + return ts.map(keywords, getReferenceEntryFromNode); + } + function getLoopBreakContinueOccurrences(loopNode) { + var keywords = []; + if (pushKeywordIf(keywords, loopNode.getFirstToken(), 82, 100, 75)) { + if (loopNode.kind === 184) { + var loopTokens = loopNode.getChildren(); + for (var i = loopTokens.length - 1; i >= 0; i--) { + if (pushKeywordIf(keywords, loopTokens[i], 100)) { + break; + } + } + } + } + var breaksAndContinues = aggregateAllBreakAndContinueStatements(loopNode.statement); + ts.forEach(breaksAndContinues, function (statement) { + if (ownsBreakOrContinueStatement(loopNode, statement)) { + pushKeywordIf(keywords, statement.getFirstToken(), 66, 71); + } + }); + return ts.map(keywords, getReferenceEntryFromNode); + } + function getSwitchCaseDefaultOccurrences(switchStatement) { + var keywords = []; + pushKeywordIf(keywords, switchStatement.getFirstToken(), 92); + ts.forEach(switchStatement.caseBlock.clauses, function (clause) { + pushKeywordIf(keywords, clause.getFirstToken(), 67, 73); + var breaksAndContinues = aggregateAllBreakAndContinueStatements(clause); + ts.forEach(breaksAndContinues, function (statement) { + if (ownsBreakOrContinueStatement(switchStatement, statement)) { + pushKeywordIf(keywords, statement.getFirstToken(), 66); + } + }); + }); + return ts.map(keywords, getReferenceEntryFromNode); + } + function getBreakOrContinueStatementOccurences(breakOrContinueStatement) { + var owner = getBreakOrContinueOwner(breakOrContinueStatement); + if (owner) { + switch (owner.kind) { + case 186: + case 187: + case 188: + case 184: + case 185: + return getLoopBreakContinueOccurrences(owner); + case 193: + return getSwitchCaseDefaultOccurrences(owner); + } + } + return undefined; + } + function aggregateAllBreakAndContinueStatements(node) { + var statementAccumulator = []; + aggregate(node); + return statementAccumulator; + function aggregate(node) { + if (node.kind === 190 || node.kind === 189) { + statementAccumulator.push(node); + } + else if (!ts.isFunctionLike(node)) { + ts.forEachChild(node, aggregate); + } + } + ; + } + function ownsBreakOrContinueStatement(owner, statement) { + var actualOwner = getBreakOrContinueOwner(statement); + return actualOwner && actualOwner === owner; + } + function getBreakOrContinueOwner(statement) { + for (var node_1 = statement.parent; node_1; node_1 = node_1.parent) { + switch (node_1.kind) { + case 193: + if (statement.kind === 189) { + continue; + } + case 186: + case 187: + case 188: + case 185: + case 184: + if (!statement.label || isLabeledBy(node_1, statement.label.text)) { + return node_1; + } + break; + default: + if (ts.isFunctionLike(node_1)) { + return undefined; + } + break; + } + } + return undefined; + } + function getConstructorOccurrences(constructorDeclaration) { + var declarations = constructorDeclaration.symbol.getDeclarations(); + var keywords = []; + ts.forEach(declarations, function (declaration) { + ts.forEach(declaration.getChildren(), function (token) { + return pushKeywordIf(keywords, token, 114); + }); + }); + return ts.map(keywords, getReferenceEntryFromNode); + } + function getGetAndSetOccurrences(accessorDeclaration) { + var keywords = []; + tryPushAccessorKeyword(accessorDeclaration.symbol, 136); + tryPushAccessorKeyword(accessorDeclaration.symbol, 137); + return ts.map(keywords, getReferenceEntryFromNode); + function tryPushAccessorKeyword(accessorSymbol, accessorKind) { + var accessor = ts.getDeclarationOfKind(accessorSymbol, accessorKind); + if (accessor) { + ts.forEach(accessor.getChildren(), function (child) { return pushKeywordIf(keywords, child, 116, 120); }); + } + } + } + function getModifierOccurrences(modifier, declaration) { + var container = declaration.parent; + if (ts.isAccessibilityModifier(modifier)) { + if (!(container.kind === 201 || + (declaration.kind === 129 && hasKind(container, 135)))) { + return undefined; + } + } + else if (modifier === 110) { + if (container.kind !== 201) { + return undefined; + } + } + else if (modifier === 78 || modifier === 115) { + if (!(container.kind === 206 || container.kind === 227)) { + return undefined; + } + } + else { + return undefined; + } + var keywords = []; + var modifierFlag = getFlagFromModifier(modifier); + var nodes; + switch (container.kind) { + case 206: + case 227: + nodes = container.statements; + break; + case 135: + nodes = container.parameters.concat(container.parent.members); + break; + case 201: + nodes = container.members; + if (modifierFlag & 112) { + var constructor = ts.forEach(container.members, function (member) { + return member.kind === 135 && member; + }); + if (constructor) { + nodes = nodes.concat(constructor.parameters); + } + } + break; + default: + ts.Debug.fail("Invalid container kind."); + } + ts.forEach(nodes, function (node) { + if (node.modifiers && node.flags & modifierFlag) { + ts.forEach(node.modifiers, function (child) { return pushKeywordIf(keywords, child, modifier); }); + } + }); + return ts.map(keywords, getReferenceEntryFromNode); + function getFlagFromModifier(modifier) { + switch (modifier) { + case 109: + return 16; + case 107: + return 32; + case 108: + return 64; + case 110: + return 128; + case 78: + return 1; + case 115: + return 2; + default: + ts.Debug.fail(); + } + } + } + function hasKind(node, kind) { + return node !== undefined && node.kind === kind; + } + function parent(node) { + return node && node.parent; + } + function pushKeywordIf(keywordList, token) { + var expected = []; + for (var _i = 2; _i < arguments.length; _i++) { + expected[_i - 2] = arguments[_i]; + } + if (token && ts.contains(expected, token.kind)) { + keywordList.push(token); + return true; + } + return false; + } + } + function convertReferences(referenceSymbols) { + if (!referenceSymbols) { + return undefined; + } + var referenceEntries = []; + for (var _i = 0; _i < referenceSymbols.length; _i++) { + var referenceSymbol = referenceSymbols[_i]; + ts.addRange(referenceEntries, referenceSymbol.references); + } + return referenceEntries; + } + function findRenameLocations(fileName, position, findInStrings, findInComments) { + var referencedSymbols = findReferencedSymbols(fileName, position, findInStrings, findInComments); + return convertReferences(referencedSymbols); + } + function getReferencesAtPosition(fileName, position) { + var referencedSymbols = findReferencedSymbols(fileName, position, false, false); + return convertReferences(referencedSymbols); + } + function findReferences(fileName, position) { + var referencedSymbols = findReferencedSymbols(fileName, position, false, false); + return ts.filter(referencedSymbols, function (rs) { return !!rs.definition; }); + } + function findReferencedSymbols(fileName, position, findInStrings, findInComments) { + synchronizeHostData(); + var sourceFile = getValidSourceFile(fileName); + var node = ts.getTouchingPropertyName(sourceFile, position); + if (!node) { + return undefined; + } + if (node.kind !== 65 && + !isLiteralNameOfPropertyDeclarationOrIndexAccess(node) && + !isNameOfExternalModuleImportOrDeclaration(node)) { + return undefined; + } + ts.Debug.assert(node.kind === 65 || node.kind === 7 || node.kind === 8); + return getReferencesForNode(node, program.getSourceFiles(), false, findInStrings, findInComments); + } + function getReferencesForNode(node, sourceFiles, searchOnlyInCurrentFile, findInStrings, findInComments) { + if (isLabelName(node)) { + if (isJumpStatementTarget(node)) { + var labelDefinition = getTargetLabel(node.parent, node.text); + return labelDefinition ? getLabelReferencesInNode(labelDefinition.parent, labelDefinition) : undefined; + } + else { + return getLabelReferencesInNode(node.parent, node); + } + } + if (node.kind === 93) { + return getReferencesForThisKeyword(node, sourceFiles); + } + if (node.kind === 91) { + return getReferencesForSuperKeyword(node); + } + var symbol = typeInfoResolver.getSymbolAtLocation(node); + if (!symbol) { + return undefined; + } + var declarations = symbol.declarations; + if (!declarations || !declarations.length) { + return undefined; + } + var result; + var searchMeaning = getIntersectingMeaningFromDeclarations(getMeaningFromLocation(node), declarations); + var declaredName = getDeclaredName(symbol, node); + var scope = getSymbolScope(symbol); + var symbolToIndex = []; + if (scope) { + result = []; + getReferencesInNode(scope, symbol, declaredName, node, searchMeaning, findInStrings, findInComments, result, symbolToIndex); + } + else { + if (searchOnlyInCurrentFile) { + ts.Debug.assert(sourceFiles.length === 1); + result = []; + getReferencesInNode(sourceFiles[0], symbol, declaredName, node, searchMeaning, findInStrings, findInComments, result, symbolToIndex); + } + else { + var internedName = getInternedName(symbol, node, declarations); + ts.forEach(sourceFiles, function (sourceFile) { + cancellationToken.throwIfCancellationRequested(); + var nameTable = getNameTable(sourceFile); + if (ts.lookUp(nameTable, internedName)) { + result = result || []; + getReferencesInNode(sourceFile, symbol, declaredName, node, searchMeaning, findInStrings, findInComments, result, symbolToIndex); + } + }); + } + } + return result; + function getDefinition(symbol) { + var info = getSymbolDisplayPartsDocumentationAndSymbolKind(symbol, node.getSourceFile(), getContainerNode(node), typeInfoResolver, node); + var name = ts.map(info.displayParts, function (p) { return p.text; }).join(""); + var declarations = symbol.declarations; + if (!declarations || declarations.length === 0) { + return undefined; + } + return { + containerKind: "", + containerName: "", + name: name, + kind: info.symbolKind, + fileName: declarations[0].getSourceFile().fileName, + textSpan: ts.createTextSpan(declarations[0].getStart(), 0) + }; + } + function isImportOrExportSpecifierName(location) { + return location.parent && + (location.parent.kind === 213 || location.parent.kind === 217) && + location.parent.propertyName === location; + } + function isImportOrExportSpecifierImportSymbol(symbol) { + return (symbol.flags & 8388608) && ts.forEach(symbol.declarations, function (declaration) { + return declaration.kind === 213 || declaration.kind === 217; + }); + } + function getDeclaredName(symbol, location) { + var functionExpression = ts.forEach(symbol.declarations, function (d) { return d.kind === 162 ? d : undefined; }); + var name; + if (functionExpression && functionExpression.name) { + name = functionExpression.name.text; + } + if (isImportOrExportSpecifierName(location)) { + return location.getText(); + } + name = typeInfoResolver.symbolToString(symbol); + return stripQuotes(name); + } + function getInternedName(symbol, location, declarations) { + if (isImportOrExportSpecifierName(location)) { + return location.getText(); + } + var functionExpression = ts.forEach(declarations, function (d) { return d.kind === 162 ? d : undefined; }); + var name = functionExpression && functionExpression.name + ? functionExpression.name.text + : symbol.name; + return stripQuotes(name); + } + function stripQuotes(name) { + var length = name.length; + if (length >= 2 && name.charCodeAt(0) === 34 && name.charCodeAt(length - 1) === 34) { + return name.substring(1, length - 1); + } + ; + return name; + } + function getSymbolScope(symbol) { + if (symbol.flags & (4 | 8192)) { + var privateDeclaration = ts.forEach(symbol.getDeclarations(), function (d) { return (d.flags & 32) ? d : undefined; }); + if (privateDeclaration) { + return ts.getAncestor(privateDeclaration, 201); + } + } + if (symbol.flags & 8388608) { + return undefined; + } + if (symbol.parent || (symbol.flags & 268435456)) { + return undefined; + } + var scope = undefined; + var declarations = symbol.getDeclarations(); + if (declarations) { + for (var _i = 0; _i < declarations.length; _i++) { + var declaration = declarations[_i]; + var container = getContainerNode(declaration); + if (!container) { + return undefined; + } + if (scope && scope !== container) { + return undefined; + } + if (container.kind === 227 && !ts.isExternalModule(container)) { + return undefined; + } + scope = container; + } + } + return scope; + } + function getPossibleSymbolReferencePositions(sourceFile, symbolName, start, end) { + var positions = []; + if (!symbolName || !symbolName.length) { + return positions; + } + var text = sourceFile.text; + var sourceLength = text.length; + var symbolNameLength = symbolName.length; + var position = text.indexOf(symbolName, start); + while (position >= 0) { + cancellationToken.throwIfCancellationRequested(); + if (position > end) + break; + var endPosition = position + symbolNameLength; + if ((position === 0 || !ts.isIdentifierPart(text.charCodeAt(position - 1), 2)) && + (endPosition === sourceLength || !ts.isIdentifierPart(text.charCodeAt(endPosition), 2))) { + positions.push(position); + } + position = text.indexOf(symbolName, position + symbolNameLength + 1); + } + return positions; + } + function getLabelReferencesInNode(container, targetLabel) { + var references = []; + var sourceFile = container.getSourceFile(); + var labelName = targetLabel.text; + var possiblePositions = getPossibleSymbolReferencePositions(sourceFile, labelName, container.getStart(), container.getEnd()); + ts.forEach(possiblePositions, function (position) { + cancellationToken.throwIfCancellationRequested(); + var node = ts.getTouchingWord(sourceFile, position); + if (!node || node.getWidth() !== labelName.length) { + return; + } + if (node === targetLabel || + (isJumpStatementTarget(node) && getTargetLabel(node, labelName) === targetLabel)) { + references.push(getReferenceEntryFromNode(node)); + } + }); + var definition = { + containerKind: "", + containerName: "", + fileName: targetLabel.getSourceFile().fileName, + kind: ScriptElementKind.label, + name: labelName, + textSpan: ts.createTextSpanFromBounds(targetLabel.getStart(), targetLabel.getEnd()) + }; + return [{ definition: definition, references: references }]; + } + function isValidReferencePosition(node, searchSymbolName) { + if (node) { + switch (node.kind) { + case 65: + return node.getWidth() === searchSymbolName.length; + case 8: + if (isLiteralNameOfPropertyDeclarationOrIndexAccess(node) || + isNameOfExternalModuleImportOrDeclaration(node)) { + return node.getWidth() === searchSymbolName.length + 2; + } + break; + case 7: + if (isLiteralNameOfPropertyDeclarationOrIndexAccess(node)) { + return node.getWidth() === searchSymbolName.length; + } + break; + } + } + return false; + } + function getReferencesInNode(container, searchSymbol, searchText, searchLocation, searchMeaning, findInStrings, findInComments, result, symbolToIndex) { + var sourceFile = container.getSourceFile(); + var tripleSlashDirectivePrefixRegex = /^\/\/\/\s*= 0) { + var referencedSymbol = getReferencedSymbol(shorthandValueSymbol); + referencedSymbol.references.push(getReferenceEntryFromNode(referenceSymbolDeclaration.name)); + } + } + }); + } + return; + function getReferencedSymbol(symbol) { + var symbolId = ts.getSymbolId(symbol); + var index = symbolToIndex[symbolId]; + if (index === undefined) { + index = result.length; + symbolToIndex[symbolId] = index; + result.push({ + definition: getDefinition(symbol), + references: [] + }); + } + return result[index]; + } + function isInString(position) { + var token = ts.getTokenAtPosition(sourceFile, position); + return token && token.kind === 8 && position > token.getStart(); + } + function isInComment(position) { + var token = ts.getTokenAtPosition(sourceFile, position); + if (token && position < token.getStart()) { + var commentRanges = ts.getLeadingCommentRanges(sourceFile.text, token.pos); + return ts.forEach(commentRanges, function (c) { + if (c.pos < position && position < c.end) { + var commentText = sourceFile.text.substring(c.pos, c.end); + if (!tripleSlashDirectivePrefixRegex.test(commentText)) { + return true; + } + } + }); + } + return false; + } + } + function getReferencesForSuperKeyword(superKeyword) { + var searchSpaceNode = ts.getSuperContainer(superKeyword, false); + if (!searchSpaceNode) { + return undefined; + } + var staticFlag = 128; + switch (searchSpaceNode.kind) { + case 132: + case 131: + case 134: + case 133: + case 135: + case 136: + case 137: + staticFlag &= searchSpaceNode.flags; + searchSpaceNode = searchSpaceNode.parent; + break; + default: + return undefined; + } + var references = []; + var sourceFile = searchSpaceNode.getSourceFile(); + var possiblePositions = getPossibleSymbolReferencePositions(sourceFile, "super", searchSpaceNode.getStart(), searchSpaceNode.getEnd()); + ts.forEach(possiblePositions, function (position) { + cancellationToken.throwIfCancellationRequested(); + var node = ts.getTouchingWord(sourceFile, position); + if (!node || node.kind !== 91) { + return; + } + var container = ts.getSuperContainer(node, false); + if (container && (128 & container.flags) === staticFlag && container.parent.symbol === searchSpaceNode.symbol) { + references.push(getReferenceEntryFromNode(node)); + } + }); + var definition = getDefinition(searchSpaceNode.symbol); + return [{ definition: definition, references: references }]; + } + function getReferencesForThisKeyword(thisOrSuperKeyword, sourceFiles) { + var searchSpaceNode = ts.getThisContainer(thisOrSuperKeyword, false); + var staticFlag = 128; + switch (searchSpaceNode.kind) { + case 134: + case 133: + if (ts.isObjectLiteralMethod(searchSpaceNode)) { + break; + } + case 132: + case 131: + case 135: + case 136: + case 137: + staticFlag &= searchSpaceNode.flags; + searchSpaceNode = searchSpaceNode.parent; + break; + case 227: + if (ts.isExternalModule(searchSpaceNode)) { + return undefined; + } + case 200: + case 162: + break; + default: + return undefined; + } + var references = []; + var possiblePositions; + if (searchSpaceNode.kind === 227) { + ts.forEach(sourceFiles, function (sourceFile) { + possiblePositions = getPossibleSymbolReferencePositions(sourceFile, "this", sourceFile.getStart(), sourceFile.getEnd()); + getThisReferencesInFile(sourceFile, sourceFile, possiblePositions, references); + }); + } + else { + var sourceFile = searchSpaceNode.getSourceFile(); + possiblePositions = getPossibleSymbolReferencePositions(sourceFile, "this", searchSpaceNode.getStart(), searchSpaceNode.getEnd()); + getThisReferencesInFile(sourceFile, searchSpaceNode, possiblePositions, references); + } + return [{ + definition: { + containerKind: "", + containerName: "", + fileName: node.getSourceFile().fileName, + kind: ScriptElementKind.variableElement, + name: "this", + textSpan: ts.createTextSpanFromBounds(node.getStart(), node.getEnd()) + }, + references: references + }]; + function getThisReferencesInFile(sourceFile, searchSpaceNode, possiblePositions, result) { + ts.forEach(possiblePositions, function (position) { + cancellationToken.throwIfCancellationRequested(); + var node = ts.getTouchingWord(sourceFile, position); + if (!node || node.kind !== 93) { + return; + } + var container = ts.getThisContainer(node, false); + switch (searchSpaceNode.kind) { + case 162: + case 200: + if (searchSpaceNode.symbol === container.symbol) { + result.push(getReferenceEntryFromNode(node)); + } + break; + case 134: + case 133: + if (ts.isObjectLiteralMethod(searchSpaceNode) && searchSpaceNode.symbol === container.symbol) { + result.push(getReferenceEntryFromNode(node)); + } + break; + case 201: + if (container.parent && searchSpaceNode.symbol === container.parent.symbol && (container.flags & 128) === staticFlag) { + result.push(getReferenceEntryFromNode(node)); + } + break; + case 227: + if (container.kind === 227 && !ts.isExternalModule(container)) { + result.push(getReferenceEntryFromNode(node)); + } + break; + } + }); + } + } + function populateSearchSymbolSet(symbol, location) { + var result = [symbol]; + if (isImportOrExportSpecifierImportSymbol(symbol)) { + result.push(typeInfoResolver.getAliasedSymbol(symbol)); + } + if (isNameOfPropertyAssignment(location)) { + ts.forEach(getPropertySymbolsFromContextualType(location), function (contextualSymbol) { + result.push.apply(result, typeInfoResolver.getRootSymbols(contextualSymbol)); + }); + var shorthandValueSymbol = typeInfoResolver.getShorthandAssignmentValueSymbol(location.parent); + if (shorthandValueSymbol) { + result.push(shorthandValueSymbol); + } + } + ts.forEach(typeInfoResolver.getRootSymbols(symbol), function (rootSymbol) { + if (rootSymbol !== symbol) { + result.push(rootSymbol); + } + if (rootSymbol.parent && rootSymbol.parent.flags & (32 | 64)) { + getPropertySymbolsFromBaseTypes(rootSymbol.parent, rootSymbol.getName(), result); + } + }); + return result; + } + function getPropertySymbolsFromBaseTypes(symbol, propertyName, result) { + if (symbol && symbol.flags & (32 | 64)) { + ts.forEach(symbol.getDeclarations(), function (declaration) { + if (declaration.kind === 201) { + getPropertySymbolFromTypeReference(ts.getClassExtendsHeritageClauseElement(declaration)); + ts.forEach(ts.getClassImplementsHeritageClauseElements(declaration), getPropertySymbolFromTypeReference); + } + else if (declaration.kind === 202) { + ts.forEach(ts.getInterfaceBaseTypeNodes(declaration), getPropertySymbolFromTypeReference); + } + }); + } + return; + function getPropertySymbolFromTypeReference(typeReference) { + if (typeReference) { + var type = typeInfoResolver.getTypeAtLocation(typeReference); + if (type) { + var propertySymbol = typeInfoResolver.getPropertyOfType(type, propertyName); + if (propertySymbol) { + result.push(propertySymbol); + } + getPropertySymbolsFromBaseTypes(type.symbol, propertyName, result); + } + } + } + } + function getRelatedSymbol(searchSymbols, referenceSymbol, referenceLocation) { + if (searchSymbols.indexOf(referenceSymbol) >= 0) { + return referenceSymbol; + } + if (isImportOrExportSpecifierImportSymbol(referenceSymbol)) { + var aliasedSymbol = typeInfoResolver.getAliasedSymbol(referenceSymbol); + if (searchSymbols.indexOf(aliasedSymbol) >= 0) { + return aliasedSymbol; + } + } + if (isNameOfPropertyAssignment(referenceLocation)) { + return ts.forEach(getPropertySymbolsFromContextualType(referenceLocation), function (contextualSymbol) { + return ts.forEach(typeInfoResolver.getRootSymbols(contextualSymbol), function (s) { return searchSymbols.indexOf(s) >= 0 ? s : undefined; }); + }); + } + return ts.forEach(typeInfoResolver.getRootSymbols(referenceSymbol), function (rootSymbol) { + if (searchSymbols.indexOf(rootSymbol) >= 0) { + return rootSymbol; + } + if (rootSymbol.parent && rootSymbol.parent.flags & (32 | 64)) { + var result_2 = []; + getPropertySymbolsFromBaseTypes(rootSymbol.parent, rootSymbol.getName(), result_2); + return ts.forEach(result_2, function (s) { return searchSymbols.indexOf(s) >= 0 ? s : undefined; }); + } + return undefined; + }); + } + function getPropertySymbolsFromContextualType(node) { + if (isNameOfPropertyAssignment(node)) { + var objectLiteral = node.parent.parent; + var contextualType = typeInfoResolver.getContextualType(objectLiteral); + var name_20 = node.text; + if (contextualType) { + if (contextualType.flags & 16384) { + var unionProperty = contextualType.getProperty(name_20); + if (unionProperty) { + return [unionProperty]; + } + else { + var result_3 = []; + ts.forEach(contextualType.types, function (t) { + var symbol = t.getProperty(name_20); + if (symbol) { + result_3.push(symbol); + } + }); + return result_3; + } + } + else { + var symbol_1 = contextualType.getProperty(name_20); + if (symbol_1) { + return [symbol_1]; + } + } + } + } + return undefined; + } + function getIntersectingMeaningFromDeclarations(meaning, declarations) { + if (declarations) { + var lastIterationMeaning; + do { + lastIterationMeaning = meaning; + for (var _i = 0; _i < declarations.length; _i++) { + var declaration = declarations[_i]; + var declarationMeaning = getMeaningFromDeclaration(declaration); + if (declarationMeaning & meaning) { + meaning |= declarationMeaning; + } + } + } while (meaning !== lastIterationMeaning); + } + return meaning; + } + } + function getReferenceEntryFromNode(node) { + var start = node.getStart(); + var end = node.getEnd(); + if (node.kind === 8) { + start += 1; + end -= 1; + } + return { + fileName: node.getSourceFile().fileName, + textSpan: ts.createTextSpanFromBounds(start, end), + isWriteAccess: isWriteAccess(node) + }; + } + function isWriteAccess(node) { + if (node.kind === 65 && ts.isDeclarationName(node)) { + return true; + } + var parent = node.parent; + if (parent) { + if (parent.kind === 168 || parent.kind === 167) { + return true; + } + else if (parent.kind === 169 && parent.left === node) { + var operator = parent.operatorToken.kind; + return 53 <= operator && operator <= 64; + } + } + return false; + } + function getNavigateToItems(searchValue, maxResultCount) { + synchronizeHostData(); + return ts.NavigateTo.getNavigateToItems(program, cancellationToken, searchValue, maxResultCount); + } + function containErrors(diagnostics) { + return ts.forEach(diagnostics, function (diagnostic) { return diagnostic.category === ts.DiagnosticCategory.Error; }); + } + function getEmitOutput(fileName) { + synchronizeHostData(); + var sourceFile = getValidSourceFile(fileName); + var outputFiles = []; + function writeFile(fileName, data, writeByteOrderMark) { + outputFiles.push({ + name: fileName, + writeByteOrderMark: writeByteOrderMark, + text: data + }); + } + var emitOutput = program.emit(sourceFile, writeFile); + return { + outputFiles: outputFiles, + emitSkipped: emitOutput.emitSkipped + }; + } + function getMeaningFromDeclaration(node) { + switch (node.kind) { + case 129: + case 198: + case 152: + case 132: + case 131: + case 224: + case 225: + case 226: + case 134: + case 133: + case 135: + case 136: + case 137: + case 200: + case 162: + case 163: + case 223: + return 1; + case 128: + case 202: + case 203: + case 145: + return 2; + case 201: + case 204: + return 1 | 2; + case 205: + if (node.name.kind === 8) { + return 4 | 1; + } + else if (ts.getModuleInstanceState(node) === 1) { + return 4 | 1; + } + else { + return 4; + } + case 212: + case 213: + case 208: + case 209: + case 214: + case 215: + return 1 | 2 | 4; + case 227: + return 4 | 1; + } + return 1 | 2 | 4; + ts.Debug.fail("Unknown declaration type"); + } + function isTypeReference(node) { + if (ts.isRightSideOfQualifiedNameOrPropertyAccess(node)) { + node = node.parent; + } + return node.parent.kind === 141 || node.parent.kind === 177; + } + function isNamespaceReference(node) { + return isQualifiedNameNamespaceReference(node) || isPropertyAccessNamespaceReference(node); + } + function isPropertyAccessNamespaceReference(node) { + var root = node; + var isLastClause = true; + if (root.parent.kind === 155) { + while (root.parent && root.parent.kind === 155) { + root = root.parent; + } + isLastClause = root.name === node; + } + if (!isLastClause && root.parent.kind === 177 && root.parent.parent.kind === 222) { + var decl = root.parent.parent.parent; + return (decl.kind === 201 && root.parent.parent.token === 103) || + (decl.kind === 202 && root.parent.parent.token === 79); + } + return false; + } + function isQualifiedNameNamespaceReference(node) { + var root = node; + var isLastClause = true; + if (root.parent.kind === 126) { + while (root.parent && root.parent.kind === 126) { + root = root.parent; + } + isLastClause = root.right === node; + } + return root.parent.kind === 141 && !isLastClause; + } + function isInRightSideOfImport(node) { + while (node.parent.kind === 126) { + node = node.parent; + } + return ts.isInternalModuleImportEqualsDeclaration(node.parent) && node.parent.moduleReference === node; + } + function getMeaningFromRightHandSideOfImportEquals(node) { + ts.Debug.assert(node.kind === 65); + if (node.parent.kind === 126 && + node.parent.right === node && + node.parent.parent.kind === 208) { + return 1 | 2 | 4; + } + return 4; + } + function getMeaningFromLocation(node) { + if (node.parent.kind === 214) { + return 1 | 2 | 4; + } + else if (isInRightSideOfImport(node)) { + return getMeaningFromRightHandSideOfImportEquals(node); + } + else if (ts.isDeclarationName(node)) { + return getMeaningFromDeclaration(node.parent); + } + else if (isTypeReference(node)) { + return 2; + } + else if (isNamespaceReference(node)) { + return 4; + } + else { + return 1; + } + } + function getSignatureHelpItems(fileName, position) { + synchronizeHostData(); + var sourceFile = getValidSourceFile(fileName); + return ts.SignatureHelp.getSignatureHelpItems(sourceFile, position, typeInfoResolver, cancellationToken); + } + function getSourceFile(fileName) { + return syntaxTreeCache.getCurrentSourceFile(fileName); + } + function getNameOrDottedNameSpan(fileName, startPos, endPos) { + var sourceFile = syntaxTreeCache.getCurrentSourceFile(fileName); + var node = ts.getTouchingPropertyName(sourceFile, startPos); + if (!node) { + return; + } + switch (node.kind) { + case 155: + case 126: + case 8: + case 80: + case 95: + case 89: + case 91: + case 93: + case 65: + break; + default: + return; + } + var nodeForStartPos = node; + while (true) { + if (isRightSideOfPropertyAccess(nodeForStartPos) || isRightSideOfQualifiedName(nodeForStartPos)) { + nodeForStartPos = nodeForStartPos.parent; + } + else if (isNameOfModuleDeclaration(nodeForStartPos)) { + if (nodeForStartPos.parent.parent.kind === 205 && + nodeForStartPos.parent.parent.body === nodeForStartPos.parent) { + nodeForStartPos = nodeForStartPos.parent.parent.name; + } + else { + break; + } + } + else { + break; + } + } + return ts.createTextSpanFromBounds(nodeForStartPos.getStart(), node.getEnd()); + } + function getBreakpointStatementAtPosition(fileName, position) { + var sourceFile = syntaxTreeCache.getCurrentSourceFile(fileName); + return ts.BreakpointResolver.spanInSourceFileAtLocation(sourceFile, position); + } + function getNavigationBarItems(fileName) { + var sourceFile = syntaxTreeCache.getCurrentSourceFile(fileName); + return ts.NavigationBar.getNavigationBarItems(sourceFile); + } + function getSemanticClassifications(fileName, span) { + synchronizeHostData(); + var sourceFile = getValidSourceFile(fileName); + var result = []; + processNode(sourceFile); + return result; + function classifySymbol(symbol, meaningAtPosition) { + var flags = symbol.getFlags(); + if (flags & 32) { + return ClassificationTypeNames.className; + } + else if (flags & 384) { + return ClassificationTypeNames.enumName; + } + else if (flags & 524288) { + return ClassificationTypeNames.typeAlias; + } + else if (meaningAtPosition & 2) { + if (flags & 64) { + return ClassificationTypeNames.interfaceName; + } + else if (flags & 262144) { + return ClassificationTypeNames.typeParameterName; + } + } + else if (flags & 1536) { + if (meaningAtPosition & 4 || + (meaningAtPosition & 1 && hasValueSideModule(symbol))) { + return ClassificationTypeNames.moduleName; + } + } + return undefined; + function hasValueSideModule(symbol) { + return ts.forEach(symbol.declarations, function (declaration) { + return declaration.kind === 205 && ts.getModuleInstanceState(declaration) == 1; + }); + } + } + function processNode(node) { + if (node && ts.textSpanIntersectsWith(span, node.getStart(), node.getWidth())) { + if (node.kind === 65 && node.getWidth() > 0) { + var symbol = typeInfoResolver.getSymbolAtLocation(node); + if (symbol) { + var type = classifySymbol(symbol, getMeaningFromLocation(node)); + if (type) { + result.push({ + textSpan: ts.createTextSpan(node.getStart(), node.getWidth()), + classificationType: type + }); + } + } + } + ts.forEachChild(node, processNode); + } + } + } + function getSyntacticClassifications(fileName, span) { + var sourceFile = syntaxTreeCache.getCurrentSourceFile(fileName); + var triviaScanner = ts.createScanner(2, false, sourceFile.text); + var mergeConflictScanner = ts.createScanner(2, false, sourceFile.text); + var result = []; + processElement(sourceFile); + return result; + function classifyLeadingTrivia(token) { + var tokenStart = ts.skipTrivia(sourceFile.text, token.pos, false); + if (tokenStart === token.pos) { + return; + } + triviaScanner.setTextPos(token.pos); + while (true) { + var start = triviaScanner.getTextPos(); + var kind = triviaScanner.scan(); + var end = triviaScanner.getTextPos(); + var width = end - start; + if (ts.textSpanIntersectsWith(span, start, width)) { + if (!ts.isTrivia(kind)) { + return; + } + if (ts.isComment(kind)) { + result.push({ + textSpan: ts.createTextSpan(start, width), + classificationType: ClassificationTypeNames.comment + }); + continue; + } + if (kind === 6) { + var text = sourceFile.text; + var ch = text.charCodeAt(start); + if (ch === 60 || ch === 62) { + result.push({ + textSpan: ts.createTextSpan(start, width), + classificationType: ClassificationTypeNames.comment + }); + continue; + } + ts.Debug.assert(ch === 61); + classifyDisabledMergeCode(text, start, end); + } + } + } + } + function classifyDisabledMergeCode(text, start, end) { + for (var i = start; i < end; i++) { + if (ts.isLineBreak(text.charCodeAt(i))) { + break; + } + } + result.push({ + textSpan: ts.createTextSpanFromBounds(start, i), + classificationType: ClassificationTypeNames.comment + }); + mergeConflictScanner.setTextPos(i); + while (mergeConflictScanner.getTextPos() < end) { + classifyDisabledCodeToken(); + } + } + function classifyDisabledCodeToken() { + var start = mergeConflictScanner.getTextPos(); + var tokenKind = mergeConflictScanner.scan(); + var end = mergeConflictScanner.getTextPos(); + var type = classifyTokenType(tokenKind); + if (type) { + result.push({ + textSpan: ts.createTextSpanFromBounds(start, end), + classificationType: type + }); + } + } + function classifyToken(token) { + classifyLeadingTrivia(token); + if (token.getWidth() > 0) { + var type = classifyTokenType(token.kind, token); + if (type) { + result.push({ + textSpan: ts.createTextSpan(token.getStart(), token.getWidth()), + classificationType: type + }); + } + } + } + function classifyTokenType(tokenKind, token) { + if (ts.isKeyword(tokenKind)) { + return ClassificationTypeNames.keyword; + } + if (tokenKind === 24 || tokenKind === 25) { + if (token && ts.getTypeArgumentOrTypeParameterList(token.parent)) { + return ClassificationTypeNames.punctuation; + } + } + if (ts.isPunctuation(tokenKind)) { + if (token) { + if (tokenKind === 53) { + if (token.parent.kind === 198 || + token.parent.kind === 132 || + token.parent.kind === 129) { + return ClassificationTypeNames.operator; + } + } + if (token.parent.kind === 169 || + token.parent.kind === 167 || + token.parent.kind === 168 || + token.parent.kind === 170) { + return ClassificationTypeNames.operator; + } + } + return ClassificationTypeNames.punctuation; + } + else if (tokenKind === 7) { + return ClassificationTypeNames.numericLiteral; + } + else if (tokenKind === 8) { + return ClassificationTypeNames.stringLiteral; + } + else if (tokenKind === 9) { + return ClassificationTypeNames.stringLiteral; + } + else if (ts.isTemplateLiteralKind(tokenKind)) { + return ClassificationTypeNames.stringLiteral; + } + else if (tokenKind === 65) { + if (token) { + switch (token.parent.kind) { + case 201: + if (token.parent.name === token) { + return ClassificationTypeNames.className; + } + return; + case 128: + if (token.parent.name === token) { + return ClassificationTypeNames.typeParameterName; + } + return; + case 202: + if (token.parent.name === token) { + return ClassificationTypeNames.interfaceName; + } + return; + case 204: + if (token.parent.name === token) { + return ClassificationTypeNames.enumName; + } + return; + case 205: + if (token.parent.name === token) { + return ClassificationTypeNames.moduleName; + } + return; + } + } + return ClassificationTypeNames.text; + } + } + function processElement(element) { + if (ts.textSpanIntersectsWith(span, element.getFullStart(), element.getFullWidth())) { + var children = element.getChildren(); + for (var _i = 0; _i < children.length; _i++) { + var child = children[_i]; + if (ts.isToken(child)) { + classifyToken(child); + } + else { + processElement(child); + } + } + } + } + } + function getOutliningSpans(fileName) { + var sourceFile = syntaxTreeCache.getCurrentSourceFile(fileName); + return ts.OutliningElementsCollector.collectElements(sourceFile); + } + function getBraceMatchingAtPosition(fileName, position) { + var sourceFile = syntaxTreeCache.getCurrentSourceFile(fileName); + var result = []; + var token = ts.getTouchingToken(sourceFile, position); + if (token.getStart(sourceFile) === position) { + var matchKind = getMatchingTokenKind(token); + if (matchKind) { + var parentElement = token.parent; + var childNodes = parentElement.getChildren(sourceFile); + for (var _i = 0; _i < childNodes.length; _i++) { + var current = childNodes[_i]; + if (current.kind === matchKind) { + var range1 = ts.createTextSpan(token.getStart(sourceFile), token.getWidth(sourceFile)); + var range2 = ts.createTextSpan(current.getStart(sourceFile), current.getWidth(sourceFile)); + if (range1.start < range2.start) { + result.push(range1, range2); + } + else { + result.push(range2, range1); + } + break; + } + } + } + } + return result; + function getMatchingTokenKind(token) { + switch (token.kind) { + case 14: return 15; + case 16: return 17; + case 18: return 19; + case 24: return 25; + case 15: return 14; + case 17: return 16; + case 19: return 18; + case 25: return 24; + } + return undefined; + } + } + function getIndentationAtPosition(fileName, position, editorOptions) { + var start = new Date().getTime(); + var sourceFile = syntaxTreeCache.getCurrentSourceFile(fileName); + log("getIndentationAtPosition: getCurrentSourceFile: " + (new Date().getTime() - start)); + start = new Date().getTime(); + var result = ts.formatting.SmartIndenter.getIndentation(position, sourceFile, editorOptions); + log("getIndentationAtPosition: computeIndentation : " + (new Date().getTime() - start)); + return result; + } + function getFormattingEditsForRange(fileName, start, end, options) { + var sourceFile = syntaxTreeCache.getCurrentSourceFile(fileName); + return ts.formatting.formatSelection(start, end, sourceFile, getRuleProvider(options), options); + } + function getFormattingEditsForDocument(fileName, options) { + var sourceFile = syntaxTreeCache.getCurrentSourceFile(fileName); + return ts.formatting.formatDocument(sourceFile, getRuleProvider(options), options); + } + function getFormattingEditsAfterKeystroke(fileName, position, key, options) { + var sourceFile = syntaxTreeCache.getCurrentSourceFile(fileName); + if (key === "}") { + return ts.formatting.formatOnClosingCurly(position, sourceFile, getRuleProvider(options), options); + } + else if (key === ";") { + return ts.formatting.formatOnSemicolon(position, sourceFile, getRuleProvider(options), options); + } + else if (key === "\n") { + return ts.formatting.formatOnEnter(position, sourceFile, getRuleProvider(options), options); + } + return []; + } + function getTodoComments(fileName, descriptors) { + synchronizeHostData(); + var sourceFile = getValidSourceFile(fileName); + cancellationToken.throwIfCancellationRequested(); + var fileContents = sourceFile.text; + var result = []; + if (descriptors.length > 0) { + var regExp = getTodoCommentsRegExp(); + var matchArray; + while (matchArray = regExp.exec(fileContents)) { + cancellationToken.throwIfCancellationRequested(); + var firstDescriptorCaptureIndex = 3; + ts.Debug.assert(matchArray.length === descriptors.length + firstDescriptorCaptureIndex); + var preamble = matchArray[1]; + var matchPosition = matchArray.index + preamble.length; + var token = ts.getTokenAtPosition(sourceFile, matchPosition); + if (!isInsideComment(sourceFile, token, matchPosition)) { + continue; + } + var descriptor = undefined; + for (var i = 0, n = descriptors.length; i < n; i++) { + if (matchArray[i + firstDescriptorCaptureIndex]) { + descriptor = descriptors[i]; + } + } + ts.Debug.assert(descriptor !== undefined); + if (isLetterOrDigit(fileContents.charCodeAt(matchPosition + descriptor.text.length))) { + continue; + } + var message = matchArray[2]; + result.push({ + descriptor: descriptor, + message: message, + position: matchPosition + }); + } + } + return result; + function escapeRegExp(str) { + return str.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&"); + } + function getTodoCommentsRegExp() { + // NOTE: ?: means 'non-capture group'. It allows us to have groups without having to + // filter them out later in the final result array. + var singleLineCommentStart = /(?:\/\/+\s*)/.source; + var multiLineCommentStart = /(?:\/\*+\s*)/.source; + var anyNumberOfSpacesAndAsterixesAtStartOfLine = /(?:^(?:\s|\*)*)/.source; + var preamble = "(" + anyNumberOfSpacesAndAsterixesAtStartOfLine + "|" + singleLineCommentStart + "|" + multiLineCommentStart + ")"; + var literals = "(?:" + ts.map(descriptors, function (d) { return "(" + escapeRegExp(d.text) + ")"; }).join("|") + ")"; + var endOfLineOrEndOfComment = /(?:$|\*\/)/.source; + var messageRemainder = /(?:.*?)/.source; + var messagePortion = "(" + literals + messageRemainder + ")"; + var regExpString = preamble + messagePortion + endOfLineOrEndOfComment; + return new RegExp(regExpString, "gim"); + } + function isLetterOrDigit(char) { + return (char >= 97 && char <= 122) || + (char >= 65 && char <= 90) || + (char >= 48 && char <= 57); + } + } + function getRenameInfo(fileName, position) { + synchronizeHostData(); + var sourceFile = getValidSourceFile(fileName); + var node = ts.getTouchingWord(sourceFile, position); + if (node && node.kind === 65) { + var symbol = typeInfoResolver.getSymbolAtLocation(node); + if (symbol) { + var declarations = symbol.getDeclarations(); + if (declarations && declarations.length > 0) { + var defaultLibFileName = host.getDefaultLibFileName(host.getCompilationSettings()); + if (defaultLibFileName) { + for (var _i = 0; _i < declarations.length; _i++) { + var current = declarations[_i]; + var sourceFile_1 = current.getSourceFile(); + if (sourceFile_1 && getCanonicalFileName(ts.normalizePath(sourceFile_1.fileName)) === getCanonicalFileName(ts.normalizePath(defaultLibFileName))) { + return getRenameInfoError(ts.getLocaleSpecificMessage(ts.Diagnostics.You_cannot_rename_elements_that_are_defined_in_the_standard_TypeScript_library.key)); + } + } + } + var kind = getSymbolKind(symbol, typeInfoResolver, node); + if (kind) { + return { + canRename: true, + localizedErrorMessage: undefined, + displayName: symbol.name, + fullDisplayName: typeInfoResolver.getFullyQualifiedName(symbol), + kind: kind, + kindModifiers: getSymbolModifiers(symbol), + triggerSpan: ts.createTextSpan(node.getStart(), node.getWidth()) + }; + } + } + } + } + return getRenameInfoError(ts.getLocaleSpecificMessage(ts.Diagnostics.You_cannot_rename_this_element.key)); + function getRenameInfoError(localizedErrorMessage) { + return { + canRename: false, + localizedErrorMessage: localizedErrorMessage, + displayName: undefined, + fullDisplayName: undefined, + kind: undefined, + kindModifiers: undefined, + triggerSpan: undefined + }; + } + } + return { + dispose: dispose, + cleanupSemanticCache: cleanupSemanticCache, + getSyntacticDiagnostics: getSyntacticDiagnostics, + getSemanticDiagnostics: getSemanticDiagnostics, + getCompilerOptionsDiagnostics: getCompilerOptionsDiagnostics, + getSyntacticClassifications: getSyntacticClassifications, + getSemanticClassifications: getSemanticClassifications, + getCompletionsAtPosition: getCompletionsAtPosition, + getCompletionEntryDetails: getCompletionEntryDetails, + getSignatureHelpItems: getSignatureHelpItems, + getQuickInfoAtPosition: getQuickInfoAtPosition, + getDefinitionAtPosition: getDefinitionAtPosition, + getReferencesAtPosition: getReferencesAtPosition, + findReferences: findReferences, + getOccurrencesAtPosition: getOccurrencesAtPosition, + getNameOrDottedNameSpan: getNameOrDottedNameSpan, + getBreakpointStatementAtPosition: getBreakpointStatementAtPosition, + getNavigateToItems: getNavigateToItems, + getRenameInfo: getRenameInfo, + findRenameLocations: findRenameLocations, + getNavigationBarItems: getNavigationBarItems, + getOutliningSpans: getOutliningSpans, + getTodoComments: getTodoComments, + getBraceMatchingAtPosition: getBraceMatchingAtPosition, + getIndentationAtPosition: getIndentationAtPosition, + getFormattingEditsForRange: getFormattingEditsForRange, + getFormattingEditsForDocument: getFormattingEditsForDocument, + getFormattingEditsAfterKeystroke: getFormattingEditsAfterKeystroke, + getEmitOutput: getEmitOutput, + getSourceFile: getSourceFile, + getProgram: getProgram + }; + } + ts.createLanguageService = createLanguageService; + function getNameTable(sourceFile) { + if (!sourceFile.nameTable) { + initializeNameTable(sourceFile); + } + return sourceFile.nameTable; + } + ts.getNameTable = getNameTable; + function initializeNameTable(sourceFile) { + var nameTable = {}; + walk(sourceFile); + sourceFile.nameTable = nameTable; + function walk(node) { + switch (node.kind) { + case 65: + nameTable[node.text] = node.text; + break; + case 8: + case 7: + if (ts.isDeclarationName(node) || + node.parent.kind === 219 || + isArgumentOfElementAccessExpression(node)) { + nameTable[node.text] = node.text; + } + break; + default: + ts.forEachChild(node, walk); + } + } + } + function isArgumentOfElementAccessExpression(node) { + return node && + node.parent && + node.parent.kind === 156 && + node.parent.argumentExpression === node; + } + function createClassifier() { + var scanner = ts.createScanner(2, false); + var noRegexTable = []; + noRegexTable[65] = true; + noRegexTable[8] = true; + noRegexTable[7] = true; + noRegexTable[9] = true; + noRegexTable[93] = true; + noRegexTable[38] = true; + noRegexTable[39] = true; + noRegexTable[17] = true; + noRegexTable[19] = true; + noRegexTable[15] = true; + noRegexTable[95] = true; + noRegexTable[80] = true; + var templateStack = []; + function canFollow(keyword1, keyword2) { + if (ts.isAccessibilityModifier(keyword1)) { + if (keyword2 === 116 || + keyword2 === 120 || + keyword2 === 114 || + keyword2 === 110) { + return true; + } + return false; + } + return true; + } + function getClassificationsForLine(text, lexState, syntacticClassifierAbsent) { + var offset = 0; + var token = 0; + var lastNonTriviaToken = 0; + while (templateStack.length > 0) { + templateStack.pop(); + } + switch (lexState) { + case 3: + text = '"\\\n' + text; + offset = 3; + break; + case 2: + text = "'\\\n" + text; + offset = 3; + break; + case 1: + text = "/*\n" + text; + offset = 3; + break; + case 4: + text = "`\n" + text; + offset = 2; + break; + case 5: + text = "}\n" + text; + offset = 2; + case 6: + templateStack.push(11); + break; + } + scanner.setText(text); + var result = { + finalLexState: 0, + entries: [] + }; + var angleBracketStack = 0; + do { + token = scanner.scan(); + if (!ts.isTrivia(token)) { + if ((token === 36 || token === 57) && !noRegexTable[lastNonTriviaToken]) { + if (scanner.reScanSlashToken() === 9) { + token = 9; + } + } + else if (lastNonTriviaToken === 20 && isKeyword(token)) { + token = 65; + } + else if (isKeyword(lastNonTriviaToken) && isKeyword(token) && !canFollow(lastNonTriviaToken, token)) { + token = 65; + } + else if (lastNonTriviaToken === 65 && + token === 24) { + angleBracketStack++; + } + else if (token === 25 && angleBracketStack > 0) { + angleBracketStack--; + } + else if (token === 112 || + token === 121 || + token === 119 || + token === 113 || + token === 122) { + if (angleBracketStack > 0 && !syntacticClassifierAbsent) { + token = 65; + } + } + else if (token === 11) { + templateStack.push(token); + } + else if (token === 14) { + if (templateStack.length > 0) { + templateStack.push(token); + } + } + else if (token === 15) { + if (templateStack.length > 0) { + var lastTemplateStackToken = ts.lastOrUndefined(templateStack); + if (lastTemplateStackToken === 11) { + token = scanner.reScanTemplateToken(); + if (token === 13) { + templateStack.pop(); + } + else { + ts.Debug.assert(token === 12, "Should have been a template middle. Was " + token); + } + } + else { + ts.Debug.assert(lastTemplateStackToken === 14, "Should have been an open brace. Was: " + token); + templateStack.pop(); + } + } + } + lastNonTriviaToken = token; + } + processToken(); + } while (token !== 1); + return result; + function processToken() { + var start = scanner.getTokenPos(); + var end = scanner.getTextPos(); + addResult(end - start, classFromKind(token)); + if (end >= text.length) { + if (token === 8) { + var tokenText = scanner.getTokenText(); + if (scanner.isUnterminated()) { + var lastCharIndex = tokenText.length - 1; + var numBackslashes = 0; + while (tokenText.charCodeAt(lastCharIndex - numBackslashes) === 92) { + numBackslashes++; + } + if (numBackslashes & 1) { + var quoteChar = tokenText.charCodeAt(0); + result.finalLexState = quoteChar === 34 + ? 3 + : 2; + } + } + } + else if (token === 3) { + if (scanner.isUnterminated()) { + result.finalLexState = 1; + } + } + else if (ts.isTemplateLiteralKind(token)) { + if (scanner.isUnterminated()) { + if (token === 13) { + result.finalLexState = 5; + } + else if (token === 10) { + result.finalLexState = 4; + } + else { + ts.Debug.fail("Only 'NoSubstitutionTemplateLiteral's and 'TemplateTail's can be unterminated; got SyntaxKind #" + token); + } + } + } + else if (templateStack.length > 0 && ts.lastOrUndefined(templateStack) === 11) { + result.finalLexState = 6; + } + } + } + function addResult(length, classification) { + if (length > 0) { + if (result.entries.length === 0) { + length -= offset; + } + result.entries.push({ length: length, classification: classification }); + } + } + } + function isBinaryExpressionOperatorToken(token) { + switch (token) { + case 35: + case 36: + case 37: + case 33: + case 34: + case 40: + case 41: + case 42: + case 24: + case 25: + case 26: + case 27: + case 87: + case 86: + case 28: + case 29: + case 30: + case 31: + case 43: + case 45: + case 44: + case 48: + case 49: + case 63: + case 62: + case 64: + case 59: + case 60: + case 61: + case 54: + case 55: + case 56: + case 57: + case 58: + case 53: + case 23: + return true; + default: + return false; + } + } + function isPrefixUnaryExpressionOperatorToken(token) { + switch (token) { + case 33: + case 34: + case 47: + case 46: + case 38: + case 39: + return true; + default: + return false; + } + } + function isKeyword(token) { + return token >= 66 && token <= 125; + } + function classFromKind(token) { + if (isKeyword(token)) { + return TokenClass.Keyword; + } + else if (isBinaryExpressionOperatorToken(token) || isPrefixUnaryExpressionOperatorToken(token)) { + return TokenClass.Operator; + } + else if (token >= 14 && token <= 64) { + return TokenClass.Punctuation; + } + switch (token) { + case 7: + return TokenClass.NumberLiteral; + case 8: + return TokenClass.StringLiteral; + case 9: + return TokenClass.RegExpLiteral; + case 6: + case 3: + case 2: + return TokenClass.Comment; + case 5: + case 4: + return TokenClass.Whitespace; + case 65: + default: + if (ts.isTemplateLiteralKind(token)) { + return TokenClass.StringLiteral; + } + return TokenClass.Identifier; + } + } + return { getClassificationsForLine: getClassificationsForLine }; + } + ts.createClassifier = createClassifier; + function getDefaultLibFilePath(options) { + if (typeof __dirname !== "undefined") { + return __dirname + ts.directorySeparator + ts.getDefaultLibFileName(options); + } + throw new Error("getDefaultLibFilePath is only supported when consumed as a node module. "); + } + ts.getDefaultLibFilePath = getDefaultLibFilePath; + function initializeServices() { + ts.objectAllocator = { + getNodeConstructor: function (kind) { + function Node() { + } + var proto = kind === 227 ? new SourceFileObject() : new NodeObject(); + proto.kind = kind; + proto.pos = 0; + proto.end = 0; + proto.flags = 0; + proto.parent = undefined; + Node.prototype = proto; + return Node; + }, + getSymbolConstructor: function () { return SymbolObject; }, + getTypeConstructor: function () { return TypeObject; }, + getSignatureConstructor: function () { return SignatureObject; } + }; + } + initializeServices(); +})(ts || (ts = {})); +/// +/// +/// +/// +/// +var ts; +(function (ts) { + var server; + (function (server) { + var spaceCache = []; + function generateSpaces(n) { + if (!spaceCache[n]) { + var strBuilder = ""; + for (var i = 0; i < n; i++) { + strBuilder += " "; + } + spaceCache[n] = strBuilder; + } + return spaceCache[n]; + } + server.generateSpaces = generateSpaces; + function compareNumber(a, b) { + if (a < b) { + return -1; + } + else if (a == b) { + return 0; + } + else + return 1; + } + function compareFileStart(a, b) { + if (a.file < b.file) { + return -1; + } + else if (a.file == b.file) { + var n = compareNumber(a.start.line, b.start.line); + if (n == 0) { + return compareNumber(a.start.offset, b.start.offset); + } + else + return n; + } + else { + return 1; + } + } + function formatDiag(fileName, project, diag) { + return { + start: project.compilerService.host.positionToLineOffset(fileName, diag.start), + end: project.compilerService.host.positionToLineOffset(fileName, diag.start + diag.length), + text: ts.flattenDiagnosticMessageText(diag.messageText, "\n") + }; + } + function allEditsBeforePos(edits, pos) { + for (var i = 0, len = edits.length; i < len; i++) { + if (ts.textSpanEnd(edits[i].span) >= pos) { + return false; + } + } + return true; + } + var CommandNames; + (function (CommandNames) { + CommandNames.Change = "change"; + CommandNames.Close = "close"; + CommandNames.Completions = "completions"; + CommandNames.CompletionDetails = "completionEntryDetails"; + CommandNames.SignatureHelp = "signatureHelp"; + CommandNames.Configure = "configure"; + CommandNames.Definition = "definition"; + CommandNames.Format = "format"; + CommandNames.Formatonkey = "formatonkey"; + CommandNames.Geterr = "geterr"; + CommandNames.NavBar = "navbar"; + CommandNames.Navto = "navto"; + CommandNames.Open = "open"; + CommandNames.Quickinfo = "quickinfo"; + CommandNames.References = "references"; + CommandNames.Reload = "reload"; + CommandNames.Rename = "rename"; + CommandNames.Saveto = "saveto"; + CommandNames.Brace = "brace"; + CommandNames.Unknown = "unknown"; + })(CommandNames = server.CommandNames || (server.CommandNames = {})); + var Errors; + (function (Errors) { + Errors.NoProject = new Error("No Project."); + })(Errors || (Errors = {})); + var Session = (function () { + function Session(host, logger) { + var _this = this; + this.host = host; + this.logger = logger; + this.pendingOperation = false; + this.fileHash = {}; + this.nextFileId = 1; + this.changeSeq = 0; + this.projectService = + new server.ProjectService(host, logger, function (eventName, project, fileName) { + _this.handleEvent(eventName, project, fileName); + }); + } + Session.prototype.handleEvent = function (eventName, project, fileName) { + var _this = this; + if (eventName == "context") { + this.projectService.log("got context event, updating diagnostics for" + fileName, "Info"); + this.updateErrorCheck([{ fileName: fileName, project: project }], this.changeSeq, function (n) { return n == _this.changeSeq; }, 100); + } + }; + Session.prototype.logError = function (err, cmd) { + var typedErr = err; + var msg = "Exception on executing command " + cmd; + if (typedErr.message) { + msg += ":\n" + typedErr.message; + if (typedErr.stack) { + msg += "\n" + typedErr.stack; + } + } + this.projectService.log(msg); + }; + Session.prototype.sendLineToClient = function (line) { + this.host.write(line + this.host.newLine); + }; + Session.prototype.send = function (msg) { + var json = JSON.stringify(msg); + if (this.logger.isVerbose()) { + this.logger.info(msg.type + ": " + json); + } + this.sendLineToClient('Content-Length: ' + (1 + Buffer.byteLength(json, 'utf8')) + + '\r\n\r\n' + json); + }; + Session.prototype.event = function (info, eventName) { + var ev = { + seq: 0, + type: "event", + event: eventName, + body: info + }; + this.send(ev); + }; + Session.prototype.response = function (info, cmdName, reqSeq, errorMsg) { + if (reqSeq === void 0) { reqSeq = 0; } + var res = { + seq: 0, + type: "response", + command: cmdName, + request_seq: reqSeq, + success: !errorMsg + }; + if (!errorMsg) { + res.body = info; + } + else { + res.message = errorMsg; + } + this.send(res); + }; + Session.prototype.output = function (body, commandName, requestSequence, errorMessage) { + if (requestSequence === void 0) { requestSequence = 0; } + this.response(body, commandName, requestSequence, errorMessage); + }; + Session.prototype.semanticCheck = function (file, project) { + try { + var diags = project.compilerService.languageService.getSemanticDiagnostics(file); + if (diags) { + var bakedDiags = diags.map(function (diag) { return formatDiag(file, project, diag); }); + this.event({ file: file, diagnostics: bakedDiags }, "semanticDiag"); + } + } + catch (err) { + this.logError(err, "semantic check"); + } + }; + Session.prototype.syntacticCheck = function (file, project) { + try { + var diags = project.compilerService.languageService.getSyntacticDiagnostics(file); + if (diags) { + var bakedDiags = diags.map(function (diag) { return formatDiag(file, project, diag); }); + this.event({ file: file, diagnostics: bakedDiags }, "syntaxDiag"); + } + } + catch (err) { + this.logError(err, "syntactic check"); + } + }; + Session.prototype.errorCheck = function (file, project) { + this.syntacticCheck(file, project); + this.semanticCheck(file, project); + }; + Session.prototype.updateProjectStructure = function (seq, matchSeq, ms) { + var _this = this; + if (ms === void 0) { ms = 1500; } + setTimeout(function () { + if (matchSeq(seq)) { + _this.projectService.updateProjectStructure(); + } + }, ms); + }; + Session.prototype.updateErrorCheck = function (checkList, seq, matchSeq, ms, followMs) { + var _this = this; + if (ms === void 0) { ms = 1500; } + if (followMs === void 0) { followMs = 200; } + if (followMs > ms) { + followMs = ms; + } + if (this.errorTimer) { + clearTimeout(this.errorTimer); + } + if (this.immediateId) { + clearImmediate(this.immediateId); + this.immediateId = undefined; + } + var index = 0; + var checkOne = function () { + if (matchSeq(seq)) { + var checkSpec = checkList[index++]; + if (checkSpec.project.getSourceFileFromName(checkSpec.fileName, true)) { + _this.syntacticCheck(checkSpec.fileName, checkSpec.project); + _this.immediateId = setImmediate(function () { + _this.semanticCheck(checkSpec.fileName, checkSpec.project); + _this.immediateId = undefined; + if (checkList.length > index) { + _this.errorTimer = setTimeout(checkOne, followMs); + } + else { + _this.errorTimer = undefined; + } + }); + } + } + }; + if ((checkList.length > index) && (matchSeq(seq))) { + this.errorTimer = setTimeout(checkOne, ms); + } + }; + Session.prototype.getDefinition = function (line, offset, fileName) { + var file = ts.normalizePath(fileName); + var project = this.projectService.getProjectForFile(file); + if (!project) { + throw Errors.NoProject; + } + var compilerService = project.compilerService; + var position = compilerService.host.lineOffsetToPosition(file, line, offset); + var definitions = compilerService.languageService.getDefinitionAtPosition(file, position); + if (!definitions) { + return undefined; + } + return definitions.map(function (def) { return ({ + file: def.fileName, + start: compilerService.host.positionToLineOffset(def.fileName, def.textSpan.start), + end: compilerService.host.positionToLineOffset(def.fileName, ts.textSpanEnd(def.textSpan)) + }); }); + }; + Session.prototype.getRenameLocations = function (line, offset, fileName, findInComments, findInStrings) { + var file = ts.normalizePath(fileName); + var project = this.projectService.getProjectForFile(file); + if (!project) { + throw Errors.NoProject; + } + var compilerService = project.compilerService; + var position = compilerService.host.lineOffsetToPosition(file, line, offset); + var renameInfo = compilerService.languageService.getRenameInfo(file, position); + if (!renameInfo) { + return undefined; + } + if (!renameInfo.canRename) { + return { + info: renameInfo, + locs: [] + }; + } + var renameLocations = compilerService.languageService.findRenameLocations(file, position, findInStrings, findInComments); + if (!renameLocations) { + return undefined; + } + var bakedRenameLocs = renameLocations.map(function (location) { return ({ + file: location.fileName, + start: compilerService.host.positionToLineOffset(location.fileName, location.textSpan.start), + end: compilerService.host.positionToLineOffset(location.fileName, ts.textSpanEnd(location.textSpan)) + }); }).sort(function (a, b) { + if (a.file < b.file) { + return -1; + } + else if (a.file > b.file) { + return 1; + } + else { + if (a.start.line < b.start.line) { + return 1; + } + else if (a.start.line > b.start.line) { + return -1; + } + else { + return b.start.offset - a.start.offset; + } + } + }).reduce(function (accum, cur) { + var curFileAccum; + if (accum.length > 0) { + curFileAccum = accum[accum.length - 1]; + if (curFileAccum.file != cur.file) { + curFileAccum = undefined; + } + } + if (!curFileAccum) { + curFileAccum = { file: cur.file, locs: [] }; + accum.push(curFileAccum); + } + curFileAccum.locs.push({ start: cur.start, end: cur.end }); + return accum; + }, []); + return { info: renameInfo, locs: bakedRenameLocs }; + }; + Session.prototype.getReferences = function (line, offset, fileName) { + var file = ts.normalizePath(fileName); + var project = this.projectService.getProjectForFile(file); + if (!project) { + throw Errors.NoProject; + } + var compilerService = project.compilerService; + var position = compilerService.host.lineOffsetToPosition(file, line, offset); + var references = compilerService.languageService.getReferencesAtPosition(file, position); + if (!references) { + return undefined; + } + var nameInfo = compilerService.languageService.getQuickInfoAtPosition(file, position); + if (!nameInfo) { + return undefined; + } + var displayString = ts.displayPartsToString(nameInfo.displayParts); + var nameSpan = nameInfo.textSpan; + var nameColStart = compilerService.host.positionToLineOffset(file, nameSpan.start).offset; + var nameText = compilerService.host.getScriptSnapshot(file).getText(nameSpan.start, ts.textSpanEnd(nameSpan)); + var bakedRefs = references.map(function (ref) { + var start = compilerService.host.positionToLineOffset(ref.fileName, ref.textSpan.start); + var refLineSpan = compilerService.host.lineToTextSpan(ref.fileName, start.line - 1); + var snap = compilerService.host.getScriptSnapshot(ref.fileName); + var lineText = snap.getText(refLineSpan.start, ts.textSpanEnd(refLineSpan)).replace(/\r|\n/g, ""); + return { + file: ref.fileName, + start: start, + lineText: lineText, + end: compilerService.host.positionToLineOffset(ref.fileName, ts.textSpanEnd(ref.textSpan)), + isWriteAccess: ref.isWriteAccess + }; + }).sort(compareFileStart); + return { + refs: bakedRefs, + symbolName: nameText, + symbolStartOffset: nameColStart, + symbolDisplayString: displayString + }; + }; + Session.prototype.openClientFile = function (fileName) { + var file = ts.normalizePath(fileName); + this.projectService.openClientFile(file); + }; + Session.prototype.getQuickInfo = function (line, offset, fileName) { + var file = ts.normalizePath(fileName); + var project = this.projectService.getProjectForFile(file); + if (!project) { + throw Errors.NoProject; + } + var compilerService = project.compilerService; + var position = compilerService.host.lineOffsetToPosition(file, line, offset); + var quickInfo = compilerService.languageService.getQuickInfoAtPosition(file, position); + if (!quickInfo) { + return undefined; + } + var displayString = ts.displayPartsToString(quickInfo.displayParts); + var docString = ts.displayPartsToString(quickInfo.documentation); + return { + kind: quickInfo.kind, + kindModifiers: quickInfo.kindModifiers, + start: compilerService.host.positionToLineOffset(file, quickInfo.textSpan.start), + end: compilerService.host.positionToLineOffset(file, ts.textSpanEnd(quickInfo.textSpan)), + displayString: displayString, + documentation: docString + }; + }; + Session.prototype.getFormattingEditsForRange = function (line, offset, endLine, endOffset, fileName) { + var file = ts.normalizePath(fileName); + var project = this.projectService.getProjectForFile(file); + if (!project) { + throw Errors.NoProject; + } + var compilerService = project.compilerService; + var startPosition = compilerService.host.lineOffsetToPosition(file, line, offset); + var endPosition = compilerService.host.lineOffsetToPosition(file, endLine, endOffset); + var edits = compilerService.languageService.getFormattingEditsForRange(file, startPosition, endPosition, this.projectService.getFormatCodeOptions(file)); + if (!edits) { + return undefined; + } + return edits.map(function (edit) { + return { + start: compilerService.host.positionToLineOffset(file, edit.span.start), + end: compilerService.host.positionToLineOffset(file, ts.textSpanEnd(edit.span)), + newText: edit.newText ? edit.newText : "" + }; + }); + }; + Session.prototype.getFormattingEditsAfterKeystroke = function (line, offset, key, fileName) { + var file = ts.normalizePath(fileName); + var project = this.projectService.getProjectForFile(file); + if (!project) { + throw Errors.NoProject; + } + var compilerService = project.compilerService; + var position = compilerService.host.lineOffsetToPosition(file, line, offset); + var formatOptions = this.projectService.getFormatCodeOptions(file); + var edits = compilerService.languageService.getFormattingEditsAfterKeystroke(file, position, key, formatOptions); + if ((key == "\n") && ((!edits) || (edits.length == 0) || allEditsBeforePos(edits, position))) { + var scriptInfo = compilerService.host.getScriptInfo(file); + if (scriptInfo) { + var lineInfo = scriptInfo.getLineInfo(line); + if (lineInfo && (lineInfo.leaf) && (lineInfo.leaf.text)) { + var lineText = lineInfo.leaf.text; + if (lineText.search("\\S") < 0) { + var editorOptions = { + IndentSize: formatOptions.IndentSize, + TabSize: formatOptions.TabSize, + NewLineCharacter: "\n", + ConvertTabsToSpaces: true + }; + var indentPosition = compilerService.languageService.getIndentationAtPosition(file, position, editorOptions); + for (var i = 0, len = lineText.length; i < len; i++) { + if (lineText.charAt(i) == " ") { + indentPosition--; + } + else { + break; + } + } + if (indentPosition > 0) { + var spaces = generateSpaces(indentPosition); + edits.push({ span: ts.createTextSpanFromBounds(position, position), newText: spaces }); + } + else if (indentPosition < 0) { + edits.push({ + span: ts.createTextSpanFromBounds(position, position - indentPosition), + newText: "" + }); + } + } + } + } + } + if (!edits) { + return undefined; + } + return edits.map(function (edit) { + return { + start: compilerService.host.positionToLineOffset(file, edit.span.start), + end: compilerService.host.positionToLineOffset(file, ts.textSpanEnd(edit.span)), + newText: edit.newText ? edit.newText : "" + }; + }); + }; + Session.prototype.getCompletions = function (line, offset, prefix, fileName) { + if (!prefix) { + prefix = ""; + } + var file = ts.normalizePath(fileName); + var project = this.projectService.getProjectForFile(file); + if (!project) { + throw Errors.NoProject; + } + var compilerService = project.compilerService; + var position = compilerService.host.lineOffsetToPosition(file, line, offset); + var completions = compilerService.languageService.getCompletionsAtPosition(file, position); + if (!completions) { + return undefined; + } + return completions.entries.reduce(function (result, entry) { + if (completions.isMemberCompletion || (entry.name.toLowerCase().indexOf(prefix.toLowerCase()) == 0)) { + result.push(entry); + } + return result; + }, []).sort(function (a, b) { return a.name.localeCompare(b.name); }); + }; + Session.prototype.getCompletionEntryDetails = function (line, offset, entryNames, fileName) { + var file = ts.normalizePath(fileName); + var project = this.projectService.getProjectForFile(file); + if (!project) { + throw Errors.NoProject; + } + var compilerService = project.compilerService; + var position = compilerService.host.lineOffsetToPosition(file, line, offset); + return entryNames.reduce(function (accum, entryName) { + var details = compilerService.languageService.getCompletionEntryDetails(file, position, entryName); + if (details) { + accum.push(details); + } + return accum; + }, []); + }; + Session.prototype.getSignatureHelpItems = function (line, offset, fileName) { + var file = ts.normalizePath(fileName); + var project = this.projectService.getProjectForFile(file); + if (!project) { + throw Errors.NoProject; + } + var compilerService = project.compilerService; + var position = compilerService.host.lineOffsetToPosition(file, line, offset); + var helpItems = compilerService.languageService.getSignatureHelpItems(file, position); + if (!helpItems) { + return undefined; + } + var span = helpItems.applicableSpan; + var result = { + items: helpItems.items, + applicableSpan: { + start: compilerService.host.positionToLineOffset(file, span.start), + end: compilerService.host.positionToLineOffset(file, span.start + span.length) + }, + selectedItemIndex: helpItems.selectedItemIndex, + argumentIndex: helpItems.argumentIndex, + argumentCount: helpItems.argumentCount + }; + return result; + }; + Session.prototype.getDiagnostics = function (delay, fileNames) { + var _this = this; + var checkList = fileNames.reduce(function (accum, fileName) { + fileName = ts.normalizePath(fileName); + var project = _this.projectService.getProjectForFile(fileName); + if (project) { + accum.push({ fileName: fileName, project: project }); + } + return accum; + }, []); + if (checkList.length > 0) { + this.updateErrorCheck(checkList, this.changeSeq, function (n) { return n == _this.changeSeq; }, delay); + } + }; + Session.prototype.change = function (line, offset, endLine, endOffset, insertString, fileName) { + var _this = this; + var file = ts.normalizePath(fileName); + var project = this.projectService.getProjectForFile(file); + if (project) { + var compilerService = project.compilerService; + var start = compilerService.host.lineOffsetToPosition(file, line, offset); + var end = compilerService.host.lineOffsetToPosition(file, endLine, endOffset); + if (start >= 0) { + compilerService.host.editScript(file, start, end, insertString); + this.changeSeq++; + } + this.updateProjectStructure(this.changeSeq, function (n) { return n == _this.changeSeq; }); + } + }; + Session.prototype.reload = function (fileName, tempFileName, reqSeq) { + var _this = this; + if (reqSeq === void 0) { reqSeq = 0; } + var file = ts.normalizePath(fileName); + var tmpfile = ts.normalizePath(tempFileName); + var project = this.projectService.getProjectForFile(file); + if (project) { + this.changeSeq++; + project.compilerService.host.reloadScript(file, tmpfile, function () { + _this.output(undefined, CommandNames.Reload, reqSeq); + }); + } + }; + Session.prototype.saveToTmp = function (fileName, tempFileName) { + var file = ts.normalizePath(fileName); + var tmpfile = ts.normalizePath(tempFileName); + var project = this.projectService.getProjectForFile(file); + if (project) { + project.compilerService.host.saveTo(file, tmpfile); + } + }; + Session.prototype.closeClientFile = function (fileName) { + var file = ts.normalizePath(fileName); + this.projectService.closeClientFile(file); + }; + Session.prototype.decorateNavigationBarItem = function (project, fileName, items) { + var _this = this; + if (!items) { + return undefined; + } + var compilerService = project.compilerService; + return items.map(function (item) { return ({ + text: item.text, + kind: item.kind, + kindModifiers: item.kindModifiers, + spans: item.spans.map(function (span) { return ({ + start: compilerService.host.positionToLineOffset(fileName, span.start), + end: compilerService.host.positionToLineOffset(fileName, ts.textSpanEnd(span)) + }); }), + childItems: _this.decorateNavigationBarItem(project, fileName, item.childItems) + }); }); + }; + Session.prototype.getNavigationBarItems = function (fileName) { + var file = ts.normalizePath(fileName); + var project = this.projectService.getProjectForFile(file); + if (!project) { + throw Errors.NoProject; + } + var compilerService = project.compilerService; + var items = compilerService.languageService.getNavigationBarItems(file); + if (!items) { + return undefined; + } + return this.decorateNavigationBarItem(project, fileName, items); + }; + Session.prototype.getNavigateToItems = function (searchValue, fileName, maxResultCount) { + var file = ts.normalizePath(fileName); + var project = this.projectService.getProjectForFile(file); + if (!project) { + throw Errors.NoProject; + } + var compilerService = project.compilerService; + var navItems = compilerService.languageService.getNavigateToItems(searchValue, maxResultCount); + if (!navItems) { + return undefined; + } + return navItems.map(function (navItem) { + var start = compilerService.host.positionToLineOffset(navItem.fileName, navItem.textSpan.start); + var end = compilerService.host.positionToLineOffset(navItem.fileName, ts.textSpanEnd(navItem.textSpan)); + var bakedItem = { + name: navItem.name, + kind: navItem.kind, + file: navItem.fileName, + start: start, + end: end + }; + if (navItem.kindModifiers && (navItem.kindModifiers != "")) { + bakedItem.kindModifiers = navItem.kindModifiers; + } + if (navItem.matchKind != 'none') { + bakedItem.matchKind = navItem.matchKind; + } + if (navItem.containerName && (navItem.containerName.length > 0)) { + bakedItem.containerName = navItem.containerName; + } + if (navItem.containerKind && (navItem.containerKind.length > 0)) { + bakedItem.containerKind = navItem.containerKind; + } + return bakedItem; + }); + }; + Session.prototype.getBraceMatching = function (line, offset, fileName) { + var file = ts.normalizePath(fileName); + var project = this.projectService.getProjectForFile(file); + if (!project) { + throw Errors.NoProject; + } + var compilerService = project.compilerService; + var position = compilerService.host.lineOffsetToPosition(file, line, offset); + var spans = compilerService.languageService.getBraceMatchingAtPosition(file, position); + if (!spans) { + return undefined; + } + return spans.map(function (span) { return ({ + start: compilerService.host.positionToLineOffset(file, span.start), + end: compilerService.host.positionToLineOffset(file, span.start + span.length) + }); }); + }; + Session.prototype.onMessage = function (message) { + if (this.logger.isVerbose()) { + this.logger.info("request: " + message); + var start = process.hrtime(); + } + try { + var request = JSON.parse(message); + var response; + var errorMessage; + var responseRequired = true; + switch (request.command) { + case CommandNames.Definition: { + var defArgs = request.arguments; + response = this.getDefinition(defArgs.line, defArgs.offset, defArgs.file); + break; + } + case CommandNames.References: { + var refArgs = request.arguments; + response = this.getReferences(refArgs.line, refArgs.offset, refArgs.file); + break; + } + case CommandNames.Rename: { + var renameArgs = request.arguments; + response = this.getRenameLocations(renameArgs.line, renameArgs.offset, renameArgs.file, renameArgs.findInComments, renameArgs.findInStrings); + break; + } + case CommandNames.Open: { + var openArgs = request.arguments; + this.openClientFile(openArgs.file); + responseRequired = false; + break; + } + case CommandNames.Quickinfo: { + var quickinfoArgs = request.arguments; + response = this.getQuickInfo(quickinfoArgs.line, quickinfoArgs.offset, quickinfoArgs.file); + break; + } + case CommandNames.Format: { + var formatArgs = request.arguments; + response = this.getFormattingEditsForRange(formatArgs.line, formatArgs.offset, formatArgs.endLine, formatArgs.endOffset, formatArgs.file); + break; + } + case CommandNames.Formatonkey: { + var formatOnKeyArgs = request.arguments; + response = this.getFormattingEditsAfterKeystroke(formatOnKeyArgs.line, formatOnKeyArgs.offset, formatOnKeyArgs.key, formatOnKeyArgs.file); + break; + } + case CommandNames.Completions: { + var completionsArgs = request.arguments; + response = this.getCompletions(completionsArgs.line, completionsArgs.offset, completionsArgs.prefix, completionsArgs.file); + break; + } + case CommandNames.CompletionDetails: { + var completionDetailsArgs = request.arguments; + response = + this.getCompletionEntryDetails(completionDetailsArgs.line, completionDetailsArgs.offset, completionDetailsArgs.entryNames, completionDetailsArgs.file); + break; + } + case CommandNames.SignatureHelp: { + var signatureHelpArgs = request.arguments; + response = this.getSignatureHelpItems(signatureHelpArgs.line, signatureHelpArgs.offset, signatureHelpArgs.file); + break; + } + case CommandNames.Geterr: { + var geterrArgs = request.arguments; + response = this.getDiagnostics(geterrArgs.delay, geterrArgs.files); + responseRequired = false; + break; + } + case CommandNames.Change: { + var changeArgs = request.arguments; + this.change(changeArgs.line, changeArgs.offset, changeArgs.endLine, changeArgs.endOffset, changeArgs.insertString, changeArgs.file); + responseRequired = false; + break; + } + case CommandNames.Configure: { + var configureArgs = request.arguments; + this.projectService.setHostConfiguration(configureArgs); + this.output(undefined, CommandNames.Configure, request.seq); + responseRequired = false; + break; + } + case CommandNames.Reload: { + var reloadArgs = request.arguments; + this.reload(reloadArgs.file, reloadArgs.tmpfile, request.seq); + responseRequired = false; + break; + } + case CommandNames.Saveto: { + var savetoArgs = request.arguments; + this.saveToTmp(savetoArgs.file, savetoArgs.tmpfile); + responseRequired = false; + break; + } + case CommandNames.Close: { + var closeArgs = request.arguments; + this.closeClientFile(closeArgs.file); + responseRequired = false; + break; + } + case CommandNames.Navto: { + var navtoArgs = request.arguments; + response = this.getNavigateToItems(navtoArgs.searchValue, navtoArgs.file, navtoArgs.maxResultCount); + break; + } + case CommandNames.Brace: { + var braceArguments = request.arguments; + response = this.getBraceMatching(braceArguments.line, braceArguments.offset, braceArguments.file); + break; + } + case CommandNames.NavBar: { + var navBarArgs = request.arguments; + response = this.getNavigationBarItems(navBarArgs.file); + break; + } + default: { + this.projectService.log("Unrecognized JSON command: " + message); + this.output(undefined, CommandNames.Unknown, request.seq, "Unrecognized JSON command: " + request.command); + break; + } + } + if (this.logger.isVerbose()) { + var elapsed = process.hrtime(start); + var seconds = elapsed[0]; + var nanoseconds = elapsed[1]; + var elapsedMs = ((1e9 * seconds) + nanoseconds) / 1000000.0; + var leader = "Elapsed time (in milliseconds)"; + if (!responseRequired) { + leader = "Async elapsed time (in milliseconds)"; + } + this.logger.msg(leader + ": " + elapsedMs.toFixed(4).toString(), "Perf"); + } + if (response) { + this.output(response, request.command, request.seq); + } + else if (responseRequired) { + this.output(undefined, request.command, request.seq, "No content available."); + } + } + catch (err) { + if (err instanceof ts.OperationCanceledException) { + } + this.logError(err, message); + this.output(undefined, request ? request.command : CommandNames.Unknown, request ? request.seq : 0, "Error processing request. " + err.message); + } + }; + return Session; + })(); + server.Session = Session; + })(server = ts.server || (ts.server = {})); +})(ts || (ts = {})); +/// +/// +/// +/// +/// +var ts; +(function (ts) { + var server; + (function (server) { + var lineCollectionCapacity = 4; + function mergeFormatOptions(formatCodeOptions, formatOptions) { + var hasOwnProperty = Object.prototype.hasOwnProperty; + Object.keys(formatOptions).forEach(function (key) { + var codeKey = key.charAt(0).toUpperCase() + key.substring(1); + if (hasOwnProperty.call(formatCodeOptions, codeKey)) { + formatCodeOptions[codeKey] = formatOptions[key]; + } + }); + } + var ScriptInfo = (function () { + function ScriptInfo(host, fileName, content, isOpen) { + if (isOpen === void 0) { isOpen = false; } + this.host = host; + this.fileName = fileName; + this.content = content; + this.isOpen = isOpen; + this.children = []; + this.formatCodeOptions = ts.clone(CompilerService.defaultFormatCodeOptions); + this.svc = ScriptVersionCache.fromString(content); + } + ScriptInfo.prototype.setFormatOptions = function (formatOptions) { + if (formatOptions) { + mergeFormatOptions(this.formatCodeOptions, formatOptions); + } + }; + ScriptInfo.prototype.close = function () { + this.isOpen = false; + }; + ScriptInfo.prototype.addChild = function (childInfo) { + this.children.push(childInfo); + }; + ScriptInfo.prototype.snap = function () { + return this.svc.getSnapshot(); + }; + ScriptInfo.prototype.getText = function () { + var snap = this.snap(); + return snap.getText(0, snap.getLength()); + }; + ScriptInfo.prototype.getLineInfo = function (line) { + var snap = this.snap(); + return snap.index.lineNumberToInfo(line); + }; + ScriptInfo.prototype.editContent = function (start, end, newText) { + this.svc.edit(start, end - start, newText); + }; + ScriptInfo.prototype.getTextChangeRangeBetweenVersions = function (startVersion, endVersion) { + return this.svc.getTextChangesBetweenVersions(startVersion, endVersion); + }; + ScriptInfo.prototype.getChangeRange = function (oldSnapshot) { + return this.snap().getChangeRange(oldSnapshot); + }; + return ScriptInfo; + })(); + var LSHost = (function () { + function LSHost(host, project) { + this.host = host; + this.project = project; + this.ls = null; + this.filenameToScript = {}; + this.roots = []; + } + LSHost.prototype.getDefaultLibFileName = function () { + var nodeModuleBinDir = ts.getDirectoryPath(ts.normalizePath(this.host.getExecutingFilePath())); + return ts.combinePaths(nodeModuleBinDir, ts.getDefaultLibFileName(this.compilationSettings)); + }; + LSHost.prototype.getScriptSnapshot = function (filename) { + var scriptInfo = this.getScriptInfo(filename); + if (scriptInfo) { + return scriptInfo.snap(); + } + }; + LSHost.prototype.setCompilationSettings = function (opt) { + this.compilationSettings = opt; + }; + LSHost.prototype.lineAffectsRefs = function (filename, line) { + var info = this.getScriptInfo(filename); + var lineInfo = info.getLineInfo(line); + if (lineInfo && lineInfo.text) { + var regex = /reference|import|\/\*|\*\//; + return regex.test(lineInfo.text); + } + }; + LSHost.prototype.getCompilationSettings = function () { + return this.compilationSettings; + }; + LSHost.prototype.getScriptFileNames = function () { + return this.roots.map(function (root) { return root.fileName; }); + }; + LSHost.prototype.getScriptVersion = function (filename) { + return this.getScriptInfo(filename).svc.latestVersion().toString(); + }; + LSHost.prototype.getCurrentDirectory = function () { + return ""; + }; + LSHost.prototype.getScriptIsOpen = function (filename) { + return this.getScriptInfo(filename).isOpen; + }; + LSHost.prototype.removeReferencedFile = function (info) { + if (!info.isOpen) { + this.filenameToScript[info.fileName] = undefined; + } + }; + LSHost.prototype.getScriptInfo = function (filename) { + var scriptInfo = ts.lookUp(this.filenameToScript, filename); + if (!scriptInfo) { + scriptInfo = this.project.openReferencedFile(filename); + if (scriptInfo) { + this.filenameToScript[scriptInfo.fileName] = scriptInfo; + } + } + else { + } + return scriptInfo; + }; + LSHost.prototype.addRoot = function (info) { + var scriptInfo = ts.lookUp(this.filenameToScript, info.fileName); + if (!scriptInfo) { + this.filenameToScript[info.fileName] = info; + this.roots.push(info); + } + }; + LSHost.prototype.saveTo = function (filename, tmpfilename) { + var script = this.getScriptInfo(filename); + if (script) { + var snap = script.snap(); + this.host.writeFile(tmpfilename, snap.getText(0, snap.getLength())); + } + }; + LSHost.prototype.reloadScript = function (filename, tmpfilename, cb) { + var script = this.getScriptInfo(filename); + if (script) { + script.svc.reloadFromFile(tmpfilename, cb); + } + }; + LSHost.prototype.editScript = function (filename, start, end, newText) { + var script = this.getScriptInfo(filename); + if (script) { + script.editContent(start, end, newText); + return; + } + throw new Error("No script with name '" + filename + "'"); + }; + LSHost.prototype.resolvePath = function (path) { + var start = new Date().getTime(); + var result = this.host.resolvePath(path); + return result; + }; + LSHost.prototype.fileExists = function (path) { + var start = new Date().getTime(); + var result = this.host.fileExists(path); + return result; + }; + LSHost.prototype.directoryExists = function (path) { + return this.host.directoryExists(path); + }; + LSHost.prototype.lineToTextSpan = function (filename, line) { + var script = this.filenameToScript[filename]; + var index = script.snap().index; + var lineInfo = index.lineNumberToInfo(line + 1); + var len; + if (lineInfo.leaf) { + len = lineInfo.leaf.text.length; + } + else { + var nextLineInfo = index.lineNumberToInfo(line + 2); + len = nextLineInfo.offset - lineInfo.offset; + } + return ts.createTextSpan(lineInfo.offset, len); + }; + LSHost.prototype.lineOffsetToPosition = function (filename, line, offset) { + var script = this.filenameToScript[filename]; + var index = script.snap().index; + var lineInfo = index.lineNumberToInfo(line); + return (lineInfo.offset + offset - 1); + }; + LSHost.prototype.positionToLineOffset = function (filename, position) { + var script = this.filenameToScript[filename]; + var index = script.snap().index; + var lineOffset = index.charOffsetToLineNumberAndPos(position); + return { line: lineOffset.line, offset: lineOffset.offset + 1 }; + }; + return LSHost; + })(); + function getAbsolutePath(filename, directory) { + var rootLength = ts.getRootLength(filename); + if (rootLength > 0) { + return filename; + } + else { + var splitFilename = filename.split('/'); + var splitDir = directory.split('/'); + var i = 0; + var dirTail = 0; + var sflen = splitFilename.length; + while ((i < sflen) && (splitFilename[i].charAt(0) == '.')) { + var dots = splitFilename[i]; + if (dots == '..') { + dirTail++; + } + else if (dots != '.') { + return undefined; + } + i++; + } + return splitDir.slice(0, splitDir.length - dirTail).concat(splitFilename.slice(i)).join('/'); + } + } + var Project = (function () { + function Project(projectService, projectOptions) { + this.projectService = projectService; + this.projectOptions = projectOptions; + this.filenameToSourceFile = {}; + this.updateGraphSeq = 0; + this.openRefCount = 0; + this.compilerService = new CompilerService(this, projectOptions && projectOptions.compilerOptions); + } + Project.prototype.addOpenRef = function () { + this.openRefCount++; + }; + Project.prototype.deleteOpenRef = function () { + this.openRefCount--; + return this.openRefCount; + }; + Project.prototype.openReferencedFile = function (filename) { + return this.projectService.openFile(filename, false); + }; + Project.prototype.getSourceFile = function (info) { + return this.filenameToSourceFile[info.fileName]; + }; + Project.prototype.getSourceFileFromName = function (filename, requireOpen) { + var info = this.projectService.getScriptInfo(filename); + if (info) { + if ((!requireOpen) || info.isOpen) { + return this.getSourceFile(info); + } + } + }; + Project.prototype.isRoot = function (info) { + return this.compilerService.host.roots.some(function (root) { return root === info; }); + }; + Project.prototype.removeReferencedFile = function (info) { + this.compilerService.host.removeReferencedFile(info); + this.updateGraph(); + }; + Project.prototype.updateFileMap = function () { + this.filenameToSourceFile = {}; + var sourceFiles = this.program.getSourceFiles(); + for (var i = 0, len = sourceFiles.length; i < len; i++) { + var normFilename = ts.normalizePath(sourceFiles[i].fileName); + this.filenameToSourceFile[normFilename] = sourceFiles[i]; + } + }; + Project.prototype.finishGraph = function () { + this.updateGraph(); + this.compilerService.languageService.getNavigateToItems(".*"); + }; + Project.prototype.updateGraph = function () { + this.program = this.compilerService.languageService.getProgram(); + this.updateFileMap(); + }; + Project.prototype.isConfiguredProject = function () { + return this.projectFilename; + }; + Project.prototype.addRoot = function (info) { + info.defaultProject = this; + this.compilerService.host.addRoot(info); + }; + Project.prototype.filesToString = function () { + var strBuilder = ""; + ts.forEachValue(this.filenameToSourceFile, function (sourceFile) { strBuilder += sourceFile.fileName + "\n"; }); + return strBuilder; + }; + Project.prototype.setProjectOptions = function (projectOptions) { + this.projectOptions = projectOptions; + if (projectOptions.compilerOptions) { + this.compilerService.setCompilerOptions(projectOptions.compilerOptions); + } + }; + return Project; + })(); + server.Project = Project; + function copyListRemovingItem(item, list) { + var copiedList = []; + for (var i = 0, len = list.length; i < len; i++) { + if (list[i] != item) { + copiedList.push(list[i]); + } + } + return copiedList; + } + var ProjectService = (function () { + function ProjectService(host, psLogger, eventHandler) { + this.host = host; + this.psLogger = psLogger; + this.eventHandler = eventHandler; + this.filenameToScriptInfo = {}; + this.openFileRoots = []; + this.inferredProjects = []; + this.configuredProjects = []; + this.openFilesReferenced = []; + this.openFileRootsConfigured = []; + this.addDefaultHostConfiguration(); + } + ProjectService.prototype.addDefaultHostConfiguration = function () { + this.hostConfiguration = { + formatCodeOptions: ts.clone(CompilerService.defaultFormatCodeOptions), + hostInfo: "Unknown host" + }; + }; + ProjectService.prototype.getFormatCodeOptions = function (file) { + if (file) { + var info = this.filenameToScriptInfo[file]; + if (info) { + return info.formatCodeOptions; + } + } + return this.hostConfiguration.formatCodeOptions; + }; + ProjectService.prototype.watchedFileChanged = function (fileName) { + var info = this.filenameToScriptInfo[fileName]; + if (!info) { + this.psLogger.info("Error: got watch notification for unknown file: " + fileName); + } + if (!this.host.fileExists(fileName)) { + this.fileDeletedInFilesystem(info); + } + else { + if (info && (!info.isOpen)) { + info.svc.reloadFromFile(info.fileName); + } + } + }; + ProjectService.prototype.log = function (msg, type) { + if (type === void 0) { type = "Err"; } + this.psLogger.msg(msg, type); + }; + ProjectService.prototype.setHostConfiguration = function (args) { + if (args.file) { + var info = this.filenameToScriptInfo[args.file]; + if (info) { + info.setFormatOptions(args.formatOptions); + this.log("Host configuration update for file " + args.file); + } + } + else { + if (args.hostInfo !== undefined) { + this.hostConfiguration.hostInfo = args.hostInfo; + this.log("Host information " + args.hostInfo, "Info"); + } + if (args.formatOptions) { + mergeFormatOptions(this.hostConfiguration.formatCodeOptions, args.formatOptions); + this.log("Format host information updated", "Info"); + } + } + }; + ProjectService.prototype.closeLog = function () { + this.psLogger.close(); + }; + ProjectService.prototype.createInferredProject = function (root) { + var iproj = new Project(this); + iproj.addRoot(root); + iproj.finishGraph(); + this.inferredProjects.push(iproj); + return iproj; + }; + ProjectService.prototype.fileDeletedInFilesystem = function (info) { + this.psLogger.info(info.fileName + " deleted"); + if (info.fileWatcher) { + info.fileWatcher.close(); + info.fileWatcher = undefined; + } + if (!info.isOpen) { + this.filenameToScriptInfo[info.fileName] = undefined; + var referencingProjects = this.findReferencingProjects(info); + for (var i = 0, len = referencingProjects.length; i < len; i++) { + referencingProjects[i].removeReferencedFile(info); + } + for (var j = 0, flen = this.openFileRoots.length; j < flen; j++) { + var openFile = this.openFileRoots[j]; + if (this.eventHandler) { + this.eventHandler("context", openFile.defaultProject, openFile.fileName); + } + } + for (var j = 0, flen = this.openFilesReferenced.length; j < flen; j++) { + var openFile = this.openFilesReferenced[j]; + if (this.eventHandler) { + this.eventHandler("context", openFile.defaultProject, openFile.fileName); + } + } + } + this.printProjects(); + }; + ProjectService.prototype.updateConfiguredProjectList = function () { + var configuredProjects = []; + for (var i = 0, len = this.configuredProjects.length; i < len; i++) { + if (this.configuredProjects[i].openRefCount > 0) { + configuredProjects.push(this.configuredProjects[i]); + } + } + this.configuredProjects = configuredProjects; + }; + ProjectService.prototype.setConfiguredProjectRoot = function (info) { + for (var i = 0, len = this.configuredProjects.length; i < len; i++) { + var configuredProject = this.configuredProjects[i]; + if (configuredProject.isRoot(info)) { + info.defaultProject = configuredProject; + configuredProject.addOpenRef(); + return true; + } + } + return false; + }; + ProjectService.prototype.addOpenFile = function (info) { + if (this.setConfiguredProjectRoot(info)) { + this.openFileRootsConfigured.push(info); + } + else { + this.findReferencingProjects(info); + if (info.defaultProject) { + this.openFilesReferenced.push(info); + } + else { + info.defaultProject = this.createInferredProject(info); + var openFileRoots = []; + for (var i = 0, len = this.openFileRoots.length; i < len; i++) { + var r = this.openFileRoots[i]; + if (info.defaultProject.getSourceFile(r)) { + this.inferredProjects = + copyListRemovingItem(r.defaultProject, this.inferredProjects); + this.openFilesReferenced.push(r); + r.defaultProject = info.defaultProject; + } + else { + openFileRoots.push(r); + } + } + this.openFileRoots = openFileRoots; + this.openFileRoots.push(info); + } + } + this.updateConfiguredProjectList(); + }; + ProjectService.prototype.closeOpenFile = function (info) { + var openFileRoots = []; + var removedProject; + for (var i = 0, len = this.openFileRoots.length; i < len; i++) { + if (info === this.openFileRoots[i]) { + removedProject = info.defaultProject; + } + else { + openFileRoots.push(this.openFileRoots[i]); + } + } + this.openFileRoots = openFileRoots; + if (!removedProject) { + var openFileRootsConfigured = []; + for (var i = 0, len = this.openFileRootsConfigured.length; i < len; i++) { + if (info === this.openFileRootsConfigured[i]) { + if (info.defaultProject.deleteOpenRef() === 0) { + removedProject = info.defaultProject; + } + } + else { + openFileRootsConfigured.push(this.openFileRootsConfigured[i]); + } + } + this.openFileRootsConfigured = openFileRootsConfigured; + } + if (removedProject) { + if (removedProject.isConfiguredProject()) { + this.configuredProjects = copyListRemovingItem(removedProject, this.configuredProjects); + } + else { + this.inferredProjects = copyListRemovingItem(removedProject, this.inferredProjects); + } + var openFilesReferenced = []; + var orphanFiles = []; + for (var i = 0, len = this.openFilesReferenced.length; i < len; i++) { + var f = this.openFilesReferenced[i]; + if (f.defaultProject == removedProject) { + f.defaultProject = undefined; + orphanFiles.push(f); + } + else { + openFilesReferenced.push(f); + } + } + this.openFilesReferenced = openFilesReferenced; + for (var i = 0, len = orphanFiles.length; i < len; i++) { + this.addOpenFile(orphanFiles[i]); + } + } + else { + this.openFilesReferenced = copyListRemovingItem(info, this.openFilesReferenced); + } + info.close(); + }; + ProjectService.prototype.findReferencingProjects = function (info, excludedProject) { + var referencingProjects = []; + info.defaultProject = undefined; + for (var i = 0, len = this.inferredProjects.length; i < len; i++) { + var inferredProject = this.inferredProjects[i]; + inferredProject.updateGraph(); + if (inferredProject != excludedProject) { + if (inferredProject.getSourceFile(info)) { + info.defaultProject = inferredProject; + referencingProjects.push(inferredProject); + } + } + } + for (var i = 0, len = this.configuredProjects.length; i < len; i++) { + var configuredProject = this.configuredProjects[i]; + configuredProject.updateGraph(); + if (configuredProject.getSourceFile(info)) { + info.defaultProject = configuredProject; + } + } + return referencingProjects; + }; + ProjectService.prototype.updateProjectStructure = function () { + this.log("updating project structure from ...", "Info"); + this.printProjects(); + var openFilesReferenced = []; + var unattachedOpenFiles = []; + for (var i = 0, len = this.openFilesReferenced.length; i < len; i++) { + var referencedFile = this.openFilesReferenced[i]; + referencedFile.defaultProject.updateGraph(); + var sourceFile = referencedFile.defaultProject.getSourceFile(referencedFile); + if (sourceFile) { + openFilesReferenced.push(referencedFile); + } + else { + unattachedOpenFiles.push(referencedFile); + } + } + this.openFilesReferenced = openFilesReferenced; + var openFileRoots = []; + for (var i = 0, len = this.openFileRoots.length; i < len; i++) { + var rootFile = this.openFileRoots[i]; + var rootedProject = rootFile.defaultProject; + var referencingProjects = this.findReferencingProjects(rootFile, rootedProject); + if (referencingProjects.length == 0) { + rootFile.defaultProject = rootedProject; + openFileRoots.push(rootFile); + } + else { + this.inferredProjects = copyListRemovingItem(rootedProject, this.inferredProjects); + this.openFilesReferenced.push(rootFile); + } + } + this.openFileRoots = openFileRoots; + for (var i = 0, len = unattachedOpenFiles.length; i < len; i++) { + this.addOpenFile(unattachedOpenFiles[i]); + } + this.printProjects(); + }; + ProjectService.prototype.getScriptInfo = function (filename) { + filename = ts.normalizePath(filename); + return ts.lookUp(this.filenameToScriptInfo, filename); + }; + ProjectService.prototype.openFile = function (fileName, openedByClient) { + var _this = this; + fileName = ts.normalizePath(fileName); + var info = ts.lookUp(this.filenameToScriptInfo, fileName); + if (!info) { + var content; + if (this.host.fileExists(fileName)) { + content = this.host.readFile(fileName); + } + if (!content) { + if (openedByClient) { + content = ""; + } + } + if (content !== undefined) { + var indentSize; + info = new ScriptInfo(this.host, fileName, content, openedByClient); + this.filenameToScriptInfo[fileName] = info; + if (!info.isOpen) { + info.fileWatcher = this.host.watchFile(fileName, function (_) { _this.watchedFileChanged(fileName); }); + } + } + } + if (info) { + if (openedByClient) { + info.isOpen = true; + } + } + return info; + }; + ProjectService.prototype.findConfigFile = function (searchPath) { + while (true) { + var fileName = ts.combinePaths(searchPath, "tsconfig.json"); + if (ts.sys.fileExists(fileName)) { + return fileName; + } + var parentPath = ts.getDirectoryPath(searchPath); + if (parentPath === searchPath) { + break; + } + searchPath = parentPath; + } + return undefined; + }; + ProjectService.prototype.openClientFile = function (fileName) { + var searchPath = ts.normalizePath(ts.getDirectoryPath(fileName)); + this.log("Search path: " + searchPath, "Info"); + var configFileName = this.findConfigFile(searchPath); + if (configFileName) { + this.log("Config file name: " + configFileName, "Info"); + } + else { + this.log("no config file"); + } + if (configFileName) { + configFileName = getAbsolutePath(configFileName, searchPath); + } + if (configFileName && (!this.configProjectIsActive(configFileName))) { + var configResult = this.openConfigFile(configFileName, fileName); + if (!configResult.success) { + this.log("Error opening config file " + configFileName + " " + configResult.errorMsg); + } + else { + this.log("Opened configuration file " + configFileName, "Info"); + this.configuredProjects.push(configResult.project); + } + } + var info = this.openFile(fileName, true); + this.addOpenFile(info); + this.printProjects(); + return info; + }; + ProjectService.prototype.closeClientFile = function (filename) { + var info = ts.lookUp(this.filenameToScriptInfo, filename); + if (info) { + this.closeOpenFile(info); + info.isOpen = false; + } + this.printProjects(); + }; + ProjectService.prototype.getProjectForFile = function (filename) { + var scriptInfo = ts.lookUp(this.filenameToScriptInfo, filename); + if (scriptInfo) { + return scriptInfo.defaultProject; + } + }; + ProjectService.prototype.printProjectsForFile = function (filename) { + var scriptInfo = ts.lookUp(this.filenameToScriptInfo, filename); + if (scriptInfo) { + this.psLogger.startGroup(); + this.psLogger.info("Projects for " + filename); + var projects = this.findReferencingProjects(scriptInfo); + for (var i = 0, len = projects.length; i < len; i++) { + this.psLogger.info("Project " + i.toString()); + } + this.psLogger.endGroup(); + } + else { + this.psLogger.info(filename + " not in any project"); + } + }; + ProjectService.prototype.printProjects = function () { + this.psLogger.startGroup(); + for (var i = 0, len = this.inferredProjects.length; i < len; i++) { + var project = this.inferredProjects[i]; + project.updateGraph(); + this.psLogger.info("Project " + i.toString()); + this.psLogger.info(project.filesToString()); + this.psLogger.info("-----------------------------------------------"); + } + for (var i = 0, len = this.configuredProjects.length; i < len; i++) { + var project = this.configuredProjects[i]; + project.updateGraph(); + this.psLogger.info("Project (configured) " + (i + this.inferredProjects.length).toString()); + this.psLogger.info(project.filesToString()); + this.psLogger.info("-----------------------------------------------"); + } + this.psLogger.info("Open file roots of inferred projects: "); + for (var i = 0, len = this.openFileRoots.length; i < len; i++) { + this.psLogger.info(this.openFileRoots[i].fileName); + } + this.psLogger.info("Open files referenced by inferred or configured projects: "); + for (var i = 0, len = this.openFilesReferenced.length; i < len; i++) { + var fileInfo = this.openFilesReferenced[i].fileName; + if (this.openFilesReferenced[i].defaultProject.isConfiguredProject()) { + fileInfo += " (configured)"; + } + this.psLogger.info(fileInfo); + } + this.psLogger.info("Open file roots of configured projects: "); + for (var i = 0, len = this.openFileRootsConfigured.length; i < len; i++) { + this.psLogger.info(this.openFileRootsConfigured[i].fileName); + } + this.psLogger.endGroup(); + }; + ProjectService.prototype.configProjectIsActive = function (fileName) { + for (var i = 0, len = this.configuredProjects.length; i < len; i++) { + if (this.configuredProjects[i].projectFilename == fileName) { + return true; + } + } + return false; + }; + ProjectService.prototype.openConfigFile = function (configFilename, clientFileName) { + configFilename = ts.normalizePath(configFilename); + var dirPath = ts.getDirectoryPath(configFilename); + var rawConfig = ts.readConfigFile(configFilename); + if (!rawConfig) { + return { errorMsg: "tsconfig syntax error" }; + } + else { + var parsedCommandLine = ts.parseConfigFile(rawConfig, dirPath); + if (parsedCommandLine.errors && (parsedCommandLine.errors.length > 0)) { + return { errorMsg: "tsconfig option errors" }; + } + else if (parsedCommandLine.fileNames) { + var projectOptions = { + files: parsedCommandLine.fileNames, + compilerOptions: parsedCommandLine.options + }; + var proj = this.createProject(configFilename, projectOptions); + for (var i = 0, len = parsedCommandLine.fileNames.length; i < len; i++) { + var rootFilename = parsedCommandLine.fileNames[i]; + if (ts.sys.fileExists(rootFilename)) { + var info = this.openFile(rootFilename, clientFileName == rootFilename); + proj.addRoot(info); + } + else { + return { errorMsg: "specified file " + rootFilename + " not found" }; + } + } + proj.finishGraph(); + return { success: true, project: proj }; + } + else { + return { errorMsg: "no files found" }; + } + } + }; + ProjectService.prototype.createProject = function (projectFilename, projectOptions) { + var project = new Project(this, projectOptions); + project.projectFilename = projectFilename; + return project; + }; + return ProjectService; + })(); + server.ProjectService = ProjectService; + var CompilerService = (function () { + function CompilerService(project, opt) { + this.project = project; + this.documentRegistry = ts.createDocumentRegistry(); + this.host = new LSHost(project.projectService.host, project); + if (opt) { + this.setCompilerOptions(opt); + } + else { + this.setCompilerOptions(ts.getDefaultCompilerOptions()); + } + this.languageService = ts.createLanguageService(this.host, this.documentRegistry); + this.classifier = ts.createClassifier(); + } + CompilerService.prototype.setCompilerOptions = function (opt) { + this.settings = opt; + this.host.setCompilationSettings(opt); + }; + CompilerService.prototype.isExternalModule = function (filename) { + var sourceFile = this.languageService.getSourceFile(filename); + return ts.isExternalModule(sourceFile); + }; + CompilerService.defaultFormatCodeOptions = { + IndentSize: 4, + TabSize: 4, + NewLineCharacter: ts.sys.newLine, + ConvertTabsToSpaces: true, + InsertSpaceAfterCommaDelimiter: true, + InsertSpaceAfterSemicolonInForStatements: true, + InsertSpaceBeforeAndAfterBinaryOperators: true, + InsertSpaceAfterKeywordsInControlFlowStatements: true, + InsertSpaceAfterFunctionKeywordForAnonymousFunctions: false, + InsertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis: false, + PlaceOpenBraceOnNewLineForFunctions: false, + PlaceOpenBraceOnNewLineForControlBlocks: false + }; + return CompilerService; + })(); + var CharRangeSection; + (function (CharRangeSection) { + CharRangeSection[CharRangeSection["PreStart"] = 0] = "PreStart"; + CharRangeSection[CharRangeSection["Start"] = 1] = "Start"; + CharRangeSection[CharRangeSection["Entire"] = 2] = "Entire"; + CharRangeSection[CharRangeSection["Mid"] = 3] = "Mid"; + CharRangeSection[CharRangeSection["End"] = 4] = "End"; + CharRangeSection[CharRangeSection["PostEnd"] = 5] = "PostEnd"; + })(CharRangeSection || (CharRangeSection = {})); + var BaseLineIndexWalker = (function () { + function BaseLineIndexWalker() { + this.goSubtree = true; + this.done = false; + } + BaseLineIndexWalker.prototype.leaf = function (rangeStart, rangeLength, ll) { + }; + return BaseLineIndexWalker; + })(); + var EditWalker = (function (_super) { + __extends(EditWalker, _super); + function EditWalker() { + _super.call(this); + this.lineIndex = new LineIndex(); + this.endBranch = []; + this.state = CharRangeSection.Entire; + this.initialText = ""; + this.trailingText = ""; + this.suppressTrailingText = false; + this.lineIndex.root = new LineNode(); + this.startPath = [this.lineIndex.root]; + this.stack = [this.lineIndex.root]; + } + EditWalker.prototype.insertLines = function (insertedText) { + if (this.suppressTrailingText) { + this.trailingText = ""; + } + if (insertedText) { + insertedText = this.initialText + insertedText + this.trailingText; + } + else { + insertedText = this.initialText + this.trailingText; + } + var lm = LineIndex.linesFromText(insertedText); + var lines = lm.lines; + if (lines.length > 1) { + if (lines[lines.length - 1] == "") { + lines.length--; + } + } + var branchParent; + var lastZeroCount; + for (var k = this.endBranch.length - 1; k >= 0; k--) { + this.endBranch[k].updateCounts(); + if (this.endBranch[k].charCount() == 0) { + lastZeroCount = this.endBranch[k]; + if (k > 0) { + branchParent = this.endBranch[k - 1]; + } + else { + branchParent = this.branchNode; + } + } + } + if (lastZeroCount) { + branchParent.remove(lastZeroCount); + } + var insertionNode = this.startPath[this.startPath.length - 2]; + var leafNode = this.startPath[this.startPath.length - 1]; + var len = lines.length; + if (len > 0) { + leafNode.text = lines[0]; + if (len > 1) { + var insertedNodes = new Array(len - 1); + var startNode = leafNode; + for (var i = 1, len = lines.length; i < len; i++) { + insertedNodes[i - 1] = new LineLeaf(lines[i]); + } + var pathIndex = this.startPath.length - 2; + while (pathIndex >= 0) { + insertionNode = this.startPath[pathIndex]; + insertedNodes = insertionNode.insertAt(startNode, insertedNodes); + pathIndex--; + startNode = insertionNode; + } + var insertedNodesLen = insertedNodes.length; + while (insertedNodesLen > 0) { + var newRoot = new LineNode(); + newRoot.add(this.lineIndex.root); + insertedNodes = newRoot.insertAt(this.lineIndex.root, insertedNodes); + insertedNodesLen = insertedNodes.length; + this.lineIndex.root = newRoot; + } + this.lineIndex.root.updateCounts(); + } + else { + for (var j = this.startPath.length - 2; j >= 0; j--) { + this.startPath[j].updateCounts(); + } + } + } + else { + insertionNode.remove(leafNode); + for (var j = this.startPath.length - 2; j >= 0; j--) { + this.startPath[j].updateCounts(); + } + } + return this.lineIndex; + }; + EditWalker.prototype.post = function (relativeStart, relativeLength, lineCollection, parent, nodeType) { + if (lineCollection == this.lineCollectionAtBranch) { + this.state = CharRangeSection.End; + } + this.stack.length--; + return undefined; + }; + EditWalker.prototype.pre = function (relativeStart, relativeLength, lineCollection, parent, nodeType) { + var currentNode = this.stack[this.stack.length - 1]; + if ((this.state == CharRangeSection.Entire) && (nodeType == CharRangeSection.Start)) { + this.state = CharRangeSection.Start; + this.branchNode = currentNode; + this.lineCollectionAtBranch = lineCollection; + } + var child; + function fresh(node) { + if (node.isLeaf()) { + return new LineLeaf(""); + } + else + return new LineNode(); + } + switch (nodeType) { + case CharRangeSection.PreStart: + this.goSubtree = false; + if (this.state != CharRangeSection.End) { + currentNode.add(lineCollection); + } + break; + case CharRangeSection.Start: + if (this.state == CharRangeSection.End) { + this.goSubtree = false; + } + else { + child = fresh(lineCollection); + currentNode.add(child); + this.startPath[this.startPath.length] = child; + } + break; + case CharRangeSection.Entire: + if (this.state != CharRangeSection.End) { + child = fresh(lineCollection); + currentNode.add(child); + this.startPath[this.startPath.length] = child; + } + else { + if (!lineCollection.isLeaf()) { + child = fresh(lineCollection); + currentNode.add(child); + this.endBranch[this.endBranch.length] = child; + } + } + break; + case CharRangeSection.Mid: + this.goSubtree = false; + break; + case CharRangeSection.End: + if (this.state != CharRangeSection.End) { + this.goSubtree = false; + } + else { + if (!lineCollection.isLeaf()) { + child = fresh(lineCollection); + currentNode.add(child); + this.endBranch[this.endBranch.length] = child; + } + } + break; + case CharRangeSection.PostEnd: + this.goSubtree = false; + if (this.state != CharRangeSection.Start) { + currentNode.add(lineCollection); + } + break; + } + if (this.goSubtree) { + this.stack[this.stack.length] = child; + } + return lineCollection; + }; + EditWalker.prototype.leaf = function (relativeStart, relativeLength, ll) { + if (this.state == CharRangeSection.Start) { + this.initialText = ll.text.substring(0, relativeStart); + } + else if (this.state == CharRangeSection.Entire) { + this.initialText = ll.text.substring(0, relativeStart); + this.trailingText = ll.text.substring(relativeStart + relativeLength); + } + else { + this.trailingText = ll.text.substring(relativeStart + relativeLength); + } + }; + return EditWalker; + })(BaseLineIndexWalker); + var TextChange = (function () { + function TextChange(pos, deleteLen, insertedText) { + this.pos = pos; + this.deleteLen = deleteLen; + this.insertedText = insertedText; + } + TextChange.prototype.getTextChangeRange = function () { + return ts.createTextChangeRange(ts.createTextSpan(this.pos, this.deleteLen), this.insertedText ? this.insertedText.length : 0); + }; + return TextChange; + })(); + var ScriptVersionCache = (function () { + function ScriptVersionCache() { + this.changes = []; + this.versions = []; + this.minVersion = 0; + this.currentVersion = 0; + } + ScriptVersionCache.prototype.edit = function (pos, deleteLen, insertedText) { + this.changes[this.changes.length] = new TextChange(pos, deleteLen, insertedText); + if ((this.changes.length > ScriptVersionCache.changeNumberThreshold) || + (deleteLen > ScriptVersionCache.changeLengthThreshold) || + (insertedText && (insertedText.length > ScriptVersionCache.changeLengthThreshold))) { + this.getSnapshot(); + } + }; + ScriptVersionCache.prototype.latest = function () { + return this.versions[this.currentVersion]; + }; + ScriptVersionCache.prototype.latestVersion = function () { + if (this.changes.length > 0) { + this.getSnapshot(); + } + return this.currentVersion; + }; + ScriptVersionCache.prototype.reloadFromFile = function (filename, cb) { + var content = ts.sys.readFile(filename); + this.reload(content); + if (cb) + cb(); + }; + ScriptVersionCache.prototype.reload = function (script) { + this.currentVersion++; + this.changes = []; + var snap = new LineIndexSnapshot(this.currentVersion, this); + this.versions[this.currentVersion] = snap; + snap.index = new LineIndex(); + var lm = LineIndex.linesFromText(script); + snap.index.load(lm.lines); + for (var i = this.minVersion; i < this.currentVersion; i++) { + this.versions[i] = undefined; + } + this.minVersion = this.currentVersion; + }; + ScriptVersionCache.prototype.getSnapshot = function () { + var snap = this.versions[this.currentVersion]; + if (this.changes.length > 0) { + var snapIndex = this.latest().index; + for (var i = 0, len = this.changes.length; i < len; i++) { + var change = this.changes[i]; + snapIndex = snapIndex.edit(change.pos, change.deleteLen, change.insertedText); + } + snap = new LineIndexSnapshot(this.currentVersion + 1, this); + snap.index = snapIndex; + snap.changesSincePreviousVersion = this.changes; + this.currentVersion = snap.version; + this.versions[snap.version] = snap; + this.changes = []; + if ((this.currentVersion - this.minVersion) >= ScriptVersionCache.maxVersions) { + var oldMin = this.minVersion; + this.minVersion = (this.currentVersion - ScriptVersionCache.maxVersions) + 1; + for (var j = oldMin; j < this.minVersion; j++) { + this.versions[j] = undefined; + } + } + } + return snap; + }; + ScriptVersionCache.prototype.getTextChangesBetweenVersions = function (oldVersion, newVersion) { + if (oldVersion < newVersion) { + if (oldVersion >= this.minVersion) { + var textChangeRanges = []; + for (var i = oldVersion + 1; i <= newVersion; i++) { + var snap = this.versions[i]; + for (var j = 0, len = snap.changesSincePreviousVersion.length; j < len; j++) { + var textChange = snap.changesSincePreviousVersion[j]; + textChangeRanges[textChangeRanges.length] = textChange.getTextChangeRange(); + } + } + return ts.collapseTextChangeRangesAcrossMultipleVersions(textChangeRanges); + } + else { + return undefined; + } + } + else { + return ts.unchangedTextChangeRange; + } + }; + ScriptVersionCache.fromString = function (script) { + var svc = new ScriptVersionCache(); + var snap = new LineIndexSnapshot(0, svc); + svc.versions[svc.currentVersion] = snap; + snap.index = new LineIndex(); + var lm = LineIndex.linesFromText(script); + snap.index.load(lm.lines); + return svc; + }; + ScriptVersionCache.changeNumberThreshold = 8; + ScriptVersionCache.changeLengthThreshold = 256; + ScriptVersionCache.maxVersions = 8; + return ScriptVersionCache; + })(); + server.ScriptVersionCache = ScriptVersionCache; + var LineIndexSnapshot = (function () { + function LineIndexSnapshot(version, cache) { + this.version = version; + this.cache = cache; + this.changesSincePreviousVersion = []; + } + LineIndexSnapshot.prototype.getText = function (rangeStart, rangeEnd) { + return this.index.getText(rangeStart, rangeEnd - rangeStart); + }; + LineIndexSnapshot.prototype.getLength = function () { + return this.index.root.charCount(); + }; + LineIndexSnapshot.prototype.getLineStartPositions = function () { + var starts = [-1]; + var count = 1; + var pos = 0; + this.index.every(function (ll, s, len) { + starts[count++] = pos; + pos += ll.text.length; + return true; + }, 0); + return starts; + }; + LineIndexSnapshot.prototype.getLineMapper = function () { + var _this = this; + return (function (line) { + return _this.index.lineNumberToInfo(line).offset; + }); + }; + LineIndexSnapshot.prototype.getTextChangeRangeSinceVersion = function (scriptVersion) { + if (this.version <= scriptVersion) { + return ts.unchangedTextChangeRange; + } + else { + return this.cache.getTextChangesBetweenVersions(scriptVersion, this.version); + } + }; + LineIndexSnapshot.prototype.getChangeRange = function (oldSnapshot) { + var oldSnap = oldSnapshot; + return this.getTextChangeRangeSinceVersion(oldSnap.version); + }; + return LineIndexSnapshot; + })(); + var LineIndex = (function () { + function LineIndex() { + this.checkEdits = false; + } + LineIndex.prototype.charOffsetToLineNumberAndPos = function (charOffset) { + return this.root.charOffsetToLineNumberAndPos(1, charOffset); + }; + LineIndex.prototype.lineNumberToInfo = function (lineNumber) { + var lineCount = this.root.lineCount(); + if (lineNumber <= lineCount) { + var lineInfo = this.root.lineNumberToInfo(lineNumber, 0); + lineInfo.line = lineNumber; + return lineInfo; + } + else { + return { + line: lineNumber, + offset: this.root.charCount() + }; + } + }; + LineIndex.prototype.load = function (lines) { + if (lines.length > 0) { + var leaves = []; + for (var i = 0, len = lines.length; i < len; i++) { + leaves[i] = new LineLeaf(lines[i]); + } + this.root = LineIndex.buildTreeFromBottom(leaves); + } + else { + this.root = new LineNode(); + } + }; + LineIndex.prototype.walk = function (rangeStart, rangeLength, walkFns) { + this.root.walk(rangeStart, rangeLength, walkFns); + }; + LineIndex.prototype.getText = function (rangeStart, rangeLength) { + var accum = ""; + if ((rangeLength > 0) && (rangeStart < this.root.charCount())) { + this.walk(rangeStart, rangeLength, { + goSubtree: true, + done: false, + leaf: function (relativeStart, relativeLength, ll) { + accum = accum.concat(ll.text.substring(relativeStart, relativeStart + relativeLength)); + } + }); + } + return accum; + }; + LineIndex.prototype.every = function (f, rangeStart, rangeEnd) { + if (!rangeEnd) { + rangeEnd = this.root.charCount(); + } + var walkFns = { + goSubtree: true, + done: false, + leaf: function (relativeStart, relativeLength, ll) { + if (!f(ll, relativeStart, relativeLength)) { + this.done = true; + } + } + }; + this.walk(rangeStart, rangeEnd - rangeStart, walkFns); + return !walkFns.done; + }; + LineIndex.prototype.edit = function (pos, deleteLength, newText) { + function editFlat(source, s, dl, nt) { + if (nt === void 0) { nt = ""; } + return source.substring(0, s) + nt + source.substring(s + dl, source.length); + } + if (this.root.charCount() == 0) { + if (newText) { + this.load(LineIndex.linesFromText(newText).lines); + return this; + } + } + else { + if (this.checkEdits) { + var checkText = editFlat(this.getText(0, this.root.charCount()), pos, deleteLength, newText); + } + var walker = new EditWalker(); + if (pos >= this.root.charCount()) { + pos = this.root.charCount() - 1; + var endString = this.getText(pos, 1); + if (newText) { + newText = endString + newText; + } + else { + newText = endString; + } + deleteLength = 0; + walker.suppressTrailingText = true; + } + else if (deleteLength > 0) { + var e = pos + deleteLength; + var lineInfo = this.charOffsetToLineNumberAndPos(e); + if ((lineInfo && (lineInfo.offset == 0))) { + deleteLength += lineInfo.text.length; + if (newText) { + newText = newText + lineInfo.text; + } + else { + newText = lineInfo.text; + } + } + } + if (pos < this.root.charCount()) { + this.root.walk(pos, deleteLength, walker); + walker.insertLines(newText); + } + if (this.checkEdits) { + var updatedText = this.getText(0, this.root.charCount()); + ts.Debug.assert(checkText == updatedText, "buffer edit mismatch"); + } + return walker.lineIndex; + } + }; + LineIndex.buildTreeFromBottom = function (nodes) { + var nodeCount = Math.ceil(nodes.length / lineCollectionCapacity); + var interiorNodes = []; + var nodeIndex = 0; + for (var i = 0; i < nodeCount; i++) { + interiorNodes[i] = new LineNode(); + var charCount = 0; + var lineCount = 0; + for (var j = 0; j < lineCollectionCapacity; j++) { + if (nodeIndex < nodes.length) { + interiorNodes[i].add(nodes[nodeIndex]); + charCount += nodes[nodeIndex].charCount(); + lineCount += nodes[nodeIndex].lineCount(); + } + else { + break; + } + nodeIndex++; + } + interiorNodes[i].totalChars = charCount; + interiorNodes[i].totalLines = lineCount; + } + if (interiorNodes.length == 1) { + return interiorNodes[0]; + } + else { + return this.buildTreeFromBottom(interiorNodes); + } + }; + LineIndex.linesFromText = function (text) { + var lineStarts = ts.computeLineStarts(text); + if (lineStarts.length == 0) { + return { lines: [], lineMap: lineStarts }; + } + var lines = new Array(lineStarts.length); + var lc = lineStarts.length - 1; + for (var lmi = 0; lmi < lc; lmi++) { + lines[lmi] = text.substring(lineStarts[lmi], lineStarts[lmi + 1]); + } + var endText = text.substring(lineStarts[lc]); + if (endText.length > 0) { + lines[lc] = endText; + } + else { + lines.length--; + } + return { lines: lines, lineMap: lineStarts }; + }; + return LineIndex; + })(); + server.LineIndex = LineIndex; + var LineNode = (function () { + function LineNode() { + this.totalChars = 0; + this.totalLines = 0; + this.children = []; + } + LineNode.prototype.isLeaf = function () { + return false; + }; + LineNode.prototype.updateCounts = function () { + this.totalChars = 0; + this.totalLines = 0; + for (var i = 0, len = this.children.length; i < len; i++) { + var child = this.children[i]; + this.totalChars += child.charCount(); + this.totalLines += child.lineCount(); + } + }; + LineNode.prototype.execWalk = function (rangeStart, rangeLength, walkFns, childIndex, nodeType) { + if (walkFns.pre) { + walkFns.pre(rangeStart, rangeLength, this.children[childIndex], this, nodeType); + } + if (walkFns.goSubtree) { + this.children[childIndex].walk(rangeStart, rangeLength, walkFns); + if (walkFns.post) { + walkFns.post(rangeStart, rangeLength, this.children[childIndex], this, nodeType); + } + } + else { + walkFns.goSubtree = true; + } + return walkFns.done; + }; + LineNode.prototype.skipChild = function (relativeStart, relativeLength, childIndex, walkFns, nodeType) { + if (walkFns.pre && (!walkFns.done)) { + walkFns.pre(relativeStart, relativeLength, this.children[childIndex], this, nodeType); + walkFns.goSubtree = true; + } + }; + LineNode.prototype.walk = function (rangeStart, rangeLength, walkFns) { + var childIndex = 0; + var child = this.children[0]; + var childCharCount = child.charCount(); + var adjustedStart = rangeStart; + while (adjustedStart >= childCharCount) { + this.skipChild(adjustedStart, rangeLength, childIndex, walkFns, CharRangeSection.PreStart); + adjustedStart -= childCharCount; + child = this.children[++childIndex]; + childCharCount = child.charCount(); + } + if ((adjustedStart + rangeLength) <= childCharCount) { + if (this.execWalk(adjustedStart, rangeLength, walkFns, childIndex, CharRangeSection.Entire)) { + return; + } + } + else { + if (this.execWalk(adjustedStart, childCharCount - adjustedStart, walkFns, childIndex, CharRangeSection.Start)) { + return; + } + var adjustedLength = rangeLength - (childCharCount - adjustedStart); + child = this.children[++childIndex]; + childCharCount = child.charCount(); + while (adjustedLength > childCharCount) { + if (this.execWalk(0, childCharCount, walkFns, childIndex, CharRangeSection.Mid)) { + return; + } + adjustedLength -= childCharCount; + child = this.children[++childIndex]; + childCharCount = child.charCount(); + } + if (adjustedLength > 0) { + if (this.execWalk(0, adjustedLength, walkFns, childIndex, CharRangeSection.End)) { + return; + } + } + } + if (walkFns.pre) { + var clen = this.children.length; + if (childIndex < (clen - 1)) { + for (var ej = childIndex + 1; ej < clen; ej++) { + this.skipChild(0, 0, ej, walkFns, CharRangeSection.PostEnd); + } + } + } + }; + LineNode.prototype.charOffsetToLineNumberAndPos = function (lineNumber, charOffset) { + var childInfo = this.childFromCharOffset(lineNumber, charOffset); + if (!childInfo.child) { + return { + line: lineNumber, + offset: charOffset + }; + } + else if (childInfo.childIndex < this.children.length) { + if (childInfo.child.isLeaf()) { + return { + line: childInfo.lineNumber, + offset: childInfo.charOffset, + text: (childInfo.child).text, + leaf: (childInfo.child) + }; + } + else { + var lineNode = (childInfo.child); + return lineNode.charOffsetToLineNumberAndPos(childInfo.lineNumber, childInfo.charOffset); + } + } + else { + var lineInfo = this.lineNumberToInfo(this.lineCount(), 0); + return { line: this.lineCount(), offset: lineInfo.leaf.charCount() }; + } + }; + LineNode.prototype.lineNumberToInfo = function (lineNumber, charOffset) { + var childInfo = this.childFromLineNumber(lineNumber, charOffset); + if (!childInfo.child) { + return { + line: lineNumber, + offset: charOffset + }; + } + else if (childInfo.child.isLeaf()) { + return { + line: lineNumber, + offset: childInfo.charOffset, + text: (childInfo.child).text, + leaf: (childInfo.child) + }; + } + else { + var lineNode = (childInfo.child); + return lineNode.lineNumberToInfo(childInfo.relativeLineNumber, childInfo.charOffset); + } + }; + LineNode.prototype.childFromLineNumber = function (lineNumber, charOffset) { + var child; + var relativeLineNumber = lineNumber; + for (var i = 0, len = this.children.length; i < len; i++) { + child = this.children[i]; + var childLineCount = child.lineCount(); + if (childLineCount >= relativeLineNumber) { + break; + } + else { + relativeLineNumber -= childLineCount; + charOffset += child.charCount(); + } + } + return { + child: child, + childIndex: i, + relativeLineNumber: relativeLineNumber, + charOffset: charOffset + }; + }; + LineNode.prototype.childFromCharOffset = function (lineNumber, charOffset) { + var child; + for (var i = 0, len = this.children.length; i < len; i++) { + child = this.children[i]; + if (child.charCount() > charOffset) { + break; + } + else { + charOffset -= child.charCount(); + lineNumber += child.lineCount(); + } + } + return { + child: child, + childIndex: i, + charOffset: charOffset, + lineNumber: lineNumber + }; + }; + LineNode.prototype.splitAfter = function (childIndex) { + var splitNode; + var clen = this.children.length; + childIndex++; + var endLength = childIndex; + if (childIndex < clen) { + splitNode = new LineNode(); + while (childIndex < clen) { + splitNode.add(this.children[childIndex++]); + } + splitNode.updateCounts(); + } + this.children.length = endLength; + return splitNode; + }; + LineNode.prototype.remove = function (child) { + var childIndex = this.findChildIndex(child); + var clen = this.children.length; + if (childIndex < (clen - 1)) { + for (var i = childIndex; i < (clen - 1); i++) { + this.children[i] = this.children[i + 1]; + } + } + this.children.length--; + }; + LineNode.prototype.findChildIndex = function (child) { + var childIndex = 0; + var clen = this.children.length; + while ((this.children[childIndex] != child) && (childIndex < clen)) + childIndex++; + return childIndex; + }; + LineNode.prototype.insertAt = function (child, nodes) { + var childIndex = this.findChildIndex(child); + var clen = this.children.length; + var nodeCount = nodes.length; + if ((clen < lineCollectionCapacity) && (childIndex == (clen - 1)) && (nodeCount == 1)) { + this.add(nodes[0]); + this.updateCounts(); + return []; + } + else { + var shiftNode = this.splitAfter(childIndex); + var nodeIndex = 0; + childIndex++; + while ((childIndex < lineCollectionCapacity) && (nodeIndex < nodeCount)) { + this.children[childIndex++] = nodes[nodeIndex++]; + } + var splitNodes = []; + var splitNodeCount = 0; + if (nodeIndex < nodeCount) { + splitNodeCount = Math.ceil((nodeCount - nodeIndex) / lineCollectionCapacity); + splitNodes = new Array(splitNodeCount); + var splitNodeIndex = 0; + for (var i = 0; i < splitNodeCount; i++) { + splitNodes[i] = new LineNode(); + } + var splitNode = splitNodes[0]; + while (nodeIndex < nodeCount) { + splitNode.add(nodes[nodeIndex++]); + if (splitNode.children.length == lineCollectionCapacity) { + splitNodeIndex++; + splitNode = splitNodes[splitNodeIndex]; + } + } + for (i = splitNodes.length - 1; i >= 0; i--) { + if (splitNodes[i].children.length == 0) { + splitNodes.length--; + } + } + } + if (shiftNode) { + splitNodes[splitNodes.length] = shiftNode; + } + this.updateCounts(); + for (i = 0; i < splitNodeCount; i++) { + splitNodes[i].updateCounts(); + } + return splitNodes; + } + }; + LineNode.prototype.add = function (collection) { + this.children[this.children.length] = collection; + return (this.children.length < lineCollectionCapacity); + }; + LineNode.prototype.charCount = function () { + return this.totalChars; + }; + LineNode.prototype.lineCount = function () { + return this.totalLines; + }; + return LineNode; + })(); + var LineLeaf = (function () { + function LineLeaf(text) { + this.text = text; + } + LineLeaf.prototype.setUdata = function (data) { + this.udata = data; + }; + LineLeaf.prototype.getUdata = function () { + return this.udata; + }; + LineLeaf.prototype.isLeaf = function () { + return true; + }; + LineLeaf.prototype.walk = function (rangeStart, rangeLength, walkFns) { + walkFns.leaf(rangeStart, rangeLength, this); + }; + LineLeaf.prototype.charCount = function () { + return this.text.length; + }; + LineLeaf.prototype.lineCount = function () { + return 1; + }; + return LineLeaf; + })(); + })(server = ts.server || (ts.server = {})); +})(ts || (ts = {})); +/// +/// +var ts; +(function (ts) { + var server; + (function (server) { + var nodeproto = require('_debugger'); + var readline = require('readline'); + var path = require('path'); + var fs = require('fs'); + var rl = readline.createInterface({ + input: process.stdin, + output: process.stdout, + terminal: false + }); + var Logger = (function () { + function Logger(logFilename, level) { + this.logFilename = logFilename; + this.level = level; + this.fd = -1; + this.seq = 0; + this.inGroup = false; + this.firstInGroup = true; + } + Logger.padStringRight = function (str, padding) { + return (str + padding).slice(0, padding.length); + }; + Logger.prototype.close = function () { + if (this.fd >= 0) { + fs.close(this.fd); + } + }; + Logger.prototype.perftrc = function (s) { + this.msg(s, "Perf"); + }; + Logger.prototype.info = function (s) { + this.msg(s, "Info"); + }; + Logger.prototype.startGroup = function () { + this.inGroup = true; + this.firstInGroup = true; + }; + Logger.prototype.endGroup = function () { + this.inGroup = false; + this.seq++; + this.firstInGroup = true; + }; + Logger.prototype.loggingEnabled = function () { + return !!this.logFilename; + }; + Logger.prototype.isVerbose = function () { + return this.loggingEnabled() && (this.level == "verbose"); + }; + Logger.prototype.msg = function (s, type) { + if (type === void 0) { type = "Err"; } + if (this.fd < 0) { + if (this.logFilename) { + this.fd = fs.openSync(this.logFilename, "w"); + } + } + if (this.fd >= 0) { + s = s + "\n"; + var prefix = Logger.padStringRight(type + " " + this.seq.toString(), " "); + if (this.firstInGroup) { + s = prefix + s; + this.firstInGroup = false; + } + if (!this.inGroup) { + this.seq++; + this.firstInGroup = true; + } + var buf = new Buffer(s); + fs.writeSync(this.fd, buf, 0, buf.length, null); + } + }; + return Logger; + })(); + var WatchedFileSet = (function () { + function WatchedFileSet(interval, chunkSize) { + if (interval === void 0) { interval = 2500; } + if (chunkSize === void 0) { chunkSize = 30; } + this.interval = interval; + this.chunkSize = chunkSize; + this.watchedFiles = []; + this.nextFileToCheck = 0; + } + WatchedFileSet.copyListRemovingItem = function (item, list) { + var copiedList = []; + for (var i = 0, len = list.length; i < len; i++) { + if (list[i] != item) { + copiedList.push(list[i]); + } + } + return copiedList; + }; + WatchedFileSet.getModifiedTime = function (fileName) { + return fs.statSync(fileName).mtime; + }; + WatchedFileSet.prototype.poll = function (checkedIndex) { + var watchedFile = this.watchedFiles[checkedIndex]; + if (!watchedFile) { + return; + } + fs.stat(watchedFile.fileName, function (err, stats) { + if (err) { + watchedFile.callback(watchedFile.fileName); + } + else if (watchedFile.mtime.getTime() != stats.mtime.getTime()) { + watchedFile.mtime = WatchedFileSet.getModifiedTime(watchedFile.fileName); + watchedFile.callback(watchedFile.fileName); + } + }); + }; + WatchedFileSet.prototype.startWatchTimer = function () { + var _this = this; + this.watchTimer = setInterval(function () { + var count = 0; + var nextToCheck = _this.nextFileToCheck; + var firstCheck = -1; + while ((count < _this.chunkSize) && (nextToCheck != firstCheck)) { + _this.poll(nextToCheck); + if (firstCheck < 0) { + firstCheck = nextToCheck; + } + nextToCheck++; + if (nextToCheck === _this.watchedFiles.length) { + nextToCheck = 0; + } + count++; + } + _this.nextFileToCheck = nextToCheck; + }, this.interval); + }; + WatchedFileSet.prototype.addFile = function (fileName, callback) { + var file = { + fileName: fileName, + callback: callback, + mtime: WatchedFileSet.getModifiedTime(fileName) + }; + this.watchedFiles.push(file); + if (this.watchedFiles.length === 1) { + this.startWatchTimer(); + } + return file; + }; + WatchedFileSet.prototype.removeFile = function (file) { + this.watchedFiles = WatchedFileSet.copyListRemovingItem(file, this.watchedFiles); + }; + return WatchedFileSet; + })(); + var IOSession = (function (_super) { + __extends(IOSession, _super); + function IOSession(host, logger) { + _super.call(this, host, logger); + } + IOSession.prototype.listen = function () { + var _this = this; + rl.on('line', function (input) { + var message = input.trim(); + _this.onMessage(message); + }); + rl.on('close', function () { + _this.projectService.log("Exiting..."); + _this.projectService.closeLog(); + process.exit(0); + }); + }; + return IOSession; + })(server.Session); + function parseLoggingEnvironmentString(logEnvStr) { + var logEnv = {}; + var args = logEnvStr.split(' '); + for (var i = 0, len = args.length; i < (len - 1); i += 2) { + var option = args[i]; + var value = args[i + 1]; + if (option && value) { + switch (option) { + case "-file": + logEnv.file = value; + break; + case "-level": + logEnv.detailLevel = value; + break; + } + } + } + return logEnv; + } + function createLoggerFromEnv() { + var fileName = undefined; + var detailLevel = "normal"; + var logEnvStr = process.env["TSS_LOG"]; + if (logEnvStr) { + var logEnv = parseLoggingEnvironmentString(logEnvStr); + if (logEnv.file) { + fileName = logEnv.file; + } + else { + fileName = __dirname + "/.log" + process.pid.toString(); + } + if (logEnv.detailLevel) { + detailLevel = logEnv.detailLevel; + } + } + return new Logger(fileName, detailLevel); + } + var logger = createLoggerFromEnv(); + var watchedFileSet = new WatchedFileSet(); + ts.sys.watchFile = function (fileName, callback) { + var watchedFile = watchedFileSet.addFile(fileName, callback); + return { + close: function () { return watchedFileSet.removeFile(watchedFile); } + }; + }; + var ioSession = new IOSession(ts.sys, logger); + process.on('uncaughtException', function (err) { + ioSession.logError(err, "unknown"); + }); + ioSession.listen(); + })(server = ts.server || (ts.server = {})); +})(ts || (ts = {})); diff --git a/tsserver/tsserver.js.map b/tsserver/tsserver.js.map deleted file mode 100644 index 244744de..00000000 --- a/tsserver/tsserver.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"tsserver.js","sourceRoot":"","sources":["file:////Users/steve/src/TypeScript/src/compiler/types.ts","file:////Users/steve/src/TypeScript/src/compiler/core.ts","file:////Users/steve/src/TypeScript/src/compiler/sys.ts","file:////Users/steve/src/TypeScript/src/compiler/diagnosticInformationMap.generated.ts","file:////Users/steve/src/TypeScript/src/compiler/scanner.ts","file:////Users/steve/src/TypeScript/src/compiler/commandLineParser.ts","file:////Users/steve/src/TypeScript/src/compiler/utilities.ts","file:////Users/steve/src/TypeScript/src/compiler/parser.ts","file:////Users/steve/src/TypeScript/src/compiler/binder.ts","file:////Users/steve/src/TypeScript/src/compiler/checker.ts","file:////Users/steve/src/TypeScript/src/compiler/declarationEmitter.ts","file:////Users/steve/src/TypeScript/src/compiler/emitter.ts","file:////Users/steve/src/TypeScript/src/compiler/program.ts","file:////Users/steve/src/TypeScript/src/services/breakpoints.ts","file:////Users/steve/src/TypeScript/src/services/outliningElementsCollector.ts","file:////Users/steve/src/TypeScript/src/services/navigateTo.ts","file:////Users/steve/src/TypeScript/src/services/navigationBar.ts","file:////Users/steve/src/TypeScript/src/services/patternMatcher.ts","file:////Users/steve/src/TypeScript/src/services/signatureHelp.ts","file:////Users/steve/src/TypeScript/src/services/utilities.ts","file:////Users/steve/src/TypeScript/src/services/formatting/formattingScanner.ts","file:////Users/steve/src/TypeScript/src/services/formatting/formattingContext.ts","file:////Users/steve/src/TypeScript/src/services/formatting/formattingRequestKind.ts","file:////Users/steve/src/TypeScript/src/services/formatting/rule.ts","file:////Users/steve/src/TypeScript/src/services/formatting/ruleAction.ts","file:////Users/steve/src/TypeScript/src/services/formatting/ruleDescriptor.ts","file:////Users/steve/src/TypeScript/src/services/formatting/ruleFlag.ts","file:////Users/steve/src/TypeScript/src/services/formatting/ruleOperation.ts","file:////Users/steve/src/TypeScript/src/services/formatting/ruleOperationContext.ts","file:////Users/steve/src/TypeScript/src/services/formatting/rules.ts","file:////Users/steve/src/TypeScript/src/services/formatting/rulesMap.ts","file:////Users/steve/src/TypeScript/src/services/formatting/tokenRange.ts","file:////Users/steve/src/TypeScript/src/services/formatting/references.ts","file:////Users/steve/src/TypeScript/src/services/formatting/rulesProvider.ts","file:////Users/steve/src/TypeScript/src/services/formatting/formatting.ts","file:////Users/steve/src/TypeScript/src/services/formatting/smartIndenter.ts","file:////Users/steve/src/TypeScript/src/services/services.ts","file:////Users/steve/src/TypeScript/src/server/session.ts","file:////Users/steve/src/TypeScript/src/server/editorServices.ts","file:////Users/steve/src/TypeScript/src/server/server.ts"],"names":["ts","ts.SyntaxKind","ts.NodeFlags","ts.ParserContextFlags","ts.RelationComparisonResult","ts.ExitStatus","ts.TypeFormatFlags","ts.SymbolFormatFlags","ts.SymbolAccessibility","ts.SymbolFlags","ts.NodeCheckFlags","ts.TypeFlags","ts.SignatureKind","ts.IndexKind","ts.DiagnosticCategory","ts.ModuleKind","ts.ScriptTarget","ts.CharacterCodes","ts.Ternary","ts.Comparison","ts.forEach","ts.contains","ts.indexOf","ts.countWhere","ts.filter","ts.map","ts.concatenate","ts.deduplicate","ts.sum","ts.addRange","ts.lastOrUndefined","ts.binarySearch","ts.reduceLeft","ts.reduceRight","ts.hasProperty","ts.getProperty","ts.isEmpty","ts.clone","ts.extend","ts.forEachValue","ts.forEachKey","ts.lookUp","ts.copyMap","ts.arrayToMap","ts.formatStringFromArgs","ts.getLocaleSpecificMessage","ts.createFileDiagnostic","ts.createCompilerDiagnostic","ts.chainDiagnosticMessages","ts.concatenateDiagnosticMessageChains","ts.compareValues","ts.getDiagnosticFileName","ts.compareDiagnostics","ts.compareMessageText","ts.sortAndDeduplicateDiagnostics","ts.deduplicateSortedDiagnostics","ts.normalizeSlashes","ts.getRootLength","ts.getNormalizedParts","ts.normalizePath","ts.getDirectoryPath","ts.isUrl","ts.isRootedDiskPath","ts.normalizedPathComponents","ts.getNormalizedPathComponents","ts.getNormalizedAbsolutePath","ts.getNormalizedPathFromPathComponents","ts.getNormalizedPathComponentsOfUrl","ts.getNormalizedPathOrUrlComponents","ts.getRelativePathToDirectoryOrUrl","ts.getBaseFileName","ts.combinePaths","ts.fileExtensionIs","ts.removeFileExtension","ts.getDefaultLibFileName","ts.Symbol","ts.Type","ts.Signature","ts.Node","ts.AssertionLevel","ts.Debug","ts.Debug.shouldAssert","ts.Debug.assert","ts.Debug.fail","getWScriptSystem","getWScriptSystem.readFile","getWScriptSystem.writeFile","getWScriptSystem.getNames","getWScriptSystem.readDirectory","getWScriptSystem.readDirectory.visitDirectory","getWScriptSystem.write","getWScriptSystem.resolvePath","getWScriptSystem.fileExists","getWScriptSystem.directoryExists","getWScriptSystem.createDirectory","getWScriptSystem.getExecutingFilePath","getWScriptSystem.getCurrentDirectory","getWScriptSystem.exit","getNodeSystem","getNodeSystem.readFile","getNodeSystem.writeFile","getNodeSystem.readDirectory","getNodeSystem.readDirectory.visitDirectory","getNodeSystem.write","getNodeSystem.close","getNodeSystem.fileChanged","getNodeSystem.fileExists","getNodeSystem.directoryExists","getNodeSystem.createDirectory","getNodeSystem.getExecutingFilePath","getNodeSystem.getCurrentDirectory","getNodeSystem.getMemoryUsage","getNodeSystem.exit","ts.lookupInUnicodeMap","ts.isUnicodeIdentifierStart","ts.isUnicodeIdentifierPart","ts.makeReverseMap","ts.tokenToString","ts.stringToToken","ts.computeLineStarts","ts.getPositionOfLineAndCharacter","ts.computePositionOfLineAndCharacter","ts.getLineStarts","ts.computeLineAndCharacterOfPosition","ts.getLineAndCharacterOfPosition","ts.isWhiteSpace","ts.isLineBreak","ts.isDigit","ts.isOctalDigit","ts.skipTrivia","ts.isConflictMarkerTrivia","ts.scanConflictMarkerTrivia","ts.getCommentRanges","ts.getLeadingCommentRanges","ts.getTrailingCommentRanges","ts.isIdentifierStart","ts.isIdentifierPart","ts.createScanner","ts.createScanner.error","ts.createScanner.isIdentifierStart","ts.createScanner.isIdentifierPart","ts.createScanner.scanNumber","ts.createScanner.scanOctalDigits","ts.createScanner.scanExactNumberOfHexDigits","ts.createScanner.scanMinimumNumberOfHexDigits","ts.createScanner.scanHexDigits","ts.createScanner.scanString","ts.createScanner.scanTemplateAndSetTokenValue","ts.createScanner.scanEscapeSequence","ts.createScanner.scanHexadecimalEscape","ts.createScanner.scanExtendedUnicodeEscape","ts.createScanner.utf16EncodeAsString","ts.createScanner.peekUnicodeEscape","ts.createScanner.scanIdentifierParts","ts.createScanner.getIdentifierToken","ts.createScanner.scanBinaryOrOctalDigits","ts.createScanner.scan","ts.createScanner.reScanGreaterToken","ts.createScanner.reScanSlashToken","ts.createScanner.reScanTemplateToken","ts.createScanner.speculationHelper","ts.createScanner.lookAhead","ts.createScanner.tryScan","ts.createScanner.setText","ts.createScanner.setTextPos","ts.parseCommandLine","ts.parseCommandLine.parseStrings","ts.parseCommandLine.parseResponseFile","ts.readConfigFile","ts.parseConfigFile","ts.parseConfigFile.getCompilerOptions","ts.parseConfigFile.getFiles","ts.getDeclarationOfKind","ts.getSingleLineStringWriter","ts.releaseStringWriter","ts.getFullWidth","ts.containsParseError","ts.aggregateChildData","ts.getSourceFileOfNode","ts.getStartPositionOfLine","ts.nodePosToString","ts.getStartPosOfNode","ts.nodeIsMissing","ts.nodeIsPresent","ts.getTokenPosOfNode","ts.getSourceTextOfNodeFromSourceFile","ts.getTextOfNodeFromSourceText","ts.getTextOfNode","ts.escapeIdentifier","ts.unescapeIdentifier","ts.makeIdentifierFromModuleName","ts.isBlockOrCatchScoped","ts.getEnclosingBlockScopeContainer","ts.isCatchClauseVariableDeclaration","ts.declarationNameToString","ts.createDiagnosticForNode","ts.createDiagnosticForNodeFromMessageChain","ts.getSpanOfTokenAtPosition","ts.getErrorSpanForNode","ts.isExternalModule","ts.isDeclarationFile","ts.isConstEnumDeclaration","ts.walkUpBindingElementsAndPatterns","ts.getCombinedNodeFlags","ts.isConst","ts.isLet","ts.isPrologueDirective","ts.getLeadingCommentRangesOfNode","ts.getJsDocComments","ts.getJsDocComments.isJsDocComment","ts.forEachReturnStatement","ts.forEachReturnStatement.traverse","ts.isVariableLike","ts.isFunctionLike","ts.isFunctionBlock","ts.isObjectLiteralMethod","ts.getContainingFunction","ts.getThisContainer","ts.getSuperContainer","ts.getInvokedExpression","ts.nodeCanBeDecorated","ts.nodeIsDecorated","ts.childIsDecorated","ts.nodeOrChildIsDecorated","ts.isExpression","ts.isInstantiatedModule","ts.isExternalModuleImportEqualsDeclaration","ts.getExternalModuleImportEqualsDeclarationExpression","ts.isInternalModuleImportEqualsDeclaration","ts.getExternalModuleName","ts.hasDotDotDotToken","ts.hasQuestionToken","ts.hasRestParameters","ts.isLiteralKind","ts.isTextualLiteralKind","ts.isTemplateLiteralKind","ts.isBindingPattern","ts.isInAmbientContext","ts.isDeclaration","ts.isStatement","ts.isClassElement","ts.isDeclarationName","ts.isAliasSymbolDeclaration","ts.getClassBaseTypeNode","ts.getClassImplementedTypeNodes","ts.getInterfaceBaseTypeNodes","ts.getHeritageClause","ts.tryResolveScriptReference","ts.getAncestor","ts.getFileReferenceFromReferencePath","ts.isKeyword","ts.isTrivia","ts.hasDynamicName","ts.isWellKnownSymbolSyntactically","ts.getPropertyNameForPropertyNameNode","ts.getPropertyNameForKnownSymbolName","ts.isESSymbolIdentifier","ts.isModifier","ts.textSpanEnd","ts.textSpanIsEmpty","ts.textSpanContainsPosition","ts.textSpanContainsTextSpan","ts.textSpanOverlapsWith","ts.textSpanOverlap","ts.textSpanIntersectsWithTextSpan","ts.textSpanIntersectsWith","ts.textSpanIntersectsWithPosition","ts.textSpanIntersection","ts.createTextSpan","ts.createTextSpanFromBounds","ts.textChangeRangeNewSpan","ts.textChangeRangeIsUnchanged","ts.createTextChangeRange","ts.collapseTextChangeRangesAcrossMultipleVersions","ts.nodeStartsNewLexicalEnvironment","ts.nodeIsSynthesized","ts.createSynthesizedNode","ts.createDiagnosticCollection","ts.createDiagnosticCollection.getModificationCount","ts.createDiagnosticCollection.add","ts.createDiagnosticCollection.getGlobalDiagnostics","ts.createDiagnosticCollection.getDiagnostics","ts.createDiagnosticCollection.getDiagnostics.pushDiagnostic","ts.createDiagnosticCollection.sortAndDeduplicate","ts.escapeString","ts.escapeString.getReplacement","ts.get16BitUnicodeEscapeSequence","ts.escapeNonAsciiCharacters","ts.getIndentString","ts.getIndentSize","ts.createTextWriter","ts.createTextWriter.write","ts.createTextWriter.rawWrite","ts.createTextWriter.writeLiteral","ts.createTextWriter.writeLine","ts.createTextWriter.writeTextOfNode","ts.getOwnEmitOutputFilePath","ts.getSourceFilePathInNewDir","ts.writeFile","ts.getLineOfLocalPosition","ts.getFirstConstructorWithBody","ts.shouldEmitToOwnFile","ts.getAllAccessorDeclarations","ts.emitNewLineBeforeLeadingComments","ts.emitComments","ts.writeCommentRange","ts.writeCommentRange.writeTrimmedCurrentLine","ts.writeCommentRange.calculateIndent","ts.getNodeConstructor","ts.createNode","ts.visitNode","ts.visitNodeArray","ts.visitEachNode","ts.forEachChild","ts.ParsingContext","ts.Tristate","ts.parsingContextErrors","ts.modifierToFlag","ts.fixupParentReferences","ts.fixupParentReferences.visitNode","ts.shouldCheckNode","ts.moveElementEntirelyPastChangeRange","ts.moveElementEntirelyPastChangeRange.visitNode","ts.moveElementEntirelyPastChangeRange.visitArray","ts.adjustIntersectingElement","ts.checkNodePositions","ts.updateTokenPositionsAndMarkElements","ts.updateTokenPositionsAndMarkElements.visitNode","ts.updateTokenPositionsAndMarkElements.visitArray","ts.extendToAffectedRange","ts.findNearestNodeStartingBeforeOrAtPosition","ts.findNearestNodeStartingBeforeOrAtPosition.getLastChild","ts.findNearestNodeStartingBeforeOrAtPosition.getLastChildWorker","ts.findNearestNodeStartingBeforeOrAtPosition.visit","ts.checkChangeRange","ts.updateSourceFile","ts.isEvalOrArgumentsIdentifier","ts.isUseStrictPrologueDirective","ts.InvalidPosition","ts.createSyntaxCursor","ts.createSyntaxCursor.currentNode","ts.createSyntaxCursor.findHighestListElementThatStartsAtPosition","ts.createSyntaxCursor.findHighestListElementThatStartsAtPosition.visitNode","ts.createSyntaxCursor.findHighestListElementThatStartsAtPosition.visitArray","ts.createSourceFile","ts.parseSourceFile","ts.parseSourceFile.setContextFlag","ts.parseSourceFile.setStrictModeContext","ts.parseSourceFile.setDisallowInContext","ts.parseSourceFile.setYieldContext","ts.parseSourceFile.setGeneratorParameterContext","ts.parseSourceFile.setDecoratorContext","ts.parseSourceFile.doOutsideOfContext","ts.parseSourceFile.allowInAnd","ts.parseSourceFile.disallowInAnd","ts.parseSourceFile.doInYieldContext","ts.parseSourceFile.doOutsideOfYieldContext","ts.parseSourceFile.doInDecoratorContext","ts.parseSourceFile.inYieldContext","ts.parseSourceFile.inStrictModeContext","ts.parseSourceFile.inGeneratorParameterContext","ts.parseSourceFile.inDisallowInContext","ts.parseSourceFile.inDecoratorContext","ts.parseSourceFile.parseErrorAtCurrentToken","ts.parseSourceFile.parseErrorAtPosition","ts.parseSourceFile.scanError","ts.parseSourceFile.getNodePos","ts.parseSourceFile.getNodeEnd","ts.parseSourceFile.nextToken","ts.parseSourceFile.getTokenPos","ts.parseSourceFile.reScanGreaterToken","ts.parseSourceFile.reScanSlashToken","ts.parseSourceFile.reScanTemplateToken","ts.parseSourceFile.speculationHelper","ts.parseSourceFile.lookAhead","ts.parseSourceFile.tryParse","ts.parseSourceFile.isIdentifier","ts.parseSourceFile.parseExpected","ts.parseSourceFile.parseOptional","ts.parseSourceFile.parseOptionalToken","ts.parseSourceFile.parseExpectedToken","ts.parseSourceFile.parseTokenNode","ts.parseSourceFile.canParseSemicolon","ts.parseSourceFile.parseSemicolon","ts.parseSourceFile.createNode","ts.parseSourceFile.finishNode","ts.parseSourceFile.createMissingNode","ts.parseSourceFile.internIdentifier","ts.parseSourceFile.createIdentifier","ts.parseSourceFile.parseIdentifier","ts.parseSourceFile.parseIdentifierName","ts.parseSourceFile.isLiteralPropertyName","ts.parseSourceFile.parsePropertyName","ts.parseSourceFile.parseComputedPropertyName","ts.parseSourceFile.parseContextualModifier","ts.parseSourceFile.nextTokenCanFollowModifier","ts.parseSourceFile.parseAnyContextualModifier","ts.parseSourceFile.nextTokenCanFollowContextualModifier","ts.parseSourceFile.canFollowModifier","ts.parseSourceFile.nextTokenIsClassOrFunction","ts.parseSourceFile.isListElement","ts.parseSourceFile.nextTokenIsIdentifier","ts.parseSourceFile.isNotHeritageClauseTypeName","ts.parseSourceFile.isListTerminator","ts.parseSourceFile.isVariableDeclaratorListTerminator","ts.parseSourceFile.isInSomeParsingContext","ts.parseSourceFile.parseList","ts.parseSourceFile.parseListElement","ts.parseSourceFile.currentNode","ts.parseSourceFile.consumeNode","ts.parseSourceFile.canReuseNode","ts.parseSourceFile.isReusableModuleElement","ts.parseSourceFile.isReusableClassMember","ts.parseSourceFile.isReusableSwitchClause","ts.parseSourceFile.isReusableStatement","ts.parseSourceFile.isReusableEnumMember","ts.parseSourceFile.isReusableTypeMember","ts.parseSourceFile.isReusableVariableDeclaration","ts.parseSourceFile.isReusableParameter","ts.parseSourceFile.abortParsingListOrMoveToNextToken","ts.parseSourceFile.parseDelimitedList","ts.parseSourceFile.createMissingList","ts.parseSourceFile.parseBracketedList","ts.parseSourceFile.parseEntityName","ts.parseSourceFile.parseRightSideOfDot","ts.parseSourceFile.parseTemplateExpression","ts.parseSourceFile.parseTemplateSpan","ts.parseSourceFile.parseLiteralNode","ts.parseSourceFile.parseTypeReference","ts.parseSourceFile.parseTypeQuery","ts.parseSourceFile.parseTypeParameter","ts.parseSourceFile.parseTypeParameters","ts.parseSourceFile.parseParameterType","ts.parseSourceFile.isStartOfParameter","ts.parseSourceFile.setModifiers","ts.parseSourceFile.parseParameter","ts.parseSourceFile.parseParameterInitializer","ts.parseSourceFile.fillSignature","ts.parseSourceFile.parseParameterList","ts.parseSourceFile.parseTypeMemberSemicolon","ts.parseSourceFile.parseSignatureMember","ts.parseSourceFile.isIndexSignature","ts.parseSourceFile.isUnambiguouslyIndexSignature","ts.parseSourceFile.parseIndexSignatureDeclaration","ts.parseSourceFile.parsePropertyOrMethodSignature","ts.parseSourceFile.isStartOfTypeMember","ts.parseSourceFile.isStartOfIndexSignatureDeclaration","ts.parseSourceFile.isTypeMemberWithLiteralPropertyName","ts.parseSourceFile.parseTypeMember","ts.parseSourceFile.parseIndexSignatureWithModifiers","ts.parseSourceFile.isStartOfConstructSignature","ts.parseSourceFile.parseTypeLiteral","ts.parseSourceFile.parseObjectTypeMembers","ts.parseSourceFile.parseTupleType","ts.parseSourceFile.parseParenthesizedType","ts.parseSourceFile.parseFunctionOrConstructorType","ts.parseSourceFile.parseKeywordAndNoDot","ts.parseSourceFile.parseNonArrayType","ts.parseSourceFile.isStartOfType","ts.parseSourceFile.isStartOfParenthesizedOrFunctionType","ts.parseSourceFile.parseArrayTypeOrHigher","ts.parseSourceFile.parseUnionTypeOrHigher","ts.parseSourceFile.isStartOfFunctionType","ts.parseSourceFile.isUnambiguouslyStartOfFunctionType","ts.parseSourceFile.parseType","ts.parseSourceFile.parseTypeWorker","ts.parseSourceFile.parseTypeAnnotation","ts.parseSourceFile.isStartOfExpression","ts.parseSourceFile.isStartOfExpressionStatement","ts.parseSourceFile.parseExpression","ts.parseSourceFile.parseInitializer","ts.parseSourceFile.parseAssignmentExpressionOrHigher","ts.parseSourceFile.isYieldExpression","ts.parseSourceFile.nextTokenIsIdentifierOnSameLine","ts.parseSourceFile.nextTokenIsIdentifierOrStartOfDestructuringOnTheSameLine","ts.parseSourceFile.parseYieldExpression","ts.parseSourceFile.parseSimpleArrowFunctionExpression","ts.parseSourceFile.tryParseParenthesizedArrowFunctionExpression","ts.parseSourceFile.isParenthesizedArrowFunctionExpression","ts.parseSourceFile.isParenthesizedArrowFunctionExpressionWorker","ts.parseSourceFile.parsePossibleParenthesizedArrowFunctionExpressionHead","ts.parseSourceFile.parseParenthesizedArrowFunctionExpressionHead","ts.parseSourceFile.parseArrowFunctionExpressionBody","ts.parseSourceFile.parseConditionalExpressionRest","ts.parseSourceFile.parseBinaryExpressionOrHigher","ts.parseSourceFile.isInOrOfKeyword","ts.parseSourceFile.parseBinaryExpressionRest","ts.parseSourceFile.isBinaryOperator","ts.parseSourceFile.getBinaryOperatorPrecedence","ts.parseSourceFile.makeBinaryExpression","ts.parseSourceFile.parsePrefixUnaryExpression","ts.parseSourceFile.parseDeleteExpression","ts.parseSourceFile.parseTypeOfExpression","ts.parseSourceFile.parseVoidExpression","ts.parseSourceFile.parseUnaryExpressionOrHigher","ts.parseSourceFile.parsePostfixExpressionOrHigher","ts.parseSourceFile.parseLeftHandSideExpressionOrHigher","ts.parseSourceFile.parseMemberExpressionOrHigher","ts.parseSourceFile.parseSuperExpression","ts.parseSourceFile.parseTypeAssertion","ts.parseSourceFile.parseMemberExpressionRest","ts.parseSourceFile.parseCallExpressionRest","ts.parseSourceFile.parseArgumentList","ts.parseSourceFile.parseTypeArgumentsInExpression","ts.parseSourceFile.canFollowTypeArgumentsInExpression","ts.parseSourceFile.parsePrimaryExpression","ts.parseSourceFile.parseParenthesizedExpression","ts.parseSourceFile.parseSpreadElement","ts.parseSourceFile.parseArgumentOrArrayLiteralElement","ts.parseSourceFile.parseArgumentExpression","ts.parseSourceFile.parseArrayLiteralExpression","ts.parseSourceFile.tryParseAccessorDeclaration","ts.parseSourceFile.parseObjectLiteralElement","ts.parseSourceFile.parseObjectLiteralExpression","ts.parseSourceFile.parseFunctionExpression","ts.parseSourceFile.parseOptionalIdentifier","ts.parseSourceFile.parseNewExpression","ts.parseSourceFile.parseBlock","ts.parseSourceFile.parseFunctionBlock","ts.parseSourceFile.parseEmptyStatement","ts.parseSourceFile.parseIfStatement","ts.parseSourceFile.parseDoStatement","ts.parseSourceFile.parseWhileStatement","ts.parseSourceFile.parseForOrForInOrForOfStatement","ts.parseSourceFile.parseBreakOrContinueStatement","ts.parseSourceFile.parseReturnStatement","ts.parseSourceFile.parseWithStatement","ts.parseSourceFile.parseCaseClause","ts.parseSourceFile.parseDefaultClause","ts.parseSourceFile.parseCaseOrDefaultClause","ts.parseSourceFile.parseSwitchStatement","ts.parseSourceFile.parseThrowStatement","ts.parseSourceFile.parseTryStatement","ts.parseSourceFile.parseCatchClause","ts.parseSourceFile.parseDebuggerStatement","ts.parseSourceFile.parseExpressionOrLabeledStatement","ts.parseSourceFile.isStartOfStatement","ts.parseSourceFile.nextTokenIsEnumKeyword","ts.parseSourceFile.nextTokenIsIdentifierOrKeywordOnSameLine","ts.parseSourceFile.parseStatement","ts.parseSourceFile.parseVariableStatementOrFunctionDeclarationWithDecoratorsOrModifiers","ts.parseSourceFile.parseFunctionBlockOrSemicolon","ts.parseSourceFile.parseArrayBindingElement","ts.parseSourceFile.parseObjectBindingElement","ts.parseSourceFile.parseObjectBindingPattern","ts.parseSourceFile.parseArrayBindingPattern","ts.parseSourceFile.isIdentifierOrPattern","ts.parseSourceFile.parseIdentifierOrPattern","ts.parseSourceFile.parseVariableDeclaration","ts.parseSourceFile.parseVariableDeclarationList","ts.parseSourceFile.canFollowContextualOfKeyword","ts.parseSourceFile.parseVariableStatement","ts.parseSourceFile.parseFunctionDeclaration","ts.parseSourceFile.parseConstructorDeclaration","ts.parseSourceFile.parseMethodDeclaration","ts.parseSourceFile.parsePropertyDeclaration","ts.parseSourceFile.parsePropertyOrMethodDeclaration","ts.parseSourceFile.parseNonParameterInitializer","ts.parseSourceFile.parseAccessorDeclaration","ts.parseSourceFile.isClassMemberStart","ts.parseSourceFile.parseDecorators","ts.parseSourceFile.parseModifiers","ts.parseSourceFile.parseClassElement","ts.parseSourceFile.parseClassDeclaration","ts.parseSourceFile.parseHeritageClauses","ts.parseSourceFile.parseHeritageClausesWorker","ts.parseSourceFile.parseHeritageClause","ts.parseSourceFile.isHeritageClause","ts.parseSourceFile.parseClassMembers","ts.parseSourceFile.parseInterfaceDeclaration","ts.parseSourceFile.parseTypeAliasDeclaration","ts.parseSourceFile.parseEnumMember","ts.parseSourceFile.parseEnumDeclaration","ts.parseSourceFile.parseModuleBlock","ts.parseSourceFile.parseInternalModuleTail","ts.parseSourceFile.parseAmbientExternalModuleDeclaration","ts.parseSourceFile.parseModuleDeclaration","ts.parseSourceFile.isExternalModuleReference","ts.parseSourceFile.nextTokenIsOpenParen","ts.parseSourceFile.nextTokenIsCommaOrFromKeyword","ts.parseSourceFile.parseImportDeclarationOrImportEqualsDeclaration","ts.parseSourceFile.parseImportClause","ts.parseSourceFile.parseModuleReference","ts.parseSourceFile.parseExternalModuleReference","ts.parseSourceFile.parseModuleSpecifier","ts.parseSourceFile.parseNamespaceImport","ts.parseSourceFile.parseNamedImportsOrExports","ts.parseSourceFile.parseExportSpecifier","ts.parseSourceFile.parseImportSpecifier","ts.parseSourceFile.parseImportOrExportSpecifier","ts.parseSourceFile.parseExportDeclaration","ts.parseSourceFile.parseExportAssignment","ts.parseSourceFile.isLetDeclaration","ts.parseSourceFile.isDeclarationStart","ts.parseSourceFile.isIdentifierOrKeyword","ts.parseSourceFile.nextTokenIsIdentifierOrKeyword","ts.parseSourceFile.nextTokenIsIdentifierOrKeywordOrStringLiteral","ts.parseSourceFile.nextTokenCanFollowImportKeyword","ts.parseSourceFile.nextTokenCanFollowExportKeyword","ts.parseSourceFile.nextTokenIsDeclarationStart","ts.parseSourceFile.nextTokenIsAsKeyword","ts.parseSourceFile.parseDeclaration","ts.parseSourceFile.isSourceElement","ts.parseSourceFile.parseSourceElement","ts.parseSourceFile.parseModuleElement","ts.parseSourceFile.parseSourceElementOrModuleElement","ts.parseSourceFile.processReferenceComments","ts.parseSourceFile.setExternalModuleIndicator","ts.isLeftHandSideExpression","ts.isAssignmentOperator","ts.ModuleInstanceState","ts.getModuleInstanceState","ts.bindSourceFile","ts.bindSourceFileWorker","ts.bindSourceFileWorker.createSymbol","ts.bindSourceFileWorker.setBlockScopeContainer","ts.bindSourceFileWorker.addDeclarationToSymbol","ts.bindSourceFileWorker.getDeclarationName","ts.bindSourceFileWorker.getDisplayName","ts.bindSourceFileWorker.declareSymbol","ts.bindSourceFileWorker.declareModuleMember","ts.bindSourceFileWorker.bindChildren","ts.bindSourceFileWorker.bindDeclaration","ts.bindSourceFileWorker.isAmbientContext","ts.bindSourceFileWorker.hasExportDeclarations","ts.bindSourceFileWorker.setExportContextFlag","ts.bindSourceFileWorker.bindModuleDeclaration","ts.bindSourceFileWorker.bindFunctionOrConstructorType","ts.bindSourceFileWorker.bindAnonymousDeclaration","ts.bindSourceFileWorker.bindCatchVariableDeclaration","ts.bindSourceFileWorker.bindBlockScopedVariableDeclaration","ts.bindSourceFileWorker.getDestructuringParameterName","ts.bindSourceFileWorker.bind","ts.bindSourceFileWorker.bindParameter","ts.bindSourceFileWorker.bindPropertyOrMethodOrAccessor","ts.getNodeId","ts.getSymbolId","ts.createTypeChecker","ts.createTypeChecker.getEmitResolver","ts.createTypeChecker.error","ts.createTypeChecker.createSymbol","ts.createTypeChecker.getExcludedSymbolFlags","ts.createTypeChecker.recordMergedSymbol","ts.createTypeChecker.cloneSymbol","ts.createTypeChecker.mergeSymbol","ts.createTypeChecker.cloneSymbolTable","ts.createTypeChecker.mergeSymbolTable","ts.createTypeChecker.getSymbolLinks","ts.createTypeChecker.getNodeLinks","ts.createTypeChecker.getSourceFile","ts.createTypeChecker.isGlobalSourceFile","ts.createTypeChecker.getSymbol","ts.createTypeChecker.isDefinedBefore","ts.createTypeChecker.resolveName","ts.createTypeChecker.checkResolvedBlockScopedVariable","ts.createTypeChecker.isSameScopeDescendentOf","ts.createTypeChecker.getAnyImportSyntax","ts.createTypeChecker.getDeclarationOfAliasSymbol","ts.createTypeChecker.getTargetOfImportEqualsDeclaration","ts.createTypeChecker.getTargetOfImportClause","ts.createTypeChecker.getTargetOfNamespaceImport","ts.createTypeChecker.getMemberOfModuleVariable","ts.createTypeChecker.combineValueAndTypeSymbols","ts.createTypeChecker.getExportOfModule","ts.createTypeChecker.getPropertyOfVariable","ts.createTypeChecker.getExternalModuleMember","ts.createTypeChecker.getTargetOfImportSpecifier","ts.createTypeChecker.getTargetOfExportSpecifier","ts.createTypeChecker.getTargetOfExportAssignment","ts.createTypeChecker.getTargetOfAliasDeclaration","ts.createTypeChecker.resolveSymbol","ts.createTypeChecker.resolveAlias","ts.createTypeChecker.markExportAsReferenced","ts.createTypeChecker.markAliasSymbolAsReferenced","ts.createTypeChecker.getSymbolOfPartOfRightHandSideOfImportEquals","ts.createTypeChecker.getFullyQualifiedName","ts.createTypeChecker.resolveEntityName","ts.createTypeChecker.isExternalModuleNameRelative","ts.createTypeChecker.resolveExternalModuleName","ts.createTypeChecker.resolveExternalModuleSymbol","ts.createTypeChecker.resolveESModuleSymbol","ts.createTypeChecker.getExportAssignmentSymbol","ts.createTypeChecker.getExportsOfSymbol","ts.createTypeChecker.getExportsOfModule","ts.createTypeChecker.extendExportSymbols","ts.createTypeChecker.getExportsForModule","ts.createTypeChecker.getExportsForModule.visit","ts.createTypeChecker.getMergedSymbol","ts.createTypeChecker.getSymbolOfNode","ts.createTypeChecker.getParentOfSymbol","ts.createTypeChecker.getExportSymbolOfValueSymbolIfExported","ts.createTypeChecker.symbolIsValue","ts.createTypeChecker.findConstructorDeclaration","ts.createTypeChecker.createType","ts.createTypeChecker.createIntrinsicType","ts.createTypeChecker.createObjectType","ts.createTypeChecker.isReservedMemberName","ts.createTypeChecker.getNamedMembers","ts.createTypeChecker.setObjectTypeMembers","ts.createTypeChecker.createAnonymousType","ts.createTypeChecker.forEachSymbolTableInScope","ts.createTypeChecker.getQualifiedLeftMeaning","ts.createTypeChecker.getAccessibleSymbolChain","ts.createTypeChecker.getAccessibleSymbolChain.getAccessibleSymbolChainFromSymbolTable","ts.createTypeChecker.getAccessibleSymbolChain.getAccessibleSymbolChainFromSymbolTable.canQualifySymbol","ts.createTypeChecker.getAccessibleSymbolChain.getAccessibleSymbolChainFromSymbolTable.isAccessible","ts.createTypeChecker.needsQualification","ts.createTypeChecker.isSymbolAccessible","ts.createTypeChecker.isSymbolAccessible.getExternalModuleContainer","ts.createTypeChecker.hasExternalModuleSymbol","ts.createTypeChecker.hasVisibleDeclarations","ts.createTypeChecker.hasVisibleDeclarations.getIsDeclarationVisible","ts.createTypeChecker.isEntityNameVisible","ts.createTypeChecker.writeKeyword","ts.createTypeChecker.writePunctuation","ts.createTypeChecker.writeSpace","ts.createTypeChecker.symbolToString","ts.createTypeChecker.typeToString","ts.createTypeChecker.getTypeAliasForTypeLiteral","ts.createTypeChecker.getSymbolDisplayBuilder","ts.createTypeChecker.getSymbolDisplayBuilder.appendSymbolNameOnly","ts.createTypeChecker.getSymbolDisplayBuilder.buildSymbolDisplay","ts.createTypeChecker.getSymbolDisplayBuilder.buildSymbolDisplay.appendParentTypeArgumentsAndSymbolName","ts.createTypeChecker.getSymbolDisplayBuilder.buildSymbolDisplay.walkSymbol","ts.createTypeChecker.getSymbolDisplayBuilder.buildTypeDisplay","ts.createTypeChecker.getSymbolDisplayBuilder.buildTypeDisplay.writeType","ts.createTypeChecker.getSymbolDisplayBuilder.buildTypeDisplay.writeTypeList","ts.createTypeChecker.getSymbolDisplayBuilder.buildTypeDisplay.writeTypeReference","ts.createTypeChecker.getSymbolDisplayBuilder.buildTypeDisplay.writeTupleType","ts.createTypeChecker.getSymbolDisplayBuilder.buildTypeDisplay.writeUnionType","ts.createTypeChecker.getSymbolDisplayBuilder.buildTypeDisplay.writeAnonymousType","ts.createTypeChecker.getSymbolDisplayBuilder.buildTypeDisplay.writeAnonymousType.shouldWriteTypeOfFunctionSymbol","ts.createTypeChecker.getSymbolDisplayBuilder.buildTypeDisplay.writeTypeofSymbol","ts.createTypeChecker.getSymbolDisplayBuilder.buildTypeDisplay.getIndexerParameterName","ts.createTypeChecker.getSymbolDisplayBuilder.buildTypeDisplay.writeLiteralType","ts.createTypeChecker.getSymbolDisplayBuilder.buildTypeParameterDisplayFromSymbol","ts.createTypeChecker.getSymbolDisplayBuilder.buildTypeParameterDisplay","ts.createTypeChecker.getSymbolDisplayBuilder.buildParameterDisplay","ts.createTypeChecker.getSymbolDisplayBuilder.buildDisplayForTypeParametersAndDelimiters","ts.createTypeChecker.getSymbolDisplayBuilder.buildDisplayForTypeArgumentsAndDelimiters","ts.createTypeChecker.getSymbolDisplayBuilder.buildDisplayForParametersAndDelimiters","ts.createTypeChecker.getSymbolDisplayBuilder.buildReturnTypeDisplay","ts.createTypeChecker.getSymbolDisplayBuilder.buildSignatureDisplay","ts.createTypeChecker.isDeclarationVisible","ts.createTypeChecker.isDeclarationVisible.getContainingExternalModule","ts.createTypeChecker.isDeclarationVisible.isUsedInExportAssignment","ts.createTypeChecker.isDeclarationVisible.isUsedInExportAssignment.isSymbolUsedInExportAssignment","ts.createTypeChecker.isDeclarationVisible.determineIfDeclarationIsVisible","ts.createTypeChecker.collectLinkedAliases","ts.createTypeChecker.collectLinkedAliases.buildVisibleNodeList","ts.createTypeChecker.getRootDeclaration","ts.createTypeChecker.getDeclarationContainer","ts.createTypeChecker.getTypeOfPrototypeProperty","ts.createTypeChecker.getTypeOfPropertyOfType","ts.createTypeChecker.getTypeForBindingElement","ts.createTypeChecker.getTypeForVariableLikeDeclaration","ts.createTypeChecker.getTypeFromBindingElement","ts.createTypeChecker.getTypeFromObjectBindingPattern","ts.createTypeChecker.getTypeFromArrayBindingPattern","ts.createTypeChecker.getTypeFromBindingPattern","ts.createTypeChecker.getWidenedTypeForVariableLikeDeclaration","ts.createTypeChecker.getTypeOfVariableOrParameterOrProperty","ts.createTypeChecker.getSetAccessorTypeAnnotationNode","ts.createTypeChecker.getAnnotatedAccessorType","ts.createTypeChecker.getTypeOfAccessors","ts.createTypeChecker.checkAndStoreTypeOfAccessors","ts.createTypeChecker.getTypeOfFuncClassEnumModule","ts.createTypeChecker.getTypeOfEnumMember","ts.createTypeChecker.getTypeOfAlias","ts.createTypeChecker.getTypeOfInstantiatedSymbol","ts.createTypeChecker.getTypeOfSymbol","ts.createTypeChecker.getTargetType","ts.createTypeChecker.hasBaseType","ts.createTypeChecker.hasBaseType.check","ts.createTypeChecker.getTypeParametersOfClassOrInterface","ts.createTypeChecker.getDeclaredTypeOfClass","ts.createTypeChecker.getDeclaredTypeOfInterface","ts.createTypeChecker.getDeclaredTypeOfTypeAlias","ts.createTypeChecker.getDeclaredTypeOfEnum","ts.createTypeChecker.getDeclaredTypeOfTypeParameter","ts.createTypeChecker.getDeclaredTypeOfAlias","ts.createTypeChecker.getDeclaredTypeOfSymbol","ts.createTypeChecker.createSymbolTable","ts.createTypeChecker.createInstantiatedSymbolTable","ts.createTypeChecker.addInheritedMembers","ts.createTypeChecker.addInheritedSignatures","ts.createTypeChecker.resolveClassOrInterfaceMembers","ts.createTypeChecker.resolveTypeReferenceMembers","ts.createTypeChecker.createSignature","ts.createTypeChecker.cloneSignature","ts.createTypeChecker.getDefaultConstructSignatures","ts.createTypeChecker.createTupleTypeMemberSymbols","ts.createTypeChecker.resolveTupleTypeMembers","ts.createTypeChecker.signatureListsIdentical","ts.createTypeChecker.getUnionSignatures","ts.createTypeChecker.getUnionIndexType","ts.createTypeChecker.resolveUnionTypeMembers","ts.createTypeChecker.resolveAnonymousTypeMembers","ts.createTypeChecker.resolveObjectOrUnionTypeMembers","ts.createTypeChecker.getPropertiesOfObjectType","ts.createTypeChecker.getPropertyOfObjectType","ts.createTypeChecker.getPropertiesOfUnionType","ts.createTypeChecker.getPropertiesOfType","ts.createTypeChecker.getApparentType","ts.createTypeChecker.createUnionProperty","ts.createTypeChecker.getPropertyOfUnionType","ts.createTypeChecker.getPropertyOfType","ts.createTypeChecker.getSignaturesOfObjectOrUnionType","ts.createTypeChecker.getSignaturesOfType","ts.createTypeChecker.getIndexTypeOfObjectOrUnionType","ts.createTypeChecker.getIndexTypeOfType","ts.createTypeChecker.getTypeParametersFromDeclaration","ts.createTypeChecker.symbolsToArray","ts.createTypeChecker.getExportsOfExternalModule","ts.createTypeChecker.getSignatureFromDeclaration","ts.createTypeChecker.getSignaturesOfSymbol","ts.createTypeChecker.getReturnTypeOfSignature","ts.createTypeChecker.getRestTypeOfSignature","ts.createTypeChecker.getSignatureInstantiation","ts.createTypeChecker.getErasedSignature","ts.createTypeChecker.getOrCreateTypeFromSignature","ts.createTypeChecker.getIndexSymbol","ts.createTypeChecker.getIndexDeclarationOfSymbol","ts.createTypeChecker.getIndexTypeOfSymbol","ts.createTypeChecker.getConstraintOfTypeParameter","ts.createTypeChecker.getTypeListId","ts.createTypeChecker.getWideningFlagsOfTypes","ts.createTypeChecker.createTypeReference","ts.createTypeChecker.isTypeParameterReferenceIllegalInConstraint","ts.createTypeChecker.checkTypeParameterHasIllegalReferencesInConstraint","ts.createTypeChecker.checkTypeParameterHasIllegalReferencesInConstraint.check","ts.createTypeChecker.getTypeFromTypeReferenceNode","ts.createTypeChecker.getTypeFromTypeQueryNode","ts.createTypeChecker.getTypeOfGlobalSymbol","ts.createTypeChecker.getTypeOfGlobalSymbol.getTypeDeclaration","ts.createTypeChecker.getGlobalValueSymbol","ts.createTypeChecker.getGlobalTypeSymbol","ts.createTypeChecker.getGlobalSymbol","ts.createTypeChecker.getGlobalType","ts.createTypeChecker.getGlobalESSymbolConstructorSymbol","ts.createTypeChecker.createArrayType","ts.createTypeChecker.getTypeFromArrayTypeNode","ts.createTypeChecker.createTupleType","ts.createTypeChecker.getTypeFromTupleTypeNode","ts.createTypeChecker.addTypeToSortedSet","ts.createTypeChecker.addTypesToSortedSet","ts.createTypeChecker.isSubtypeOfAny","ts.createTypeChecker.removeSubtypes","ts.createTypeChecker.containsAnyType","ts.createTypeChecker.removeAllButLast","ts.createTypeChecker.getUnionType","ts.createTypeChecker.getTypeFromUnionTypeNode","ts.createTypeChecker.getTypeFromTypeLiteralOrFunctionOrConstructorTypeNode","ts.createTypeChecker.getStringLiteralType","ts.createTypeChecker.getTypeFromStringLiteral","ts.createTypeChecker.getTypeFromTypeNode","ts.createTypeChecker.instantiateList","ts.createTypeChecker.createUnaryTypeMapper","ts.createTypeChecker.createBinaryTypeMapper","ts.createTypeChecker.createTypeMapper","ts.createTypeChecker.createUnaryTypeEraser","ts.createTypeChecker.createBinaryTypeEraser","ts.createTypeChecker.createTypeEraser","ts.createTypeChecker.createInferenceMapper","ts.createTypeChecker.identityMapper","ts.createTypeChecker.combineTypeMappers","ts.createTypeChecker.instantiateTypeParameter","ts.createTypeChecker.instantiateSignature","ts.createTypeChecker.instantiateSymbol","ts.createTypeChecker.instantiateAnonymousType","ts.createTypeChecker.instantiateType","ts.createTypeChecker.isContextSensitive","ts.createTypeChecker.isContextSensitiveFunctionLikeDeclaration","ts.createTypeChecker.getTypeWithoutConstructors","ts.createTypeChecker.isTypeIdenticalTo","ts.createTypeChecker.compareTypes","ts.createTypeChecker.isTypeSubtypeOf","ts.createTypeChecker.isTypeAssignableTo","ts.createTypeChecker.checkTypeSubtypeOf","ts.createTypeChecker.checkTypeAssignableTo","ts.createTypeChecker.isSignatureAssignableTo","ts.createTypeChecker.checkTypeRelatedTo","ts.createTypeChecker.checkTypeRelatedTo.reportError","ts.createTypeChecker.checkTypeRelatedTo.isRelatedTo","ts.createTypeChecker.checkTypeRelatedTo.unionTypeRelatedToUnionType","ts.createTypeChecker.checkTypeRelatedTo.typeRelatedToUnionType","ts.createTypeChecker.checkTypeRelatedTo.unionTypeRelatedToType","ts.createTypeChecker.checkTypeRelatedTo.typesRelatedTo","ts.createTypeChecker.checkTypeRelatedTo.typeParameterRelatedTo","ts.createTypeChecker.checkTypeRelatedTo.objectTypeRelatedTo","ts.createTypeChecker.checkTypeRelatedTo.isDeeplyNestedGeneric","ts.createTypeChecker.checkTypeRelatedTo.propertiesRelatedTo","ts.createTypeChecker.checkTypeRelatedTo.propertiesIdenticalTo","ts.createTypeChecker.checkTypeRelatedTo.signaturesRelatedTo","ts.createTypeChecker.checkTypeRelatedTo.signatureRelatedTo","ts.createTypeChecker.checkTypeRelatedTo.signaturesIdenticalTo","ts.createTypeChecker.checkTypeRelatedTo.stringIndexTypesRelatedTo","ts.createTypeChecker.checkTypeRelatedTo.numberIndexTypesRelatedTo","ts.createTypeChecker.checkTypeRelatedTo.indexTypesIdenticalTo","ts.createTypeChecker.isPropertyIdenticalTo","ts.createTypeChecker.compareProperties","ts.createTypeChecker.compareSignatures","ts.createTypeChecker.isSupertypeOfEach","ts.createTypeChecker.getCommonSupertype","ts.createTypeChecker.reportNoCommonSupertypeError","ts.createTypeChecker.isArrayType","ts.createTypeChecker.isArrayLikeType","ts.createTypeChecker.isTupleLikeType","ts.createTypeChecker.isTupleType","ts.createTypeChecker.getWidenedTypeOfObjectLiteral","ts.createTypeChecker.getWidenedType","ts.createTypeChecker.reportWideningErrorsInType","ts.createTypeChecker.reportImplicitAnyError","ts.createTypeChecker.reportErrorsFromWidening","ts.createTypeChecker.forEachMatchingParameterType","ts.createTypeChecker.createInferenceContext","ts.createTypeChecker.inferTypes","ts.createTypeChecker.inferTypes.isInProcess","ts.createTypeChecker.inferTypes.isWithinDepthLimit","ts.createTypeChecker.inferTypes.inferFromTypes","ts.createTypeChecker.inferTypes.inferFromProperties","ts.createTypeChecker.inferTypes.inferFromSignatures","ts.createTypeChecker.inferTypes.inferFromSignature","ts.createTypeChecker.inferTypes.inferFromIndexTypes","ts.createTypeChecker.getInferenceCandidates","ts.createTypeChecker.getInferredType","ts.createTypeChecker.getInferredTypes","ts.createTypeChecker.hasAncestor","ts.createTypeChecker.getResolvedSymbol","ts.createTypeChecker.isInTypeQuery","ts.createTypeChecker.removeTypesFromUnionType","ts.createTypeChecker.hasInitializer","ts.createTypeChecker.isVariableAssignedWithin","ts.createTypeChecker.isVariableAssignedWithin.isAssignedInBinaryExpression","ts.createTypeChecker.isVariableAssignedWithin.isAssignedInVariableDeclaration","ts.createTypeChecker.isVariableAssignedWithin.isAssignedIn","ts.createTypeChecker.resolveLocation","ts.createTypeChecker.getSymbolAtLocation","ts.createTypeChecker.getTypeAtLocation","ts.createTypeChecker.getTypeOfSymbolAtLocation","ts.createTypeChecker.getNarrowedTypeOfSymbol","ts.createTypeChecker.getNarrowedTypeOfSymbol.narrowTypeByEquality","ts.createTypeChecker.getNarrowedTypeOfSymbol.narrowTypeByAnd","ts.createTypeChecker.getNarrowedTypeOfSymbol.narrowTypeByOr","ts.createTypeChecker.getNarrowedTypeOfSymbol.narrowTypeByInstanceof","ts.createTypeChecker.getNarrowedTypeOfSymbol.narrowType","ts.createTypeChecker.checkIdentifier","ts.createTypeChecker.isInsideFunction","ts.createTypeChecker.checkBlockScopedBindingCapturedInLoop","ts.createTypeChecker.captureLexicalThis","ts.createTypeChecker.checkThisExpression","ts.createTypeChecker.isInConstructorArgumentInitializer","ts.createTypeChecker.checkSuperExpression","ts.createTypeChecker.getContextuallyTypedParameterType","ts.createTypeChecker.getContextualTypeForInitializerExpression","ts.createTypeChecker.getContextualTypeForReturnExpression","ts.createTypeChecker.getContextualTypeForArgument","ts.createTypeChecker.getContextualTypeForSubstitutionExpression","ts.createTypeChecker.getContextualTypeForBinaryOperand","ts.createTypeChecker.applyToContextualType","ts.createTypeChecker.getTypeOfPropertyOfContextualType","ts.createTypeChecker.getIndexTypeOfContextualType","ts.createTypeChecker.contextualTypeIsTupleLikeType","ts.createTypeChecker.contextualTypeHasIndexSignature","ts.createTypeChecker.getContextualTypeForObjectLiteralMethod","ts.createTypeChecker.getContextualTypeForObjectLiteralElement","ts.createTypeChecker.getContextualTypeForElementExpression","ts.createTypeChecker.getContextualTypeForConditionalOperand","ts.createTypeChecker.getContextualType","ts.createTypeChecker.getNonGenericSignature","ts.createTypeChecker.isFunctionExpressionOrArrowFunction","ts.createTypeChecker.getContextualSignatureForFunctionLikeDeclaration","ts.createTypeChecker.getContextualSignature","ts.createTypeChecker.isInferentialContext","ts.createTypeChecker.isAssignmentTarget","ts.createTypeChecker.checkSpreadElementExpression","ts.createTypeChecker.checkArrayLiteral","ts.createTypeChecker.isNumericName","ts.createTypeChecker.isNumericComputedName","ts.createTypeChecker.isNumericLiteralName","ts.createTypeChecker.checkComputedPropertyName","ts.createTypeChecker.checkObjectLiteral","ts.createTypeChecker.checkObjectLiteral.getIndexType","ts.createTypeChecker.getDeclarationKindFromSymbol","ts.createTypeChecker.getDeclarationFlagsFromSymbol","ts.createTypeChecker.checkClassPropertyAccess","ts.createTypeChecker.checkPropertyAccessExpression","ts.createTypeChecker.checkQualifiedName","ts.createTypeChecker.checkPropertyAccessExpressionOrQualifiedName","ts.createTypeChecker.isValidPropertyAccess","ts.createTypeChecker.checkIndexedAccess","ts.createTypeChecker.getPropertyNameForIndexedAccess","ts.createTypeChecker.checkThatExpressionIsProperSymbolReference","ts.createTypeChecker.resolveUntypedCall","ts.createTypeChecker.resolveErrorCall","ts.createTypeChecker.reorderCandidates","ts.createTypeChecker.getSpreadArgumentIndex","ts.createTypeChecker.hasCorrectArity","ts.createTypeChecker.getSingleCallSignature","ts.createTypeChecker.instantiateSignatureInContextOf","ts.createTypeChecker.inferTypeArguments","ts.createTypeChecker.checkTypeArguments","ts.createTypeChecker.checkApplicableSignature","ts.createTypeChecker.getEffectiveCallArguments","ts.createTypeChecker.getEffectiveTypeArguments","ts.createTypeChecker.resolveCall","ts.createTypeChecker.resolveCall.chooseOverload","ts.createTypeChecker.resolveCallExpression","ts.createTypeChecker.resolveNewExpression","ts.createTypeChecker.resolveTaggedTemplateExpression","ts.createTypeChecker.getResolvedSignature","ts.createTypeChecker.checkCallExpression","ts.createTypeChecker.checkTaggedTemplateExpression","ts.createTypeChecker.checkTypeAssertion","ts.createTypeChecker.getTypeAtPosition","ts.createTypeChecker.assignContextualParameterTypes","ts.createTypeChecker.getReturnTypeFromBody","ts.createTypeChecker.checkAndAggregateReturnExpressionTypes","ts.createTypeChecker.bodyContainsAReturnStatement","ts.createTypeChecker.bodyContainsSingleThrowStatement","ts.createTypeChecker.checkIfNonVoidFunctionHasReturnExpressionsOrSingleThrowStatment","ts.createTypeChecker.checkFunctionExpressionOrObjectLiteralMethod","ts.createTypeChecker.checkFunctionExpressionOrObjectLiteralMethodBody","ts.createTypeChecker.checkArithmeticOperandType","ts.createTypeChecker.checkReferenceExpression","ts.createTypeChecker.checkReferenceExpression.findSymbol","ts.createTypeChecker.checkReferenceExpression.isReferenceOrErrorExpression","ts.createTypeChecker.checkReferenceExpression.isConstVariableReference","ts.createTypeChecker.checkReferenceExpression.isImportedNameFromExternalModule","ts.createTypeChecker.checkDeleteExpression","ts.createTypeChecker.checkTypeOfExpression","ts.createTypeChecker.checkVoidExpression","ts.createTypeChecker.checkPrefixUnaryExpression","ts.createTypeChecker.checkPostfixUnaryExpression","ts.createTypeChecker.someConstituentTypeHasKind","ts.createTypeChecker.allConstituentTypesHaveKind","ts.createTypeChecker.isConstEnumObjectType","ts.createTypeChecker.isConstEnumSymbol","ts.createTypeChecker.checkInstanceOfExpression","ts.createTypeChecker.checkInExpression","ts.createTypeChecker.checkObjectLiteralAssignment","ts.createTypeChecker.checkArrayLiteralAssignment","ts.createTypeChecker.checkDestructuringAssignment","ts.createTypeChecker.checkReferenceAssignment","ts.createTypeChecker.checkBinaryExpression","ts.createTypeChecker.checkBinaryExpression.checkForDisallowedESSymbolOperand","ts.createTypeChecker.checkBinaryExpression.getSuggestedBooleanOperator","ts.createTypeChecker.checkBinaryExpression.checkAssignmentOperator","ts.createTypeChecker.checkBinaryExpression.reportOperatorError","ts.createTypeChecker.checkYieldExpression","ts.createTypeChecker.checkConditionalExpression","ts.createTypeChecker.checkTemplateExpression","ts.createTypeChecker.checkExpressionWithContextualType","ts.createTypeChecker.checkExpressionCached","ts.createTypeChecker.checkPropertyAssignment","ts.createTypeChecker.checkObjectLiteralMethod","ts.createTypeChecker.instantiateTypeWithSingleGenericCallSignature","ts.createTypeChecker.checkExpression","ts.createTypeChecker.checkExpressionOrQualifiedName","ts.createTypeChecker.checkNumericLiteral","ts.createTypeChecker.checkExpressionWorker","ts.createTypeChecker.checkTypeParameter","ts.createTypeChecker.checkParameter","ts.createTypeChecker.checkSignatureDeclaration","ts.createTypeChecker.checkTypeForDuplicateIndexSignatures","ts.createTypeChecker.checkPropertyDeclaration","ts.createTypeChecker.checkMethodDeclaration","ts.createTypeChecker.checkConstructorDeclaration","ts.createTypeChecker.checkConstructorDeclaration.isSuperCallExpression","ts.createTypeChecker.checkConstructorDeclaration.containsSuperCall","ts.createTypeChecker.checkConstructorDeclaration.markThisReferencesAsErrors","ts.createTypeChecker.checkConstructorDeclaration.isInstancePropertyWithInitializer","ts.createTypeChecker.checkAccessorDeclaration","ts.createTypeChecker.checkMissingDeclaration","ts.createTypeChecker.checkTypeReference","ts.createTypeChecker.checkTypeQuery","ts.createTypeChecker.checkTypeLiteral","ts.createTypeChecker.checkArrayType","ts.createTypeChecker.checkTupleType","ts.createTypeChecker.checkUnionType","ts.createTypeChecker.isPrivateWithinAmbient","ts.createTypeChecker.checkSpecializedSignatureDeclaration","ts.createTypeChecker.getEffectiveDeclarationFlags","ts.createTypeChecker.checkFunctionOrConstructorSymbol","ts.createTypeChecker.checkFunctionOrConstructorSymbol.getCanonicalOverload","ts.createTypeChecker.checkFunctionOrConstructorSymbol.checkFlagAgreementBetweenOverloads","ts.createTypeChecker.checkFunctionOrConstructorSymbol.checkQuestionTokenAgreementBetweenOverloads","ts.createTypeChecker.checkFunctionOrConstructorSymbol.reportImplementationExpectedError","ts.createTypeChecker.checkExportsOnMergedDeclarations","ts.createTypeChecker.checkExportsOnMergedDeclarations.getDeclarationSpaces","ts.createTypeChecker.checkDecorator","ts.createTypeChecker.checkDecorators","ts.createTypeChecker.checkFunctionDeclaration","ts.createTypeChecker.checkFunctionLikeDeclaration","ts.createTypeChecker.checkBlock","ts.createTypeChecker.checkCollisionWithArgumentsInGeneratedCode","ts.createTypeChecker.needCollisionCheckForIdentifier","ts.createTypeChecker.checkCollisionWithCapturedThisVariable","ts.createTypeChecker.checkIfThisIsCapturedInEnclosingScope","ts.createTypeChecker.checkCollisionWithCapturedSuperVariable","ts.createTypeChecker.checkCollisionWithRequireExportsInGeneratedCode","ts.createTypeChecker.checkVarDeclaredNamesNotShadowed","ts.createTypeChecker.isParameterDeclaration","ts.createTypeChecker.checkParameterInitializer","ts.createTypeChecker.checkParameterInitializer.visit","ts.createTypeChecker.checkVariableLikeDeclaration","ts.createTypeChecker.checkVariableDeclaration","ts.createTypeChecker.checkBindingElement","ts.createTypeChecker.checkVariableStatement","ts.createTypeChecker.checkGrammarDisallowedModifiersInBlockOrObjectLiteralExpression","ts.createTypeChecker.inBlockOrObjectLiteralExpression","ts.createTypeChecker.checkExpressionStatement","ts.createTypeChecker.checkIfStatement","ts.createTypeChecker.checkDoStatement","ts.createTypeChecker.checkWhileStatement","ts.createTypeChecker.checkForStatement","ts.createTypeChecker.checkForOfStatement","ts.createTypeChecker.checkForInStatement","ts.createTypeChecker.checkForInOrForOfVariableDeclaration","ts.createTypeChecker.checkRightHandSideOfForOf","ts.createTypeChecker.checkIteratedType","ts.createTypeChecker.checkIteratedType.getIteratedType","ts.createTypeChecker.checkElementTypeOfArrayOrString","ts.createTypeChecker.checkBreakOrContinueStatement","ts.createTypeChecker.isGetAccessorWithAnnotatatedSetAccessor","ts.createTypeChecker.checkReturnStatement","ts.createTypeChecker.checkWithStatement","ts.createTypeChecker.checkSwitchStatement","ts.createTypeChecker.checkLabeledStatement","ts.createTypeChecker.checkThrowStatement","ts.createTypeChecker.checkTryStatement","ts.createTypeChecker.checkIndexConstraints","ts.createTypeChecker.checkIndexConstraints.checkIndexConstraintForProperty","ts.createTypeChecker.checkTypeNameIsReserved","ts.createTypeChecker.checkTypeParameters","ts.createTypeChecker.checkClassDeclaration","ts.createTypeChecker.getTargetSymbol","ts.createTypeChecker.checkKindsOfPropertyMemberOverrides","ts.createTypeChecker.isAccessor","ts.createTypeChecker.areTypeParametersIdentical","ts.createTypeChecker.checkInheritedPropertiesAreIdentical","ts.createTypeChecker.checkInterfaceDeclaration","ts.createTypeChecker.checkTypeAliasDeclaration","ts.createTypeChecker.computeEnumMemberValues","ts.createTypeChecker.computeEnumMemberValues.getConstantValueForEnumMemberInitializer","ts.createTypeChecker.computeEnumMemberValues.getConstantValueForEnumMemberInitializer.evalConstant","ts.createTypeChecker.checkEnumDeclaration","ts.createTypeChecker.getFirstNonAmbientClassOrFunctionDeclaration","ts.createTypeChecker.checkModuleDeclaration","ts.createTypeChecker.getFirstIdentifier","ts.createTypeChecker.checkExternalImportOrExportDeclaration","ts.createTypeChecker.checkAliasSymbol","ts.createTypeChecker.checkImportBinding","ts.createTypeChecker.checkImportDeclaration","ts.createTypeChecker.checkImportEqualsDeclaration","ts.createTypeChecker.checkExportDeclaration","ts.createTypeChecker.checkExportSpecifier","ts.createTypeChecker.checkExportAssignment","ts.createTypeChecker.getModuleStatements","ts.createTypeChecker.hasExportedMembers","ts.createTypeChecker.checkExternalModuleExports","ts.createTypeChecker.checkSourceElement","ts.createTypeChecker.checkFunctionExpressionBodies","ts.createTypeChecker.checkSourceFile","ts.createTypeChecker.checkSourceFileWorker","ts.createTypeChecker.getDiagnostics","ts.createTypeChecker.getGlobalDiagnostics","ts.createTypeChecker.throwIfNonDiagnosticsProducing","ts.createTypeChecker.isInsideWithStatementBody","ts.createTypeChecker.getSymbolsInScope","ts.createTypeChecker.getSymbolsInScope.populateSymbols","ts.createTypeChecker.getSymbolsInScope.copySymbol","ts.createTypeChecker.getSymbolsInScope.copySymbols","ts.createTypeChecker.isTypeDeclarationName","ts.createTypeChecker.isTypeDeclaration","ts.createTypeChecker.isTypeReferenceIdentifier","ts.createTypeChecker.isTypeNode","ts.createTypeChecker.getLeftSideOfImportEqualsOrExportAssignment","ts.createTypeChecker.isInRightSideOfImportOrExportAssignment","ts.createTypeChecker.isRightSideOfQualifiedNameOrPropertyAccess","ts.createTypeChecker.getSymbolOfEntityNameOrPropertyAccessExpression","ts.createTypeChecker.getSymbolInfo","ts.createTypeChecker.getShorthandAssignmentValueSymbol","ts.createTypeChecker.getTypeOfNode","ts.createTypeChecker.getTypeOfExpression","ts.createTypeChecker.getAugmentedPropertiesOfType","ts.createTypeChecker.getRootSymbols","ts.createTypeChecker.isExternalModuleSymbol","ts.createTypeChecker.getAliasNameSubstitution","ts.createTypeChecker.getExportNameSubstitution","ts.createTypeChecker.getExpressionNameSubstitution","ts.createTypeChecker.isValueAliasDeclaration","ts.createTypeChecker.isTopLevelValueImportEqualsWithEntityName","ts.createTypeChecker.isAliasResolvedToValue","ts.createTypeChecker.isConstEnumOrConstEnumOnlyModule","ts.createTypeChecker.isReferencedAliasDeclaration","ts.createTypeChecker.isImplementationOfOverload","ts.createTypeChecker.getNodeCheckFlags","ts.createTypeChecker.getEnumMemberValue","ts.createTypeChecker.getConstantValue","ts.createTypeChecker.writeTypeOfDeclaration","ts.createTypeChecker.writeReturnTypeOfSignatureDeclaration","ts.createTypeChecker.writeTypeOfExpression","ts.createTypeChecker.hasGlobalName","ts.createTypeChecker.resolvesToSomeValue","ts.createTypeChecker.getBlockScopedVariableId","ts.createTypeChecker.instantiateSingleCallFunctionType","ts.createTypeChecker.createResolver","ts.createTypeChecker.initializeTypeChecker","ts.createTypeChecker.checkGrammarDecorators","ts.createTypeChecker.checkGrammarModifiers","ts.createTypeChecker.checkGrammarForDisallowedTrailingComma","ts.createTypeChecker.checkGrammarTypeParameterList","ts.createTypeChecker.checkGrammarParameterList","ts.createTypeChecker.checkGrammarFunctionLikeDeclaration","ts.createTypeChecker.checkGrammarArrowFunction","ts.createTypeChecker.checkGrammarIndexSignatureParameters","ts.createTypeChecker.checkGrammarForIndexSignatureModifier","ts.createTypeChecker.checkGrammarIndexSignature","ts.createTypeChecker.checkGrammarForAtLeastOneTypeArgument","ts.createTypeChecker.checkGrammarTypeArguments","ts.createTypeChecker.checkGrammarForOmittedArgument","ts.createTypeChecker.checkGrammarArguments","ts.createTypeChecker.checkGrammarHeritageClause","ts.createTypeChecker.checkGrammarClassDeclarationHeritageClauses","ts.createTypeChecker.checkGrammarInterfaceDeclaration","ts.createTypeChecker.checkGrammarComputedPropertyName","ts.createTypeChecker.checkGrammarForGenerator","ts.createTypeChecker.checkGrammarFunctionName","ts.createTypeChecker.checkGrammarForInvalidQuestionMark","ts.createTypeChecker.checkGrammarObjectLiteralExpression","ts.createTypeChecker.checkGrammarForInOrForOfStatement","ts.createTypeChecker.checkGrammarAccessor","ts.createTypeChecker.checkGrammarForNonSymbolComputedProperty","ts.createTypeChecker.checkGrammarMethod","ts.createTypeChecker.isIterationStatement","ts.createTypeChecker.checkGrammarBreakOrContinueStatement","ts.createTypeChecker.checkGrammarBindingElement","ts.createTypeChecker.checkGrammarVariableDeclaration","ts.createTypeChecker.checkGrammarNameInLetOrConstDeclarations","ts.createTypeChecker.checkGrammarVariableDeclarationList","ts.createTypeChecker.allowLetAndConstDeclarations","ts.createTypeChecker.checkGrammarForDisallowedLetOrConstStatement","ts.createTypeChecker.isIntegerLiteral","ts.createTypeChecker.checkGrammarEnumDeclaration","ts.createTypeChecker.hasParseDiagnostics","ts.createTypeChecker.grammarErrorOnFirstToken","ts.createTypeChecker.grammarErrorAtPos","ts.createTypeChecker.grammarErrorOnNode","ts.createTypeChecker.checkGrammarEvalOrArgumentsInStrictMode","ts.createTypeChecker.checkGrammarConstructorTypeParameters","ts.createTypeChecker.checkGrammarConstructorTypeAnnotation","ts.createTypeChecker.checkGrammarProperty","ts.createTypeChecker.checkGrammarTopLevelElementForRequiredDeclareModifier","ts.createTypeChecker.checkGrammarTopLevelElementsForRequiredDeclareModifier","ts.createTypeChecker.checkGrammarSourceFile","ts.createTypeChecker.checkGrammarStatementInAmbientContext","ts.createTypeChecker.checkGrammarNumbericLiteral","ts.createTypeChecker.grammarErrorAfterFirstToken","ts.getDeclarationDiagnostics","ts.emitDeclarations","ts.emitDeclarations.hasInternalAnnotation","ts.emitDeclarations.stripInternal","ts.emitDeclarations.createAndSetNewTextWriterWithSymbolWriter","ts.emitDeclarations.setWriter","ts.emitDeclarations.writeAsynchronousModuleElements","ts.emitDeclarations.handleSymbolAccessibilityError","ts.emitDeclarations.trackSymbol","ts.emitDeclarations.writeTypeOfDeclaration","ts.emitDeclarations.writeReturnTypeAtSignature","ts.emitDeclarations.emitLines","ts.emitDeclarations.emitSeparatedList","ts.emitDeclarations.emitCommaList","ts.emitDeclarations.writeJsDocComments","ts.emitDeclarations.emitTypeWithNewGetSymbolAccessibilityDiagnostic","ts.emitDeclarations.emitType","ts.emitDeclarations.emitType.emitEntityName","ts.emitDeclarations.emitType.emitEntityName.writeEntityName","ts.emitDeclarations.emitType.emitTypeReference","ts.emitDeclarations.emitType.emitTypeQuery","ts.emitDeclarations.emitType.emitArrayType","ts.emitDeclarations.emitType.emitTupleType","ts.emitDeclarations.emitType.emitUnionType","ts.emitDeclarations.emitType.emitParenType","ts.emitDeclarations.emitType.emitTypeLiteral","ts.emitDeclarations.emitSourceFile","ts.emitDeclarations.emitExportAssignment","ts.emitDeclarations.emitExportAssignment.getDefaultExportAccessibilityDiagnostic","ts.emitDeclarations.isModuleElementVisible","ts.emitDeclarations.emitModuleElement","ts.emitDeclarations.writeModuleElement","ts.emitDeclarations.emitModuleElementDeclarationFlags","ts.emitDeclarations.emitClassMemberDeclarationFlags","ts.emitDeclarations.writeImportEqualsDeclaration","ts.emitDeclarations.writeImportEqualsDeclaration.getImportEntityNameVisibilityError","ts.emitDeclarations.isVisibleNamedBinding","ts.emitDeclarations.writeImportDeclaration","ts.emitDeclarations.emitImportOrExportSpecifier","ts.emitDeclarations.emitExportSpecifier","ts.emitDeclarations.emitExportDeclaration","ts.emitDeclarations.writeModuleDeclaration","ts.emitDeclarations.writeTypeAliasDeclaration","ts.emitDeclarations.writeTypeAliasDeclaration.getTypeAliasDeclarationVisibilityError","ts.emitDeclarations.writeEnumDeclaration","ts.emitDeclarations.emitEnumMemberDeclaration","ts.emitDeclarations.isPrivateMethodTypeParameter","ts.emitDeclarations.emitTypeParameters","ts.emitDeclarations.emitTypeParameters.emitTypeParameter","ts.emitDeclarations.emitTypeParameters.emitTypeParameter.getTypeParameterConstraintVisibilityError","ts.emitDeclarations.emitHeritageClause","ts.emitDeclarations.emitHeritageClause.emitTypeOfTypeReference","ts.emitDeclarations.emitHeritageClause.emitTypeOfTypeReference.getHeritageClauseVisibilityError","ts.emitDeclarations.writeClassDeclaration","ts.emitDeclarations.writeClassDeclaration.emitParameterProperties","ts.emitDeclarations.writeInterfaceDeclaration","ts.emitDeclarations.emitPropertyDeclaration","ts.emitDeclarations.emitVariableDeclaration","ts.emitDeclarations.emitVariableDeclaration.getVariableDeclarationTypeVisibilityDiagnosticMessage","ts.emitDeclarations.emitVariableDeclaration.getVariableDeclarationTypeVisibilityError","ts.emitDeclarations.emitVariableDeclaration.emitBindingPattern","ts.emitDeclarations.emitVariableDeclaration.emitBindingElement","ts.emitDeclarations.emitVariableDeclaration.emitBindingElement.getBindingElementTypeVisibilityError","ts.emitDeclarations.emitTypeOfVariableDeclarationFromTypeLiteral","ts.emitDeclarations.isVariableStatementVisible","ts.emitDeclarations.writeVariableStatement","ts.emitDeclarations.emitAccessorDeclaration","ts.emitDeclarations.emitAccessorDeclaration.getTypeAnnotationFromAccessor","ts.emitDeclarations.emitAccessorDeclaration.getAccessorDeclarationTypeVisibilityError","ts.emitDeclarations.writeFunctionDeclaration","ts.emitDeclarations.emitSignatureDeclarationWithJsDocComments","ts.emitDeclarations.emitSignatureDeclaration","ts.emitDeclarations.emitSignatureDeclaration.getReturnTypeVisibilityError","ts.emitDeclarations.emitParameterDeclaration","ts.emitDeclarations.emitParameterDeclaration.getParameterDeclarationTypeVisibilityError","ts.emitDeclarations.emitNode","ts.emitDeclarations.writeReferencePath","ts.writeDeclarationFile","ts.writeDeclarationFile.getDeclarationOutput","ts.isExternalModuleOrDeclarationFile","ts.TempVariableKind","ts.emitFiles","ts.emitFiles.isNodeDescendentOf","ts.emitFiles.isUniqueLocalName","ts.emitFiles.emitJavaScript","ts.emitFiles.emitJavaScript.emitSourceFile","ts.emitFiles.emitJavaScript.generateNameForNode","ts.emitFiles.emitJavaScript.isUniqueName","ts.emitFiles.emitJavaScript.nameConflictsWithSomeTempVariable","ts.emitFiles.emitJavaScript.makeTempVariableName","ts.emitFiles.emitJavaScript.makeUniqueName","ts.emitFiles.emitJavaScript.renameNode","ts.emitFiles.emitJavaScript.generateNameForFunctionOrClassDeclaration","ts.emitFiles.emitJavaScript.generateNameForModuleOrEnum","ts.emitFiles.emitJavaScript.generateNameForImportOrExportDeclaration","ts.emitFiles.emitJavaScript.generateNameForImportDeclaration","ts.emitFiles.emitJavaScript.generateNameForExportDeclaration","ts.emitFiles.emitJavaScript.generateNameForExportAssignment","ts.emitFiles.emitJavaScript.getGeneratedNameForNode","ts.emitFiles.emitJavaScript.initializeEmitterWithSourceMaps","ts.emitFiles.emitJavaScript.initializeEmitterWithSourceMaps.getSourceMapNameIndex","ts.emitFiles.emitJavaScript.initializeEmitterWithSourceMaps.encodeLastRecordedSourceMapSpan","ts.emitFiles.emitJavaScript.initializeEmitterWithSourceMaps.encodeLastRecordedSourceMapSpan.base64VLQFormatEncode","ts.emitFiles.emitJavaScript.initializeEmitterWithSourceMaps.encodeLastRecordedSourceMapSpan.base64VLQFormatEncode.base64FormatEncode","ts.emitFiles.emitJavaScript.initializeEmitterWithSourceMaps.recordSourceMapSpan","ts.emitFiles.emitJavaScript.initializeEmitterWithSourceMaps.recordEmitNodeStartSpan","ts.emitFiles.emitJavaScript.initializeEmitterWithSourceMaps.recordEmitNodeEndSpan","ts.emitFiles.emitJavaScript.initializeEmitterWithSourceMaps.writeTextWithSpanRecord","ts.emitFiles.emitJavaScript.initializeEmitterWithSourceMaps.recordNewSourceFileStart","ts.emitFiles.emitJavaScript.initializeEmitterWithSourceMaps.recordScopeNameOfNode","ts.emitFiles.emitJavaScript.initializeEmitterWithSourceMaps.recordScopeNameOfNode.recordScopeNameIndex","ts.emitFiles.emitJavaScript.initializeEmitterWithSourceMaps.recordScopeNameOfNode.recordScopeNameStart","ts.emitFiles.emitJavaScript.initializeEmitterWithSourceMaps.recordScopeNameEnd","ts.emitFiles.emitJavaScript.initializeEmitterWithSourceMaps.writeCommentRangeWithMap","ts.emitFiles.emitJavaScript.initializeEmitterWithSourceMaps.serializeSourceMapContents","ts.emitFiles.emitJavaScript.initializeEmitterWithSourceMaps.serializeSourceMapContents.serializeStringArray","ts.emitFiles.emitJavaScript.initializeEmitterWithSourceMaps.writeJavaScriptAndSourceMapFile","ts.emitFiles.emitJavaScript.initializeEmitterWithSourceMaps.emitNodeWithSourceMap","ts.emitFiles.emitJavaScript.writeJavaScriptFile","ts.emitFiles.emitJavaScript.createTempVariable","ts.emitFiles.emitJavaScript.recordTempDeclaration","ts.emitFiles.emitJavaScript.createAndRecordTempVariable","ts.emitFiles.emitJavaScript.emitTempDeclarations","ts.emitFiles.emitJavaScript.emitTokenText","ts.emitFiles.emitJavaScript.emitOptional","ts.emitFiles.emitJavaScript.emitParenthesizedIf","ts.emitFiles.emitJavaScript.emitTrailingCommaIfPresent","ts.emitFiles.emitJavaScript.emitLinePreservingList","ts.emitFiles.emitJavaScript.emitList","ts.emitFiles.emitJavaScript.emitCommaList","ts.emitFiles.emitJavaScript.emitLines","ts.emitFiles.emitJavaScript.emitLinesStartingAt","ts.emitFiles.emitJavaScript.isBinaryOrOctalIntegerLiteral","ts.emitFiles.emitJavaScript.emitLiteral","ts.emitFiles.emitJavaScript.getLiteralText","ts.emitFiles.emitJavaScript.getQuotedEscapedLiteralText","ts.emitFiles.emitJavaScript.emitDownlevelRawTemplateLiteral","ts.emitFiles.emitJavaScript.emitDownlevelTaggedTemplateArray","ts.emitFiles.emitJavaScript.emitDownlevelTaggedTemplate","ts.emitFiles.emitJavaScript.emitTemplateExpression","ts.emitFiles.emitJavaScript.emitTemplateExpression.shouldEmitTemplateHead","ts.emitFiles.emitJavaScript.emitTemplateExpression.templateNeedsParens","ts.emitFiles.emitJavaScript.emitTemplateExpression.comparePrecedenceToBinaryPlus","ts.emitFiles.emitJavaScript.emitTemplateSpan","ts.emitFiles.emitJavaScript.emitExpressionForPropertyName","ts.emitFiles.emitJavaScript.isNotExpressionIdentifier","ts.emitFiles.emitJavaScript.emitExpressionIdentifier","ts.emitFiles.emitJavaScript.getGeneratedNameForIdentifier","ts.emitFiles.emitJavaScript.emitIdentifier","ts.emitFiles.emitJavaScript.emitThis","ts.emitFiles.emitJavaScript.emitSuper","ts.emitFiles.emitJavaScript.emitObjectBindingPattern","ts.emitFiles.emitJavaScript.emitArrayBindingPattern","ts.emitFiles.emitJavaScript.emitBindingElement","ts.emitFiles.emitJavaScript.emitSpreadElementExpression","ts.emitFiles.emitJavaScript.needsParenthesisForPropertyAccessOrInvocation","ts.emitFiles.emitJavaScript.emitListWithSpread","ts.emitFiles.emitJavaScript.isSpreadElementExpression","ts.emitFiles.emitJavaScript.emitArrayLiteral","ts.emitFiles.emitJavaScript.emitDownlevelObjectLiteralWithComputedProperties","ts.emitFiles.emitJavaScript.createDownlevelObjectLiteralWithComputedProperties","ts.emitFiles.emitJavaScript.addCommentsToSynthesizedNode","ts.emitFiles.emitJavaScript.tryCreatePatchingPropertyAssignment","ts.emitFiles.emitJavaScript.tryGetRightHandSideOfPatchingPropertyAssignment","ts.emitFiles.emitJavaScript.createParenthesizedExpression","ts.emitFiles.emitJavaScript.createNodeArray","ts.emitFiles.emitJavaScript.createBinaryExpression","ts.emitFiles.emitJavaScript.createExpressionStatement","ts.emitFiles.emitJavaScript.createMemberAccessForPropertyName","ts.emitFiles.emitJavaScript.createPropertyAssignment","ts.emitFiles.emitJavaScript.createFunctionExpression","ts.emitFiles.emitJavaScript.createPropertyAccessExpression","ts.emitFiles.emitJavaScript.createElementAccessExpression","ts.emitFiles.emitJavaScript.createIdentifier","ts.emitFiles.emitJavaScript.createCallExpression","ts.emitFiles.emitJavaScript.emitObjectLiteral","ts.emitFiles.emitJavaScript.emitComputedPropertyName","ts.emitFiles.emitJavaScript.emitMethod","ts.emitFiles.emitJavaScript.emitPropertyAssignment","ts.emitFiles.emitJavaScript.emitShorthandPropertyAssignment","ts.emitFiles.emitJavaScript.tryEmitConstantValue","ts.emitFiles.emitJavaScript.indentIfOnDifferentLines","ts.emitFiles.emitJavaScript.emitPropertyAccess","ts.emitFiles.emitJavaScript.emitQualifiedName","ts.emitFiles.emitJavaScript.emitIndexedAccess","ts.emitFiles.emitJavaScript.hasSpreadElement","ts.emitFiles.emitJavaScript.skipParentheses","ts.emitFiles.emitJavaScript.emitCallTarget","ts.emitFiles.emitJavaScript.emitCallWithSpread","ts.emitFiles.emitJavaScript.emitCallExpression","ts.emitFiles.emitJavaScript.emitNewExpression","ts.emitFiles.emitJavaScript.emitTaggedTemplateExpression","ts.emitFiles.emitJavaScript.emitParenExpression","ts.emitFiles.emitJavaScript.emitDeleteExpression","ts.emitFiles.emitJavaScript.emitVoidExpression","ts.emitFiles.emitJavaScript.emitTypeOfExpression","ts.emitFiles.emitJavaScript.emitPrefixUnaryExpression","ts.emitFiles.emitJavaScript.emitPostfixUnaryExpression","ts.emitFiles.emitJavaScript.emitBinaryExpression","ts.emitFiles.emitJavaScript.synthesizedNodeStartsOnNewLine","ts.emitFiles.emitJavaScript.emitConditionalExpression","ts.emitFiles.emitJavaScript.decreaseIndentIf","ts.emitFiles.emitJavaScript.isSingleLineEmptyBlock","ts.emitFiles.emitJavaScript.emitBlock","ts.emitFiles.emitJavaScript.emitEmbeddedStatement","ts.emitFiles.emitJavaScript.emitExpressionStatement","ts.emitFiles.emitJavaScript.emitIfStatement","ts.emitFiles.emitJavaScript.emitDoStatement","ts.emitFiles.emitJavaScript.emitWhileStatement","ts.emitFiles.emitJavaScript.emitStartOfVariableDeclarationList","ts.emitFiles.emitJavaScript.emitForStatement","ts.emitFiles.emitJavaScript.emitForInOrForOfStatement","ts.emitFiles.emitJavaScript.emitDownLevelForOfStatement","ts.emitFiles.emitJavaScript.emitBreakOrContinueStatement","ts.emitFiles.emitJavaScript.emitReturnStatement","ts.emitFiles.emitJavaScript.emitWithStatement","ts.emitFiles.emitJavaScript.emitSwitchStatement","ts.emitFiles.emitJavaScript.emitCaseBlock","ts.emitFiles.emitJavaScript.nodeStartPositionsAreOnSameLine","ts.emitFiles.emitJavaScript.nodeEndPositionsAreOnSameLine","ts.emitFiles.emitJavaScript.nodeEndIsOnSameLineAsNodeStart","ts.emitFiles.emitJavaScript.emitCaseOrDefaultClause","ts.emitFiles.emitJavaScript.emitThrowStatement","ts.emitFiles.emitJavaScript.emitTryStatement","ts.emitFiles.emitJavaScript.emitCatchClause","ts.emitFiles.emitJavaScript.emitDebuggerStatement","ts.emitFiles.emitJavaScript.emitLabelledStatement","ts.emitFiles.emitJavaScript.getContainingModule","ts.emitFiles.emitJavaScript.emitContainingModuleName","ts.emitFiles.emitJavaScript.emitModuleMemberName","ts.emitFiles.emitJavaScript.createVoidZero","ts.emitFiles.emitJavaScript.emitExportMemberAssignment","ts.emitFiles.emitJavaScript.emitExportMemberAssignments","ts.emitFiles.emitJavaScript.emitDestructuring","ts.emitFiles.emitJavaScript.emitDestructuring.emitAssignment","ts.emitFiles.emitJavaScript.emitDestructuring.ensureIdentifier","ts.emitFiles.emitJavaScript.emitDestructuring.createDefaultValueCheck","ts.emitFiles.emitJavaScript.emitDestructuring.createConditionalExpression","ts.emitFiles.emitJavaScript.emitDestructuring.createNumericLiteral","ts.emitFiles.emitJavaScript.emitDestructuring.parenthesizeForAccess","ts.emitFiles.emitJavaScript.emitDestructuring.createPropertyAccess","ts.emitFiles.emitJavaScript.emitDestructuring.createElementAccess","ts.emitFiles.emitJavaScript.emitDestructuring.emitObjectLiteralAssignment","ts.emitFiles.emitJavaScript.emitDestructuring.emitArrayLiteralAssignment","ts.emitFiles.emitJavaScript.emitDestructuring.emitDestructuringAssignment","ts.emitFiles.emitJavaScript.emitDestructuring.emitAssignmentExpression","ts.emitFiles.emitJavaScript.emitDestructuring.emitBindingElement","ts.emitFiles.emitJavaScript.emitVariableDeclaration","ts.emitFiles.emitJavaScript.emitExportVariableAssignments","ts.emitFiles.emitJavaScript.getCombinedFlagsForIdentifier","ts.emitFiles.emitJavaScript.renameNonTopLevelLetAndConst","ts.emitFiles.emitJavaScript.isES6ExportedDeclaration","ts.emitFiles.emitJavaScript.emitVariableStatement","ts.emitFiles.emitJavaScript.emitParameter","ts.emitFiles.emitJavaScript.emitDefaultValueAssignments","ts.emitFiles.emitJavaScript.emitRestParameter","ts.emitFiles.emitJavaScript.emitAccessor","ts.emitFiles.emitJavaScript.shouldEmitAsArrowFunction","ts.emitFiles.emitJavaScript.emitDeclarationName","ts.emitFiles.emitJavaScript.shouldEmitFunctionName","ts.emitFiles.emitJavaScript.emitFunctionDeclaration","ts.emitFiles.emitJavaScript.emitCaptureThisForNodeIfNecessary","ts.emitFiles.emitJavaScript.emitSignatureParameters","ts.emitFiles.emitJavaScript.emitSignatureParametersForArrow","ts.emitFiles.emitJavaScript.emitSignatureAndBody","ts.emitFiles.emitJavaScript.emitFunctionBodyPreamble","ts.emitFiles.emitJavaScript.emitExpressionFunctionBody","ts.emitFiles.emitJavaScript.emitDownLevelExpressionFunctionBody","ts.emitFiles.emitJavaScript.emitBlockFunctionBody","ts.emitFiles.emitJavaScript.findInitialSuperCall","ts.emitFiles.emitJavaScript.emitParameterPropertyAssignments","ts.emitFiles.emitJavaScript.emitMemberAccessForPropertyName","ts.emitFiles.emitJavaScript.emitMemberAssignments","ts.emitFiles.emitJavaScript.emitMemberFunctionsForES5AndLower","ts.emitFiles.emitJavaScript.emitMemberFunctionsForES6AndHigher","ts.emitFiles.emitJavaScript.emitConstructor","ts.emitFiles.emitJavaScript.emitClassDeclaration","ts.emitFiles.emitJavaScript.emitClassDeclarationForES6AndHigher","ts.emitFiles.emitJavaScript.emitClassDeclarationBelowES6","ts.emitFiles.emitJavaScript.emitClassMemberPrefix","ts.emitFiles.emitJavaScript.emitDecoratorsOfClass","ts.emitFiles.emitJavaScript.emitDecoratorsOfConstructor","ts.emitFiles.emitJavaScript.emitDecoratorsOfMembers","ts.emitFiles.emitJavaScript.emitDecoratorsOfParameters","ts.emitFiles.emitJavaScript.emitDecorateStart","ts.emitFiles.emitJavaScript.emitInterfaceDeclaration","ts.emitFiles.emitJavaScript.shouldEmitEnumDeclaration","ts.emitFiles.emitJavaScript.emitEnumDeclaration","ts.emitFiles.emitJavaScript.emitEnumMember","ts.emitFiles.emitJavaScript.writeEnumMemberDeclarationValue","ts.emitFiles.emitJavaScript.getInnerMostModuleDeclarationFromDottedModule","ts.emitFiles.emitJavaScript.shouldEmitModuleDeclaration","ts.emitFiles.emitJavaScript.emitModuleDeclaration","ts.emitFiles.emitJavaScript.emitRequire","ts.emitFiles.emitJavaScript.getNamespaceDeclarationNode","ts.emitFiles.emitJavaScript.isDefaultImport","ts.emitFiles.emitJavaScript.emitExportImportAssignments","ts.emitFiles.emitJavaScript.emitImportDeclaration","ts.emitFiles.emitJavaScript.emitExternalImportDeclaration","ts.emitFiles.emitJavaScript.emitImportEqualsDeclaration","ts.emitFiles.emitJavaScript.emitExportDeclaration","ts.emitFiles.emitJavaScript.emitExportOrImportSpecifierList","ts.emitFiles.emitJavaScript.emitExportAssignment","ts.emitFiles.emitJavaScript.collectExternalModuleInfo","ts.emitFiles.emitJavaScript.sortAMDModules","ts.emitFiles.emitJavaScript.emitExportStarHelper","ts.emitFiles.emitJavaScript.emitAMDModule","ts.emitFiles.emitJavaScript.emitCommonJSModule","ts.emitFiles.emitJavaScript.emitES6Module","ts.emitFiles.emitJavaScript.emitExportEquals","ts.emitFiles.emitJavaScript.emitDirectivePrologues","ts.emitFiles.emitJavaScript.writeHelper","ts.emitFiles.emitJavaScript.emitSourceFileNode","ts.emitFiles.emitJavaScript.emitNodeWithoutSourceMap","ts.emitFiles.emitJavaScript.shouldEmitLeadingAndTrailingComments","ts.emitFiles.emitJavaScript.emitJavaScriptWorker","ts.emitFiles.emitJavaScript.hasDetachedComments","ts.emitFiles.emitJavaScript.getLeadingCommentsWithoutDetachedComments","ts.emitFiles.emitJavaScript.filterComments","ts.emitFiles.emitJavaScript.getLeadingCommentsToEmit","ts.emitFiles.emitJavaScript.getTrailingCommentsToEmit","ts.emitFiles.emitJavaScript.emitOnlyPinnedOrTripleSlashComments","ts.emitFiles.emitJavaScript.emitLeadingComments","ts.emitFiles.emitJavaScript.emitLeadingCommentsWorker","ts.emitFiles.emitJavaScript.emitTrailingComments","ts.emitFiles.emitJavaScript.emitLeadingCommentsOfPosition","ts.emitFiles.emitJavaScript.emitDetachedComments","ts.emitFiles.emitJavaScript.isPinnedOrTripleSlashComment","ts.emitFiles.emitFile","ts.findConfigFile","ts.createCompilerHost","ts.createCompilerHost.getCanonicalFileName","ts.createCompilerHost.getSourceFile","ts.createCompilerHost.directoryExists","ts.createCompilerHost.ensureDirectoriesExist","ts.createCompilerHost.writeFile","ts.getPreEmitDiagnostics","ts.flattenDiagnosticMessageText","ts.createProgram","ts.createProgram.getEmitHost","ts.createProgram.getDiagnosticsProducingTypeChecker","ts.createProgram.getTypeChecker","ts.createProgram.emit","ts.createProgram.getSourceFile","ts.createProgram.getDiagnosticsHelper","ts.createProgram.getSyntacticDiagnostics","ts.createProgram.getSemanticDiagnostics","ts.createProgram.getDeclarationDiagnostics","ts.createProgram.getSyntacticDiagnosticsForFile","ts.createProgram.getSemanticDiagnosticsForFile","ts.createProgram.getDeclarationDiagnosticsForFile","ts.createProgram.getGlobalDiagnostics","ts.createProgram.hasExtension","ts.createProgram.processRootFile","ts.createProgram.processSourceFile","ts.createProgram.findSourceFile","ts.createProgram.findSourceFile.getSourceFileFromCache","ts.createProgram.processReferencedFiles","ts.createProgram.processImportedModules","ts.createProgram.processImportedModules.findModuleSourceFile","ts.createProgram.verifyCompilerOptions","ts.BreakpointResolver","ts.BreakpointResolver.spanInSourceFileAtLocation","ts.BreakpointResolver.spanInSourceFileAtLocation.textSpan","ts.BreakpointResolver.spanInSourceFileAtLocation.spanInNodeIfStartsOnSameLine","ts.BreakpointResolver.spanInSourceFileAtLocation.spanInPreviousNode","ts.BreakpointResolver.spanInSourceFileAtLocation.spanInNextNode","ts.BreakpointResolver.spanInSourceFileAtLocation.spanInNode","ts.BreakpointResolver.spanInSourceFileAtLocation.spanInNode.spanInVariableDeclaration","ts.BreakpointResolver.spanInSourceFileAtLocation.spanInNode.canHaveSpanInParameterDeclaration","ts.BreakpointResolver.spanInSourceFileAtLocation.spanInNode.spanInParameterDeclaration","ts.BreakpointResolver.spanInSourceFileAtLocation.spanInNode.canFunctionHaveSpanInWholeDeclaration","ts.BreakpointResolver.spanInSourceFileAtLocation.spanInNode.spanInFunctionDeclaration","ts.BreakpointResolver.spanInSourceFileAtLocation.spanInNode.spanInFunctionBlock","ts.BreakpointResolver.spanInSourceFileAtLocation.spanInNode.spanInBlock","ts.BreakpointResolver.spanInSourceFileAtLocation.spanInNode.spanInForStatement","ts.BreakpointResolver.spanInSourceFileAtLocation.spanInNode.spanInOpenBraceToken","ts.BreakpointResolver.spanInSourceFileAtLocation.spanInNode.spanInCloseBraceToken","ts.BreakpointResolver.spanInSourceFileAtLocation.spanInNode.spanInOpenParenToken","ts.BreakpointResolver.spanInSourceFileAtLocation.spanInNode.spanInCloseParenToken","ts.BreakpointResolver.spanInSourceFileAtLocation.spanInNode.spanInColonToken","ts.BreakpointResolver.spanInSourceFileAtLocation.spanInNode.spanInGreaterThanOrLessThanToken","ts.BreakpointResolver.spanInSourceFileAtLocation.spanInNode.spanInWhileKeyword","ts.OutliningElementsCollector","ts.OutliningElementsCollector.collectElements","ts.OutliningElementsCollector.collectElements.addOutliningSpan","ts.OutliningElementsCollector.collectElements.autoCollapse","ts.OutliningElementsCollector.collectElements.walk","ts.NavigateTo","ts.NavigateTo.getNavigateToItems","ts.NavigateTo.getNavigateToItems.allMatchesAreCaseSensitive","ts.NavigateTo.getNavigateToItems.getDeclarationName","ts.NavigateTo.getNavigateToItems.getTextOfIdentifierOrLiteral","ts.NavigateTo.getNavigateToItems.tryAddSingleDeclarationName","ts.NavigateTo.getNavigateToItems.tryAddComputedPropertyName","ts.NavigateTo.getNavigateToItems.getContainers","ts.NavigateTo.getNavigateToItems.bestMatchKind","ts.NavigateTo.getNavigateToItems.compareNavigateToItems","ts.NavigateTo.getNavigateToItems.createNavigateToItem","ts.NavigationBar","ts.NavigationBar.getNavigationBarItems","ts.NavigationBar.getNavigationBarItems.getIndent","ts.NavigationBar.getNavigationBarItems.getChildNodes","ts.NavigationBar.getNavigationBarItems.getChildNodes.visit","ts.NavigationBar.getNavigationBarItems.getTopLevelNodes","ts.NavigationBar.getNavigationBarItems.sortNodes","ts.NavigationBar.getNavigationBarItems.addTopLevelNodes","ts.NavigationBar.getNavigationBarItems.isTopLevelFunctionDeclaration","ts.NavigationBar.getNavigationBarItems.getItemsWorker","ts.NavigationBar.getNavigationBarItems.merge","ts.NavigationBar.getNavigationBarItems.createChildItem","ts.NavigationBar.getNavigationBarItems.createChildItem.createItem","ts.NavigationBar.getNavigationBarItems.isEmpty","ts.NavigationBar.getNavigationBarItems.getNavigationBarItem","ts.NavigationBar.getNavigationBarItems.createTopLevelItem","ts.NavigationBar.getNavigationBarItems.createTopLevelItem.getModuleName","ts.NavigationBar.getNavigationBarItems.createTopLevelItem.createModuleItem","ts.NavigationBar.getNavigationBarItems.createTopLevelItem.createFunctionItem","ts.NavigationBar.getNavigationBarItems.createTopLevelItem.createSourceFileItem","ts.NavigationBar.getNavigationBarItems.createTopLevelItem.createClassItem","ts.NavigationBar.getNavigationBarItems.createTopLevelItem.createEnumItem","ts.NavigationBar.getNavigationBarItems.createTopLevelItem.createIterfaceItem","ts.NavigationBar.getNavigationBarItems.removeComputedProperties","ts.NavigationBar.getNavigationBarItems.removeDynamicallyNamedProperties","ts.NavigationBar.getNavigationBarItems.getInnermostModule","ts.NavigationBar.getNavigationBarItems.getNodeSpan","ts.NavigationBar.getNavigationBarItems.getTextOfNode","ts.PatternMatchKind","ts.createPatternMatch","ts.createPatternMatcher","ts.createPatternMatcher.skipMatch","ts.createPatternMatcher.getMatchesForLastSegmentOfPattern","ts.createPatternMatcher.getMatches","ts.createPatternMatcher.getWordSpans","ts.createPatternMatcher.matchTextChunk","ts.createPatternMatcher.containsSpaceOrAsterisk","ts.createPatternMatcher.matchSegment","ts.createPatternMatcher.partStartsWith","ts.createPatternMatcher.tryCamelCaseMatch","ts.patternMatchCompareTo","ts.comparePunctuation","ts.compareCase","ts.compareType","ts.compareCamelCase","ts.createSegment","ts.segmentIsInvalid","ts.isUpperCaseLetter","ts.isLowerCaseLetter","ts.containsUpperCaseLetter","ts.startsWith","ts.indexOfIgnoringCase","ts.startsWithIgnoringCase","ts.toLowerCase","ts.isWordChar","ts.breakPatternIntoTextChunks","ts.createTextChunk","ts.breakIntoCharacterSpans","ts.breakIntoWordSpans","ts.breakIntoSpans","ts.charIsPunctuation","ts.isAllPunctuation","ts.transitionFromUpperToLower","ts.transitionFromLowerToUpper","ts.SignatureHelp","ts.SignatureHelp.ArgumentListKind","ts.SignatureHelp.getSignatureHelpItems","ts.SignatureHelp.getSignatureHelpItems.getImmediatelyContainingArgumentInfo","ts.SignatureHelp.getSignatureHelpItems.getArgumentIndex","ts.SignatureHelp.getSignatureHelpItems.getArgumentCount","ts.SignatureHelp.getSignatureHelpItems.getArgumentIndexForTemplatePiece","ts.SignatureHelp.getSignatureHelpItems.getArgumentListInfoForTemplate","ts.SignatureHelp.getSignatureHelpItems.getApplicableSpanForArguments","ts.SignatureHelp.getSignatureHelpItems.getApplicableSpanForTaggedTemplate","ts.SignatureHelp.getSignatureHelpItems.getContainingArgumentInfo","ts.SignatureHelp.getSignatureHelpItems.getChildListThatStartsWithOpenerToken","ts.SignatureHelp.getSignatureHelpItems.selectBestInvalidOverloadIndex","ts.SignatureHelp.getSignatureHelpItems.createSignatureHelpItems","ts.SignatureHelp.getSignatureHelpItems.createSignatureHelpItems.createSignatureHelpParameterForParameter","ts.SignatureHelp.getSignatureHelpItems.createSignatureHelpItems.createSignatureHelpParameterForTypeParameter","ts.getEndLinePosition","ts.getLineStartPositionForPosition","ts.rangeContainsRange","ts.startEndContainsRange","ts.rangeContainsStartEnd","ts.rangeOverlapsWithStartEnd","ts.startEndOverlapsWithStartEnd","ts.positionBelongsToNode","ts.isCompletedNode","ts.nodeEndsWith","ts.findListItemInfo","ts.hasChildOfKind","ts.findChildOfKind","ts.findContainingList","ts.getTouchingWord","ts.getTouchingPropertyName","ts.getTouchingToken","ts.getTokenAtPosition","ts.getTokenAtPositionWorker","ts.findTokenOnLeftOfPosition","ts.findNextToken","ts.findNextToken.find","ts.findPrecedingToken","ts.findPrecedingToken.findRightmostToken","ts.findPrecedingToken.find","ts.findPrecedingToken.findRightmostChildNodeWithTokens","ts.nodeHasTokens","ts.getNodeModifiers","ts.getTypeArgumentOrTypeParameterList","ts.isToken","ts.isWord","ts.isPropertyName","ts.isComment","ts.isPunctuation","ts.isInsideTemplateLiteral","ts.isAccessibilityModifier","ts.compareDataObjects","ts.isFirstDeclarationOfSymbolParameter","ts.getDisplayPartWriter","ts.getDisplayPartWriter.writeIndent","ts.getDisplayPartWriter.writeKind","ts.getDisplayPartWriter.writeSymbol","ts.getDisplayPartWriter.writeLine","ts.getDisplayPartWriter.resetWriter","ts.symbolPart","ts.symbolPart.displayPartKind","ts.displayPart","ts.spacePart","ts.keywordPart","ts.punctuationPart","ts.operatorPart","ts.textOrKeywordPart","ts.textPart","ts.lineBreakPart","ts.mapToDisplayParts","ts.typeToDisplayParts","ts.symbolToDisplayParts","ts.signatureToDisplayParts","ts.formatting","ts.formatting.ScanAction","ts.formatting.getFormattingScanner","ts.formatting.getFormattingScanner.advance","ts.formatting.getFormattingScanner.shouldRescanGreaterThanToken","ts.formatting.getFormattingScanner.shouldRescanSlashToken","ts.formatting.getFormattingScanner.shouldRescanTemplateToken","ts.formatting.getFormattingScanner.startsWithSlashToken","ts.formatting.getFormattingScanner.readTokenInfo","ts.formatting.getFormattingScanner.isOnToken","ts.formatting.getFormattingScanner.fixTokenKind","ts.formatting.FormattingContext","ts.formatting.FormattingContext.constructor","ts.formatting.FormattingContext.updateContext","ts.formatting.FormattingContext.ContextNodeAllOnSameLine","ts.formatting.FormattingContext.NextNodeAllOnSameLine","ts.formatting.FormattingContext.TokensAreOnSameLine","ts.formatting.FormattingContext.ContextNodeBlockIsOnOneLine","ts.formatting.FormattingContext.NextNodeBlockIsOnOneLine","ts.formatting.FormattingContext.NodeIsOnOneLine","ts.formatting.FormattingContext.BlockIsOnOneLine","ts.formatting.FormattingRequestKind","ts.formatting.Rule","ts.formatting.Rule.constructor","ts.formatting.Rule.toString","ts.formatting.RuleAction","ts.formatting.RuleDescriptor","ts.formatting.RuleDescriptor.constructor","ts.formatting.RuleDescriptor.toString","ts.formatting.RuleDescriptor.create1","ts.formatting.RuleDescriptor.create2","ts.formatting.RuleDescriptor.create3","ts.formatting.RuleDescriptor.create4","ts.formatting.RuleFlags","ts.formatting.RuleOperation","ts.formatting.RuleOperation.constructor","ts.formatting.RuleOperation.toString","ts.formatting.RuleOperation.create1","ts.formatting.RuleOperation.create2","ts.formatting.RuleOperationContext","ts.formatting.RuleOperationContext.constructor","ts.formatting.RuleOperationContext.IsAny","ts.formatting.RuleOperationContext.InContext","ts.formatting.Rules","ts.formatting.Rules.constructor","ts.formatting.Rules.getRuleName","ts.formatting.Rules.IsForContext","ts.formatting.Rules.IsNotForContext","ts.formatting.Rules.IsBinaryOpContext","ts.formatting.Rules.IsNotBinaryOpContext","ts.formatting.Rules.IsConditionalOperatorContext","ts.formatting.Rules.IsSameLineTokenOrBeforeMultilineBlockContext","ts.formatting.Rules.IsBeforeMultilineBlockContext","ts.formatting.Rules.IsMultilineBlockContext","ts.formatting.Rules.IsSingleLineBlockContext","ts.formatting.Rules.IsBlockContext","ts.formatting.Rules.IsBeforeBlockContext","ts.formatting.Rules.NodeIsBlockContext","ts.formatting.Rules.IsFunctionDeclContext","ts.formatting.Rules.IsTypeScriptDeclWithBlockContext","ts.formatting.Rules.NodeIsTypeScriptDeclWithBlockContext","ts.formatting.Rules.IsAfterCodeBlockContext","ts.formatting.Rules.IsControlDeclContext","ts.formatting.Rules.IsObjectContext","ts.formatting.Rules.IsFunctionCallContext","ts.formatting.Rules.IsNewContext","ts.formatting.Rules.IsFunctionCallOrNewContext","ts.formatting.Rules.IsPreviousTokenNotComma","ts.formatting.Rules.IsSameLineTokenContext","ts.formatting.Rules.IsStartOfVariableDeclarationList","ts.formatting.Rules.IsNotFormatOnEnter","ts.formatting.Rules.IsModuleDeclContext","ts.formatting.Rules.IsObjectTypeContext","ts.formatting.Rules.IsTypeArgumentOrParameter","ts.formatting.Rules.IsTypeArgumentOrParameterContext","ts.formatting.Rules.IsVoidOpContext","ts.formatting.RulesMap","ts.formatting.RulesMap.constructor","ts.formatting.RulesMap.create","ts.formatting.RulesMap.Initialize","ts.formatting.RulesMap.FillRules","ts.formatting.RulesMap.GetRuleBucketIndex","ts.formatting.RulesMap.FillRule","ts.formatting.RulesMap.GetRule","ts.formatting.RulesPosition","ts.formatting.RulesBucketConstructionState","ts.formatting.RulesBucketConstructionState.constructor","ts.formatting.RulesBucketConstructionState.GetInsertionIndex","ts.formatting.RulesBucketConstructionState.IncreaseInsertionIndex","ts.formatting.RulesBucket","ts.formatting.RulesBucket.constructor","ts.formatting.RulesBucket.Rules","ts.formatting.RulesBucket.AddRule","ts.formatting.Shared","ts.formatting.Shared.TokenRangeAccess","ts.formatting.Shared.TokenRangeAccess.constructor","ts.formatting.Shared.TokenRangeAccess.GetTokens","ts.formatting.Shared.TokenRangeAccess.Contains","ts.formatting.Shared.TokenValuesAccess","ts.formatting.Shared.TokenValuesAccess.constructor","ts.formatting.Shared.TokenValuesAccess.GetTokens","ts.formatting.Shared.TokenValuesAccess.Contains","ts.formatting.Shared.TokenSingleValueAccess","ts.formatting.Shared.TokenSingleValueAccess.constructor","ts.formatting.Shared.TokenSingleValueAccess.GetTokens","ts.formatting.Shared.TokenSingleValueAccess.Contains","ts.formatting.Shared.TokenAllAccess","ts.formatting.Shared.TokenAllAccess.constructor","ts.formatting.Shared.TokenAllAccess.GetTokens","ts.formatting.Shared.TokenAllAccess.Contains","ts.formatting.Shared.TokenAllAccess.toString","ts.formatting.Shared.TokenRange","ts.formatting.Shared.TokenRange.constructor","ts.formatting.Shared.TokenRange.FromToken","ts.formatting.Shared.TokenRange.FromTokens","ts.formatting.Shared.TokenRange.FromRange","ts.formatting.Shared.TokenRange.AllTokens","ts.formatting.Shared.TokenRange.GetTokens","ts.formatting.Shared.TokenRange.Contains","ts.formatting.Shared.TokenRange.toString","ts.formatting.RulesProvider","ts.formatting.RulesProvider.constructor","ts.formatting.RulesProvider.getRuleName","ts.formatting.RulesProvider.getRuleByName","ts.formatting.RulesProvider.getRulesMap","ts.formatting.RulesProvider.ensureUpToDate","ts.formatting.RulesProvider.createActiveRules","ts.formatting.Constants","ts.formatting.formatOnEnter","ts.formatting.formatOnSemicolon","ts.formatting.formatOnClosingCurly","ts.formatting.formatDocument","ts.formatting.formatSelection","ts.formatting.formatOutermostParent","ts.formatting.findOutermostParent","ts.formatting.isListElement","ts.formatting.findEnclosingNode","ts.formatting.findEnclosingNode.find","ts.formatting.prepareRangeContainsErrorFunction","ts.formatting.prepareRangeContainsErrorFunction.rangeHasNoErrors","ts.formatting.getScanStartPosition","ts.formatting.getOwnOrInheritedDelta","ts.formatting.formatSpan","ts.formatting.formatSpan.tryComputeIndentationForListItem","ts.formatting.formatSpan.computeIndentation","ts.formatting.formatSpan.getFirstNonDecoratorTokenOfNode","ts.formatting.formatSpan.getDynamicIndentation","ts.formatting.formatSpan.processNode","ts.formatting.formatSpan.processNode.processChildNode","ts.formatting.formatSpan.processNode.processChildNodes","ts.formatting.formatSpan.processNode.consumeTokenAndAdvanceScanner","ts.formatting.formatSpan.processTrivia","ts.formatting.formatSpan.processRange","ts.formatting.formatSpan.processPair","ts.formatting.formatSpan.insertIndentation","ts.formatting.formatSpan.indentMultilineComment","ts.formatting.formatSpan.trimTrailingWhitespacesForLines","ts.formatting.formatSpan.newTextChange","ts.formatting.formatSpan.recordDelete","ts.formatting.formatSpan.recordReplace","ts.formatting.formatSpan.applyRuleEdits","ts.formatting.isSomeBlock","ts.formatting.getOpenTokenForList","ts.formatting.getCloseTokenForOpenToken","ts.formatting.getIndentationString","ts.formatting.getIndentationString.repeat","ts.formatting.SmartIndenter","ts.formatting.SmartIndenter.Value","ts.formatting.SmartIndenter.getIndentation","ts.formatting.SmartIndenter.getIndentationForNode","ts.formatting.SmartIndenter.getIndentationForNodeWorker","ts.formatting.SmartIndenter.getParentStart","ts.formatting.SmartIndenter.getActualIndentationForListItemBeforeComma","ts.formatting.SmartIndenter.getActualIndentationForNode","ts.formatting.SmartIndenter.nextTokenIsCurlyBraceOnSameLineAsCursor","ts.formatting.SmartIndenter.getStartLineAndCharacterForNode","ts.formatting.SmartIndenter.childStartsOnTheSameLineWithElseInIfStatement","ts.formatting.SmartIndenter.getContainingList","ts.formatting.SmartIndenter.getActualIndentationForListItem","ts.formatting.SmartIndenter.getActualIndentationForListItem.getActualIndentationFromList","ts.formatting.SmartIndenter.deriveActualIndentationFromList","ts.formatting.SmartIndenter.findColumnForFirstNonWhitespaceCharacterInLine","ts.formatting.SmartIndenter.findFirstNonWhitespaceCharacterAndColumn","ts.formatting.SmartIndenter.findFirstNonWhitespaceColumn","ts.formatting.SmartIndenter.nodeContentIsAlwaysIndented","ts.formatting.SmartIndenter.shouldIndentChildNode","ts.ScriptSnapshot","ts.ScriptSnapshot.StringScriptSnapshot","ts.ScriptSnapshot.StringScriptSnapshot.constructor","ts.ScriptSnapshot.StringScriptSnapshot.getText","ts.ScriptSnapshot.StringScriptSnapshot.getLength","ts.ScriptSnapshot.StringScriptSnapshot.getChangeRange","ts.ScriptSnapshot.fromString","ts.NodeObject","ts.NodeObject.constructor","ts.NodeObject.getSourceFile","ts.NodeObject.getStart","ts.NodeObject.getFullStart","ts.NodeObject.getEnd","ts.NodeObject.getWidth","ts.NodeObject.getFullWidth","ts.NodeObject.getLeadingTriviaWidth","ts.NodeObject.getFullText","ts.NodeObject.getText","ts.NodeObject.addSyntheticNodes","ts.NodeObject.createSyntaxList","ts.NodeObject.createChildren","ts.NodeObject.getChildCount","ts.NodeObject.getChildAt","ts.NodeObject.getChildren","ts.NodeObject.getFirstToken","ts.NodeObject.getLastToken","ts.SymbolObject","ts.SymbolObject.constructor","ts.SymbolObject.getFlags","ts.SymbolObject.getName","ts.SymbolObject.getDeclarations","ts.SymbolObject.getDocumentationComment","ts.getJsDocCommentsFromDeclarations","ts.getJsDocCommentsFromDeclarations.getJsDocCommentsSeparatedByNewLines","ts.getJsDocCommentsFromDeclarations.getJsDocCommentsSeparatedByNewLines.getJsDocCommentTextRange","ts.getJsDocCommentsFromDeclarations.getJsDocCommentsSeparatedByNewLines.consumeWhiteSpacesOnTheLine","ts.getJsDocCommentsFromDeclarations.getJsDocCommentsSeparatedByNewLines.consumeLineBreaks","ts.getJsDocCommentsFromDeclarations.getJsDocCommentsSeparatedByNewLines.isName","ts.getJsDocCommentsFromDeclarations.getJsDocCommentsSeparatedByNewLines.isParamTag","ts.getJsDocCommentsFromDeclarations.getJsDocCommentsSeparatedByNewLines.pushDocCommentLineText","ts.getJsDocCommentsFromDeclarations.getJsDocCommentsSeparatedByNewLines.getCleanedJsDocComment","ts.getJsDocCommentsFromDeclarations.getJsDocCommentsSeparatedByNewLines.getCleanedParamJsDocComment","ts.getJsDocCommentsFromDeclarations.getJsDocCommentsSeparatedByNewLines.getCleanedParamJsDocComment.consumeWhiteSpaces","ts.getJsDocCommentsFromDeclarations.getJsDocCommentsSeparatedByNewLines.getCleanedParamJsDocComment.setPosForParamHelpStringOnNextLine","ts.TypeObject","ts.TypeObject.constructor","ts.TypeObject.getFlags","ts.TypeObject.getSymbol","ts.TypeObject.getProperties","ts.TypeObject.getProperty","ts.TypeObject.getApparentProperties","ts.TypeObject.getCallSignatures","ts.TypeObject.getConstructSignatures","ts.TypeObject.getStringIndexType","ts.TypeObject.getNumberIndexType","ts.SignatureObject","ts.SignatureObject.constructor","ts.SignatureObject.getDeclaration","ts.SignatureObject.getTypeParameters","ts.SignatureObject.getParameters","ts.SignatureObject.getReturnType","ts.SignatureObject.getDocumentationComment","ts.SourceFileObject","ts.SourceFileObject.constructor","ts.SourceFileObject.update","ts.SourceFileObject.getLineAndCharacterOfPosition","ts.SourceFileObject.getLineStarts","ts.SourceFileObject.getPositionOfLineAndCharacter","ts.SourceFileObject.getNamedDeclarations","ts.SourceFileObject.getNamedDeclarations.visit","ts.TextChange","ts.TextChange.constructor","ts.SymbolDisplayPartKind","ts.OutputFileType","ts.EndOfLineState","ts.TokenClass","ts.ScriptElementKind","ts.ScriptElementKind.constructor","ts.ScriptElementKindModifier","ts.ScriptElementKindModifier.constructor","ts.ClassificationTypeNames","ts.ClassificationTypeNames.constructor","ts.displayPartsToString","ts.isLocalVariableOrFunction","ts.getDefaultCompilerOptions","ts.OperationCanceledException","ts.OperationCanceledException.constructor","ts.CancellationTokenObject","ts.CancellationTokenObject.constructor","ts.CancellationTokenObject.isCancellationRequested","ts.CancellationTokenObject.throwIfCancellationRequested","ts.HostCache","ts.HostCache.constructor","ts.HostCache.compilationSettings","ts.HostCache.createEntry","ts.HostCache.getEntry","ts.HostCache.contains","ts.HostCache.getOrCreateEntry","ts.HostCache.getRootFileNames","ts.HostCache.getVersion","ts.HostCache.getScriptSnapshot","ts.SyntaxTreeCache","ts.SyntaxTreeCache.constructor","ts.SyntaxTreeCache.getCurrentSourceFile","ts.setSourceFileFields","ts.createLanguageServiceSourceFile","ts.updateLanguageServiceSourceFile","ts.createDocumentRegistry","ts.createDocumentRegistry.getKeyFromCompilationSettings","ts.createDocumentRegistry.getBucketForCompilationSettings","ts.createDocumentRegistry.reportStats","ts.createDocumentRegistry.acquireDocument","ts.createDocumentRegistry.updateDocument","ts.createDocumentRegistry.acquireOrUpdateDocument","ts.createDocumentRegistry.releaseDocument","ts.preProcessFile","ts.preProcessFile.processTripleSlashDirectives","ts.preProcessFile.recordModuleName","ts.preProcessFile.processImport","ts.getTargetLabel","ts.isJumpStatementTarget","ts.isLabelOfLabeledStatement","ts.isLabeledBy","ts.isLabelName","ts.isRightSideOfQualifiedName","ts.isRightSideOfPropertyAccess","ts.isCallExpressionTarget","ts.isNewExpressionTarget","ts.isNameOfModuleDeclaration","ts.isNameOfFunctionDeclaration","ts.isNameOfPropertyAssignment","ts.isLiteralNameOfPropertyDeclarationOrIndexAccess","ts.isNameOfExternalModuleImportOrDeclaration","ts.isInsideComment","ts.isInsideComment.isInsideCommentRange","ts.SemanticMeaning","ts.BreakContinueSearchType","ts.getContainerNode","ts.getNodeKind","ts.createLanguageService","ts.createLanguageService.log","ts.createLanguageService.getCanonicalFileName","ts.createLanguageService.getValidSourceFile","ts.createLanguageService.getRuleProvider","ts.createLanguageService.synchronizeHostData","ts.createLanguageService.synchronizeHostData.getOrCreateSourceFile","ts.createLanguageService.synchronizeHostData.sourceFileUpToDate","ts.createLanguageService.synchronizeHostData.programUpToDate","ts.createLanguageService.getProgram","ts.createLanguageService.cleanupSemanticCache","ts.createLanguageService.dispose","ts.createLanguageService.getSyntacticDiagnostics","ts.createLanguageService.getSemanticDiagnostics","ts.createLanguageService.getCompilerOptionsDiagnostics","ts.createLanguageService.getCompletionEntryDisplayName","ts.createLanguageService.createCompletionEntry","ts.createLanguageService.getCompletionData","ts.createLanguageService.getCompletionData.getScopeNode","ts.createLanguageService.getCompletionData.isCompletionListBlocker","ts.createLanguageService.getCompletionData.showCompletionsInImportsClause","ts.createLanguageService.getCompletionData.isNewIdentifierDefinitionLocation","ts.createLanguageService.getCompletionData.isInStringOrRegularExpressionOrTemplateLiteral","ts.createLanguageService.getCompletionData.getContainingObjectLiteralApplicableForCompletion","ts.createLanguageService.getCompletionData.isFunction","ts.createLanguageService.getCompletionData.isIdentifierDefinitionLocation","ts.createLanguageService.getCompletionData.isRightOfIllegalDot","ts.createLanguageService.getCompletionData.filterModuleExports","ts.createLanguageService.getCompletionData.filterContextualMembersList","ts.createLanguageService.getCompletionsAtPosition","ts.createLanguageService.getCompletionsAtPosition.getCompletionEntriesFromSymbols","ts.createLanguageService.getCompletionEntryDetails","ts.createLanguageService.getSymbolKind","ts.createLanguageService.getSymbolKindOfConstructorPropertyMethodAccessorFunctionOrVar","ts.createLanguageService.getTypeKind","ts.createLanguageService.getSymbolModifiers","ts.createLanguageService.getSymbolDisplayPartsDocumentationAndSymbolKind","ts.createLanguageService.getSymbolDisplayPartsDocumentationAndSymbolKind.addNewLineIfDisplayPartsExist","ts.createLanguageService.getSymbolDisplayPartsDocumentationAndSymbolKind.addFullSymbolName","ts.createLanguageService.getSymbolDisplayPartsDocumentationAndSymbolKind.addPrefixForAnyFunctionOrVar","ts.createLanguageService.getSymbolDisplayPartsDocumentationAndSymbolKind.pushTypePart","ts.createLanguageService.getSymbolDisplayPartsDocumentationAndSymbolKind.addSignatureDisplayParts","ts.createLanguageService.getSymbolDisplayPartsDocumentationAndSymbolKind.writeTypeParametersOfSymbol","ts.createLanguageService.getQuickInfoAtPosition","ts.createLanguageService.createDefinitionInfo","ts.createLanguageService.getDefinitionAtPosition","ts.createLanguageService.getDefinitionAtPosition.tryAddConstructSignature","ts.createLanguageService.getDefinitionAtPosition.tryAddCallSignature","ts.createLanguageService.getDefinitionAtPosition.tryAddSignature","ts.createLanguageService.getOccurrencesAtPosition","ts.createLanguageService.getOccurrencesAtPosition.getIfElseOccurrences","ts.createLanguageService.getOccurrencesAtPosition.getReturnOccurrences","ts.createLanguageService.getOccurrencesAtPosition.getThrowOccurrences","ts.createLanguageService.getOccurrencesAtPosition.aggregateOwnedThrowStatements","ts.createLanguageService.getOccurrencesAtPosition.aggregateOwnedThrowStatements.aggregate","ts.createLanguageService.getOccurrencesAtPosition.getThrowStatementOwner","ts.createLanguageService.getOccurrencesAtPosition.getTryCatchFinallyOccurrences","ts.createLanguageService.getOccurrencesAtPosition.getLoopBreakContinueOccurrences","ts.createLanguageService.getOccurrencesAtPosition.getSwitchCaseDefaultOccurrences","ts.createLanguageService.getOccurrencesAtPosition.getBreakOrContinueStatementOccurences","ts.createLanguageService.getOccurrencesAtPosition.aggregateAllBreakAndContinueStatements","ts.createLanguageService.getOccurrencesAtPosition.aggregateAllBreakAndContinueStatements.aggregate","ts.createLanguageService.getOccurrencesAtPosition.ownsBreakOrContinueStatement","ts.createLanguageService.getOccurrencesAtPosition.getBreakOrContinueOwner","ts.createLanguageService.getOccurrencesAtPosition.getConstructorOccurrences","ts.createLanguageService.getOccurrencesAtPosition.getGetAndSetOccurrences","ts.createLanguageService.getOccurrencesAtPosition.getGetAndSetOccurrences.tryPushAccessorKeyword","ts.createLanguageService.getOccurrencesAtPosition.getModifierOccurrences","ts.createLanguageService.getOccurrencesAtPosition.getModifierOccurrences.getFlagFromModifier","ts.createLanguageService.getOccurrencesAtPosition.hasKind","ts.createLanguageService.getOccurrencesAtPosition.parent","ts.createLanguageService.getOccurrencesAtPosition.pushKeywordIf","ts.createLanguageService.convertReferences","ts.createLanguageService.findRenameLocations","ts.createLanguageService.getReferencesAtPosition","ts.createLanguageService.findReferences","ts.createLanguageService.findReferencedSymbols","ts.createLanguageService.getReferencesForNode","ts.createLanguageService.getReferencesForNode.getDefinition","ts.createLanguageService.getReferencesForNode.isImportOrExportSpecifierName","ts.createLanguageService.getReferencesForNode.isImportOrExportSpecifierImportSymbol","ts.createLanguageService.getReferencesForNode.getDeclaredName","ts.createLanguageService.getReferencesForNode.getInternedName","ts.createLanguageService.getReferencesForNode.stripQuotes","ts.createLanguageService.getReferencesForNode.getSymbolScope","ts.createLanguageService.getReferencesForNode.getPossibleSymbolReferencePositions","ts.createLanguageService.getReferencesForNode.getLabelReferencesInNode","ts.createLanguageService.getReferencesForNode.isValidReferencePosition","ts.createLanguageService.getReferencesForNode.getReferencesInNode","ts.createLanguageService.getReferencesForNode.getReferencesInNode.getReferencedSymbol","ts.createLanguageService.getReferencesForNode.getReferencesInNode.isInString","ts.createLanguageService.getReferencesForNode.getReferencesInNode.isInComment","ts.createLanguageService.getReferencesForNode.getReferencesForSuperKeyword","ts.createLanguageService.getReferencesForNode.getReferencesForThisKeyword","ts.createLanguageService.getReferencesForNode.getReferencesForThisKeyword.getThisReferencesInFile","ts.createLanguageService.getReferencesForNode.populateSearchSymbolSet","ts.createLanguageService.getReferencesForNode.getPropertySymbolsFromBaseTypes","ts.createLanguageService.getReferencesForNode.getPropertySymbolsFromBaseTypes.getPropertySymbolFromTypeReference","ts.createLanguageService.getReferencesForNode.getRelatedSymbol","ts.createLanguageService.getReferencesForNode.getPropertySymbolsFromContextualType","ts.createLanguageService.getReferencesForNode.getIntersectingMeaningFromDeclarations","ts.createLanguageService.getReferenceEntryFromNode","ts.createLanguageService.isWriteAccess","ts.createLanguageService.getNavigateToItems","ts.createLanguageService.containErrors","ts.createLanguageService.getEmitOutput","ts.createLanguageService.getEmitOutput.writeFile","ts.createLanguageService.getMeaningFromDeclaration","ts.createLanguageService.isTypeReference","ts.createLanguageService.isNamespaceReference","ts.createLanguageService.isInRightSideOfImport","ts.createLanguageService.getMeaningFromRightHandSideOfImportEquals","ts.createLanguageService.getMeaningFromLocation","ts.createLanguageService.getSignatureHelpItems","ts.createLanguageService.getSourceFile","ts.createLanguageService.getNameOrDottedNameSpan","ts.createLanguageService.getBreakpointStatementAtPosition","ts.createLanguageService.getNavigationBarItems","ts.createLanguageService.getSemanticClassifications","ts.createLanguageService.getSemanticClassifications.classifySymbol","ts.createLanguageService.getSemanticClassifications.classifySymbol.hasValueSideModule","ts.createLanguageService.getSemanticClassifications.processNode","ts.createLanguageService.getSyntacticClassifications","ts.createLanguageService.getSyntacticClassifications.classifyLeadingTrivia","ts.createLanguageService.getSyntacticClassifications.classifyDisabledMergeCode","ts.createLanguageService.getSyntacticClassifications.classifyDisabledCodeToken","ts.createLanguageService.getSyntacticClassifications.classifyToken","ts.createLanguageService.getSyntacticClassifications.classifyTokenType","ts.createLanguageService.getSyntacticClassifications.processElement","ts.createLanguageService.getOutliningSpans","ts.createLanguageService.getBraceMatchingAtPosition","ts.createLanguageService.getBraceMatchingAtPosition.getMatchingTokenKind","ts.createLanguageService.getIndentationAtPosition","ts.createLanguageService.getFormattingEditsForRange","ts.createLanguageService.getFormattingEditsForDocument","ts.createLanguageService.getFormattingEditsAfterKeystroke","ts.createLanguageService.getTodoComments","ts.createLanguageService.getTodoComments.escapeRegExp","ts.createLanguageService.getTodoComments.getTodoCommentsRegExp","ts.createLanguageService.getTodoComments.isLetterOrDigit","ts.createLanguageService.getRenameInfo","ts.createLanguageService.getRenameInfo.getRenameInfoError","ts.getNameTable","ts.initializeNameTable","ts.initializeNameTable.walk","ts.isArgumentOfElementAccessExpression","ts.createClassifier","ts.createClassifier.canFollow","ts.createClassifier.getClassificationsForLine","ts.createClassifier.getClassificationsForLine.processToken","ts.createClassifier.getClassificationsForLine.addResult","ts.createClassifier.isBinaryExpressionOperatorToken","ts.createClassifier.isPrefixUnaryExpressionOperatorToken","ts.createClassifier.isKeyword","ts.createClassifier.classFromKind","ts.getDefaultLibFilePath","ts.initializeServices","ts.initializeServices.Node","ts.server","ts.server.generateSpaces","ts.server.compareNumber","ts.server.compareFileStart","ts.server.formatDiag","ts.server.allEditsBeforePos","ts.server.CommandNames","ts.server.Errors","ts.server.Session","ts.server.Session.constructor","ts.server.Session.handleEvent","ts.server.Session.logError","ts.server.Session.sendLineToClient","ts.server.Session.send","ts.server.Session.event","ts.server.Session.response","ts.server.Session.output","ts.server.Session.semanticCheck","ts.server.Session.syntacticCheck","ts.server.Session.errorCheck","ts.server.Session.updateProjectStructure","ts.server.Session.updateErrorCheck","ts.server.Session.getDefinition","ts.server.Session.getRenameLocations","ts.server.Session.getReferences","ts.server.Session.openClientFile","ts.server.Session.getQuickInfo","ts.server.Session.getFormattingEditsForRange","ts.server.Session.getFormattingEditsAfterKeystroke","ts.server.Session.getCompletions","ts.server.Session.getCompletionEntryDetails","ts.server.Session.getSignatureHelpItems","ts.server.Session.getDiagnostics","ts.server.Session.change","ts.server.Session.reload","ts.server.Session.saveToTmp","ts.server.Session.closeClientFile","ts.server.Session.decorateNavigationBarItem","ts.server.Session.getNavigationBarItems","ts.server.Session.getNavigateToItems","ts.server.Session.getBraceMatching","ts.server.Session.onMessage","ts.server.mergeFormatOptions","ts.server.ScriptInfo","ts.server.ScriptInfo.constructor","ts.server.ScriptInfo.setFormatOptions","ts.server.ScriptInfo.close","ts.server.ScriptInfo.addChild","ts.server.ScriptInfo.snap","ts.server.ScriptInfo.getText","ts.server.ScriptInfo.getLineInfo","ts.server.ScriptInfo.editContent","ts.server.ScriptInfo.getTextChangeRangeBetweenVersions","ts.server.ScriptInfo.getChangeRange","ts.server.LSHost","ts.server.LSHost.constructor","ts.server.LSHost.getDefaultLibFileName","ts.server.LSHost.getScriptSnapshot","ts.server.LSHost.setCompilationSettings","ts.server.LSHost.lineAffectsRefs","ts.server.LSHost.getCompilationSettings","ts.server.LSHost.getScriptFileNames","ts.server.LSHost.getScriptVersion","ts.server.LSHost.getCurrentDirectory","ts.server.LSHost.getScriptIsOpen","ts.server.LSHost.removeReferencedFile","ts.server.LSHost.getScriptInfo","ts.server.LSHost.addRoot","ts.server.LSHost.saveTo","ts.server.LSHost.reloadScript","ts.server.LSHost.editScript","ts.server.LSHost.resolvePath","ts.server.LSHost.fileExists","ts.server.LSHost.directoryExists","ts.server.LSHost.lineToTextSpan","ts.server.LSHost.lineOffsetToPosition","ts.server.LSHost.positionToLineOffset","ts.server.getAbsolutePath","ts.server.Project","ts.server.Project.constructor","ts.server.Project.addOpenRef","ts.server.Project.deleteOpenRef","ts.server.Project.openReferencedFile","ts.server.Project.getSourceFile","ts.server.Project.getSourceFileFromName","ts.server.Project.isRoot","ts.server.Project.removeReferencedFile","ts.server.Project.updateFileMap","ts.server.Project.finishGraph","ts.server.Project.updateGraph","ts.server.Project.isConfiguredProject","ts.server.Project.addRoot","ts.server.Project.filesToString","ts.server.Project.setProjectOptions","ts.server.copyListRemovingItem","ts.server.ProjectService","ts.server.ProjectService.constructor","ts.server.ProjectService.addDefaultHostConfiguration","ts.server.ProjectService.getFormatCodeOptions","ts.server.ProjectService.watchedFileChanged","ts.server.ProjectService.log","ts.server.ProjectService.setHostConfiguration","ts.server.ProjectService.closeLog","ts.server.ProjectService.createInferredProject","ts.server.ProjectService.fileDeletedInFilesystem","ts.server.ProjectService.updateConfiguredProjectList","ts.server.ProjectService.setConfiguredProjectRoot","ts.server.ProjectService.addOpenFile","ts.server.ProjectService.closeOpenFile","ts.server.ProjectService.findReferencingProjects","ts.server.ProjectService.updateProjectStructure","ts.server.ProjectService.getScriptInfo","ts.server.ProjectService.openFile","ts.server.ProjectService.findConfigFile","ts.server.ProjectService.openClientFile","ts.server.ProjectService.closeClientFile","ts.server.ProjectService.getProjectForFile","ts.server.ProjectService.printProjectsForFile","ts.server.ProjectService.printProjects","ts.server.ProjectService.configProjectIsActive","ts.server.ProjectService.openConfigFile","ts.server.ProjectService.createProject","ts.server.CompilerService","ts.server.CompilerService.constructor","ts.server.CompilerService.setCompilerOptions","ts.server.CompilerService.isExternalModule","ts.server.CharRangeSection","ts.server.BaseLineIndexWalker","ts.server.BaseLineIndexWalker.constructor","ts.server.BaseLineIndexWalker.leaf","ts.server.EditWalker","ts.server.EditWalker.constructor","ts.server.EditWalker.insertLines","ts.server.EditWalker.post","ts.server.EditWalker.pre","ts.server.EditWalker.pre.fresh","ts.server.EditWalker.leaf","ts.server.TextChange","ts.server.TextChange.constructor","ts.server.TextChange.getTextChangeRange","ts.server.ScriptVersionCache","ts.server.ScriptVersionCache.constructor","ts.server.ScriptVersionCache.edit","ts.server.ScriptVersionCache.latest","ts.server.ScriptVersionCache.latestVersion","ts.server.ScriptVersionCache.reloadFromFile","ts.server.ScriptVersionCache.reload","ts.server.ScriptVersionCache.getSnapshot","ts.server.ScriptVersionCache.getTextChangesBetweenVersions","ts.server.ScriptVersionCache.fromString","ts.server.LineIndexSnapshot","ts.server.LineIndexSnapshot.constructor","ts.server.LineIndexSnapshot.getText","ts.server.LineIndexSnapshot.getLength","ts.server.LineIndexSnapshot.getLineStartPositions","ts.server.LineIndexSnapshot.getLineMapper","ts.server.LineIndexSnapshot.getTextChangeRangeSinceVersion","ts.server.LineIndexSnapshot.getChangeRange","ts.server.LineIndex","ts.server.LineIndex.constructor","ts.server.LineIndex.charOffsetToLineNumberAndPos","ts.server.LineIndex.lineNumberToInfo","ts.server.LineIndex.load","ts.server.LineIndex.walk","ts.server.LineIndex.getText","ts.server.LineIndex.every","ts.server.LineIndex.edit","ts.server.LineIndex.edit.editFlat","ts.server.LineIndex.buildTreeFromBottom","ts.server.LineIndex.linesFromText","ts.server.LineNode","ts.server.LineNode.constructor","ts.server.LineNode.isLeaf","ts.server.LineNode.updateCounts","ts.server.LineNode.execWalk","ts.server.LineNode.skipChild","ts.server.LineNode.walk","ts.server.LineNode.charOffsetToLineNumberAndPos","ts.server.LineNode.lineNumberToInfo","ts.server.LineNode.childFromLineNumber","ts.server.LineNode.childFromCharOffset","ts.server.LineNode.splitAfter","ts.server.LineNode.remove","ts.server.LineNode.findChildIndex","ts.server.LineNode.insertAt","ts.server.LineNode.add","ts.server.LineNode.charCount","ts.server.LineNode.lineCount","ts.server.LineLeaf","ts.server.LineLeaf.constructor","ts.server.LineLeaf.setUdata","ts.server.LineLeaf.getUdata","ts.server.LineLeaf.isLeaf","ts.server.LineLeaf.walk","ts.server.LineLeaf.charCount","ts.server.LineLeaf.lineCount","ts.server.Logger","ts.server.Logger.constructor","ts.server.Logger.padStringRight","ts.server.Logger.close","ts.server.Logger.perftrc","ts.server.Logger.info","ts.server.Logger.startGroup","ts.server.Logger.endGroup","ts.server.Logger.loggingEnabled","ts.server.Logger.isVerbose","ts.server.Logger.msg","ts.server.WatchedFileSet","ts.server.WatchedFileSet.constructor","ts.server.WatchedFileSet.copyListRemovingItem","ts.server.WatchedFileSet.getModifiedTime","ts.server.WatchedFileSet.poll","ts.server.WatchedFileSet.startWatchTimer","ts.server.WatchedFileSet.addFile","ts.server.WatchedFileSet.removeFile","ts.server.IOSession","ts.server.IOSession.constructor","ts.server.IOSession.listen","ts.server.parseLoggingEnvironmentString","ts.server.createLoggerFromEnv"],"mappings":"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,EAAEA,GAAGA,GAAGA,KAAKA,CAACA,MAAMA,EAAEA,CAACA,GAAGA,GAAGA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;gBAC/CA,IAAIA,MAAMA,GAAGA,QAAQA,CAACA,KAAKA,CAACA,CAACA,CAACA,EAAEA,CAACA,CAACA,CAACA;gBACnCA,EAAEA,CAACA,CAACA,MAAMA,CAACA,CAACA,CAACA;oBACTA,MAAMA,CAACA,MAAMA,CAACA;gBAClBA,CAACA;YACLA,CAACA;QACLA,CAACA;QACDA,MAAMA,CAACA,SAASA,CAACA;IACrBA,CAACA;IAVepB,UAAOA,UAUtBA,CAAAA;IAEDA,kBAA4BA,KAAUA,EAAEA,KAAQA;QAC5CqB,EAAEA,CAACA,CAACA,KAAKA,CAACA,CAACA,CAACA;YACRA,GAAGA,CAACA,CAAUA,UAAKA,qBAAdA,OAAKA,EAALA,IAAcA,CAACA;gBAAfA,IAAIA,CAACA,GAAIA,KAAKA,IAATA;gBACNA,EAAEA,CAACA,CAACA,CAACA,KAAKA,KAAKA,CAACA,CAACA,CAACA;oBACdA,MAAMA,CAACA,IAAIA,CAACA;gBAChBA,CAACA;aACJA;QACLA,CAACA;QACDA,MAAMA,CAACA,KAAKA,CAACA;IACjBA,CAACA;IATerB,WAAQA,WASvBA,CAAAA;IAEDA,iBAA2BA,KAAUA,EAAEA,KAAQA;QAC3CsB,EAAEA,CAACA,CAACA,KAAKA,CAACA,CAACA,CAACA;YACRA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,GAAGA,GAAGA,KAAKA,CAACA,MAAMA,EAAEA,CAACA,GAAGA,GAAGA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;gBAC/CA,EAAEA,CAACA,CAACA,KAAKA,CAACA,CAACA,CAACA,KAAKA,KAAKA,CAACA,CAACA,CAACA;oBACrBA,MAAMA,CAACA,CAACA,CAACA;gBACbA,CAACA;YACLA,CAACA;QACLA,CAACA;QACDA,MAAMA,CAACA,CAACA,CAACA,CAACA;IACdA,CAACA;IATetB,UAAOA,UAStBA,CAAAA;IAEDA,oBAA8BA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,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAGA,CAACA;IAC1kGA,IAAIA,wBAAwBA,GAAGA,CAACA,GAAGA,EAAEA,GAAGA,EAAEA,GAAGA,EAAEA,GAAGA,EAAEA,GAAGA,EAAEA,GAAGA,EAAEA,GAAGA,EAAEA,GAAGA,EAAEA,GAAGA,EAAEA,GAAGA,EAAEA,GAAGA,EAAEA,GAAGA,EAAEA,GAAGA,EAAEA,GAAGA,EAAEA,GAAGA,EAAEA,GAAGA,EAAEA,GAAGA,EAAEA,GAAGA,EAAEA,GAAGA,EAAEA,GAAGA,EAAEA,GAAGA,EAAEA,GAAGA,EAAEA,GAAGA,EAAEA,GAAGA,EAAEA,GAAGA,EAAEA,GAAGA,EAAEA,GAAGA,EAAEA,GAAGA,EAAEA,GAAGA,EAAEA,GAAGA,EAAEA,GAAGA,EAAEA,GAAGA,EAAEA,GAAGA,EAAEA,GAAGA,EAAEA,GAAGA,EAAEA,GAAGA,EAAEA,GAAGA,EAAEA,GAAGA,EAAEA,GAAGA,EAAEA,GAAGA,EAAEA,GAAGA,EAAEA,GAAGA,EAAEA,GAAGA,EAAEA,GAAGA,EAAEA,GAAGA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAGA,CAACA;IAwBrlIA,IAAIA,yBAAyBA,GAAGA,CAACA,GAAGA,EAAEA,GAAGA,EAAEA,GAAGA,EAAEA,GAAGA,EAAEA,GAAGA,EAAEA,GAAGA,EAAEA,GAAGA,EAAEA,GAAGA,EAAEA,GAAGA,EAAEA,GAAGA,EAAEA,GAAGA,EAAEA,GAAGA,EAAEA,GAAGA,EAAEA,GAAGA,EAAEA,GAAGA,EAAEA,GAAGA,EAAEA,GAAGA,EAAEA,GAAGA,EAAEA,GAAGA,EAAEA,GAAGA,EAAEA,GAAGA,EAAEA,GAAGA,EAAEA,GAAGA,EAAEA,GAAGA,EAAEA,GAAGA,EAAEA,GAAGA,EAAEA,GAAGA,EAAEA,GAAGA,EAAEA,GAAGA,EAAEA,GAAGA,EAAEA,GAAGA,EAAEA,GAAGA,EAAEA,GAAGA,EAAEA,GAAGA,EAAEA,GAAGA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAGA,CAACA;IAChjJA,IAAIA,wBAAwBA,GAAGA,CAACA,GAAGA,EAAEA,GAAGA,EAAEA,GAAGA,EAAEA,GAAGA,EAAEA,GAAGA,EAAEA,GAAGA,EAAEA,GAAGA,EAAEA,GAAGA,EAAEA,GAAGA,EAAEA,GAAGA,EAAEA,GAAGA,EAAEA,GAAGA,EAAEA,GAAGA,EAAEA,GAAGA,EAAEA,GAAGA,EAAEA,GAAGA,EAAEA,GAAGA,EAAEA,GAAGA,EAAEA,GAAGA,EAAEA,GAAGA,EAAEA,GAAGA,EAAEA,GAAGA,EAAEA,GAAGA,EAAEA,GAAGA,EAAEA,GAAGA,EAAEA,GAAGA,EAAEA,GAAGA,EAAEA,GAAGA,EAAEA,GAAGA,EAAEA,GAAGA,EAAEA,GAAGA,EAAEA,GAAGA,EAAEA,GAAGA,EAAEA,GAAGA,EAAEA,GAAGA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,IAAIA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAEA,KAAKA,EAAE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,IAAIA,OAAAA,6BAA6BA,CAACA,CAACA,CAACA,UAAUA,CAACA,CAACA,CAACA,CAACA,EAA9CA,CAA8CA,CAACA;YAClFA,CAACA,CAACA;IACVA,CAACA;IANe/R,2BAAwBA,2BAMvCA,CAAAA;IAiBDA,IAAIA,aAAaA,GAAaA,CAACA,EAAEA,EAAEA,MAAMA,CAACA,CAACA;IAC3CA,yBAAgCA,KAAaA;QACzCgS,EAAEA,CAACA,CAACA,aAAaA,CAACA,KAAKA,CAACA,KAAKA,SAASA,CAACA,CAACA,CAACA;YACrCA,aAAaA,CAACA,KAAKA,CAACA,GAAGA,eAAeA,CAACA,KAAKA,GAAGA,CAACA,CAACA,GAAGA,aAAaA,CAACA,CAACA,CAACA,CAACA;QACzEA,CAACA;QACDA,MAAMA,CAACA,aAAaA,CAACA,KAAKA,CAACA,CAACA;IAChCA,CAACA;IALehS,kBAAeA,kBAK9BA,CAAAA;IAEDA;QACIiS,MAAMA,CAACA,aAAaA,CAACA,CAACA,CAACA,CAACA,MAAMA,CAACA;IACnCA,CAACA;IAFejS,gBAAaA,gBAE5BA,CAAAA;IAEDA,0BAAiCA,OAAeA;QAC5CkS,IAAIA,MAAMA,GAAGA,EAAEA,CAACA;QAChBA,IAAIA,MAAMA,GAAGA,CAACA,CAACA;QACfA,IAAIA,SAASA,GAAGA,IAAIA,CAACA;QACrBA,IAAIA,SAASA,GAAGA,CAACA,CAACA;QAClBA,IAAIA,OAAOA,GAAGA,CAACA,CAACA;QAEhBA,eAAeA,CAASA;YACpBC,EAAEA,CAACA,CAACA,CAACA,IAAIA,CAACA,CAACA,MAAMA,CAACA,CAACA,CAACA;gBAChBA,EAAEA,CAACA,CAACA,SAASA,CAACA,CAACA,CAACA;oBACZA,MAAMA,IAAIA,eAAeA,CAACA,MAAMA,CAACA,CAACA;oBAClCA,SAASA,GAAGA,KAAKA,CAACA;gBACtBA,CAACA;gBACDA,MAAMA,IAAIA,CAACA,CAACA;YAChBA,CAACA;QACLA,CAACA;QAEDD,kBAAkBA,CAASA;YACvBE,EAAEA,CAACA,CAACA,CAACA,KAAKA,SAASA,CAACA,CAA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AACA,CAACA;gBAC/DA,UAAUA,GAAGA,uCAAuCA,CAACA;YACzDA,CAACA;QACLA,CAACA;QAEDA,MAAMA,CAACA,UAAUA,CAACA;QAElBA,sBAAsBA,IAAUA;YAC5BC,OAAOA,IAAIA,EAAEA,CAACA;gBACVA,IAAIA,SAASA,GAAGA,kBAAkBA,CAACA,IAAIA,CAACA,CAACA;gBACzCA,EAAEA,CAACA,CAACA,SAASA,CAACA,CAACA,CAACA;oBACZA,IAAIA,GAAGA,SAASA,CAACA;gBACrBA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,MAAMA,CAACA,IAAIA,CAACA;gBAChBA,CAACA;YACLA,CAACA;QACLA,CAACA;QAEDD,4BAA4BA,IAAUA;YAClCE,IAAIA,IAAIA,GAASA,SAASA,CAACA;YAC3BA,YAAYA,CAACA,IAAIA,EAAEA,UAAAA,KAAKA;gBACpBA,EAAEA,CAACA,CAACA,gBAAaA,CAACA,KAAKA,CAACA,CAACA,CAACA,CAACA;oBACvBA,IAAIA,GAAGA,KAAKA,CAACA;gBACjBA,CAACA;YACLA,CAACA,CAACA,CAACA;YACHA,MAAMA,CAACA,IAAIA,CAACA;QAChBA,CAACA;QAEDF,eAAeA,KAAWA;YACtBG,EAAEA,CAACA,CAACA,gBAAaA,CAACA,KAAKA,CAACA,CAACA,CAACA,CAACA;gBAGvBA,MAAMA,CAACA;YACXA,CAACA;YAIDA,EAAEA,CAACA,CAACA,KAAKA,CAACA,GAAGA,IAAIA,QAAQA,CAACA,CAACA,CAACA;gBACxBA,EAAEA,CAACA,CAACA,KAAKA,CAACA,GAAGA,IAAIA,UAAUA,CAACA,GAAGA,CAACA,CAACA,CAACA;oBAG9BA,UAAUA,GAAGA,KAAKA,CAACA;gBACvBA,CAACA;gBAMDA,EAAEA,CAACA,CAACA,QAAQA,GAAGA,KAAKA,CAACA,GAAGA,CAACA,CAACA,CAACA;oBAIvBA,YAAYA,CAACA,KAAKA,EAAEA,KAAKA,CAACA,CAACA;oBAI3BA,MAAMA,CAACA,IAAIA,CAACA;gBAChBA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBAC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SA,CAACA;gBACrBA,CAACA;gBAEDA,MAAMA,CAACA,MAAMA,CAACA;YAClBA,CAACA;YAKDA,MAAMA,CAACA,4BAA4BA,GAAGA,SAASA,GAAGA,iBAAiBA,EAAwBA,CAACA;QAChGA,CAACA;QAED7F;YAGI8F,EAAEA,CAACA,CAACA,aAAaA,CAACA,EAAqBA,CAACA,CAACA,CAACA,CAACA;gBACvCA,MAAMA,CAACA;YACXA,CAACA;YAGDA,cAAcA,EAAEA,CAACA;QACrBA,CAACA;QAED9F,8BAA8BA,IAAgBA;YAC1C+F,IAAIA,IAAIA,GAAyBA,UAAUA,CAACA,IAAIA,CAACA,CAACA;YAClDA,EAAEA,CAACA,CAACA,IAAIA,KAAKA,GAA6BA,CAACA,CAACA,CAACA;gBACzCA,aAAaA,CAACA,EAAqBA,CAACA,CAACA;YACzCA,CAACA;YACDA,aAAaA,CAACA,EAAqBA,EAAyCA,KAAKA,EAAoCA,KAAKA,EAAEA,IAAIA,CAACA,CAACA;YAClIA,wBAAwBA,EAAEA,CAACA;YAC3BA,MAAMA,CAACA,UAAUA,CAACA,IAAIA,CAACA,CAACA;QAC5BA,CAACA;QAED/F;YACIgG,EAAEA,CAACA,CAACA,KAAKA,KAAKA,EAA2BA,CAACA,CAACA,CAACA;gBACxCA,MAAMA,CAACA,KAAKA,CAACA;YACjBA,CAACA;YAEDA,MAAMA,CAACA,SAASA,CAACA,6BAA6BA,CAACA,CAACA;QACpDA,CAACA;QAEDhG;YAiBIiG,SAASA,EAAEA,CAACA;YACZA,EAAEA,CAACA,CAACA,KAAKA,KAAKA,EAAyBA,IAAIA,KAAKA,KAAKA,EAA4BA,CAACA,CAACA,CAACA;gBAChFA,MAAMA,CAACA,IAAIA,CAACA;YAChBA,CAACA;YAEDA,EAAEA,CAACA,CAACA,aAAUA,CAACA,KAAKA,CAACA,CAACA,CAACA,CAACA;gBACpBA,SAASA,EAAEA,CAACA;gBACZA,EAAEA,CAACA,CAACA,YAAYA,EAAEA,CAACA,CAACA,CAACA;oBACjBA,MAAMA,CAACA,IAAIA,CAACA;gBAChBA,CAACA;YACLA,CAACA;YACDA,IA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,MAAMA,CAACA,IAAIA,CAACA,2BAA2BA,CAAuBA,IAAIA,CAACA,CAACA,CAACA;gBAC7EA,CAACA;YACLA,CAACA;YACDA,MAAMA,CAACA,MAAMA,CAACA;QAClBA,CAACA;QAEDlL,kCAAkCA,SAAoBA;YAClDmL,EAAEA,CAACA,CAACA,CAACA,SAASA,CAACA,kBAAkBA,CAACA,CAACA,CAACA;gBAChCA,SAASA,CAACA,kBAAkBA,GAAGA,aAAaA,CAACA;gBAC7CA,IAAIA,IAAUA,CAACA;gBACfA,EAAEA,CAACA,CAACA,SAASA,CAACA,MAAMA,CAACA,CAACA,CAACA;oBACnBA,IAAIA,GAAGA,eAAeA,CAACA,wBAAwBA,CAACA,SAASA,CAACA,MAAMA,CAACA,EAAEA,SAASA,CAACA,MAAMA,CAACA,CAACA;gBACzFA,CAACA;gBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,SAASA,CAACA,eAAeA,CAACA,CAACA,CAACA;oBACjCA,IAAIA,GAAGA,YAAYA,CAACA,MAAGA,CAACA,SAASA,CAACA,eAAeA,EAAEA,wBAAwBA,CAACA,CAACA,CAACA;gBAClFA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,IAAIA,GAAGA,qBAAqBA,CAA0BA,SAASA,CAACA,WAAWA,CAACA,CAACA;gBACjFA,CAACA;gBACDA,EAAEA,CAACA,CAACA,SAASA,CAACA,kBAAkBA,KAAKA,aAAaA,CAACA,CAACA,CAACA;oBACjDA,SAASA,CAACA,kBAAkBA,GAAGA,IAAIA,CAACA;gBACxCA,CAACA;YACLA,CAACA;YACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,SAASA,CAACA,kBAAkBA,KAAKA,aAAaA,CAACA,CAACA,CAACA;gBACtDA,SAASA,CAACA,kBAAkBA,GAAGA,OAAOA,CAACA;gBACvCA,EAAEA,CAACA,CAACA,eAAeA,CAACA,aAAaA,CAACA,CAACA,CAACA;oBAChCA,IAAIA,WAAWA,GAAgBA,SAASA,CAACA,WAAWA,CAACA;oBACrDA,EAAEA,CAACA,CAACA,WAAWA,CAACA,IAAIA,CAACA,CAACA,CAACA;wBACnBA,KAAKA,CAACA,WAAWA,CAACA,IAAIA,EAAEA,cAAWA,CAACA,6JAA6JA,EAAEA,0BAAuBA,CAACA,WAAWA,CAACA,IAAIA,CAACA,CAACA,CAACA;oBAClPA,CAACA;oBACDA,IAAIA,CAACA,CAACA;wBACFA,KAAKA,CAACA,WAAWA,EAAEA,cAAWA,CAACA,mKAAmKA,CAACA,CAACA;oBACxMA,CAACA;gBACLA,CAACA;YACLA,CAACA;YACDA,MAAMA,CAACA,SAASA,CAACA,kBAAkBA,CAACA;QACxCA,CAACA;QAEDnL,gCAAgCA,SAAoBA;YAChDoL,EAAEA,CAACA,CAACA,SAASA,CAACA,gBAAgBA,CAACA,CAACA,CAACA;gBAC7BA,IAAIA,IAAIA,GAAGA,eAAeA,CAACA,SAASA,CAACA,UAAUA,CAACA,SAASA,CAACA,UAAUA,CAACA,MAAMA,GAAGA,CAACA,CAACA,CAACA,CAACA;gBAClFA,EAAEA,CAACA,CAACA,IAAIA,CAACA,KAAKA,GAAGA,IAAmBA,IAAoBA,IAAKA,CAACA,MAAMA,KAAKA,eAAeA,CAACA,CAACA,CAACA;oBACvFA,MAAMA,CAAiBA,IAAKA,CAACA,aAAaA,CAACA,CAACA,CAACA,CAACA;gBAClDA,CAACA;YACLA,CAACA;YACDA,MAAMA,CAACA,OAAOA,CAACA;QACnBA,CAACA;QAEDpL,mCAAmCA,SAAoBA,EAAEA,aAAqBA;YAC1EqL,MAAMA,CAACA,oBAAoBA,CAACA,SAASA,EAAEA,gBAAgBA,CAACA,SAASA,CAACA,cAAcA,EAAEA,aAAaA,CAACA,EAAEA,IAAIA,CAACA,CAACA;QAC5GA,CAACA;QAEDrL,4BAA4BA,SAAoBA;YAC5CsL,EAAEA,CAACA,CAACA,CAACA,SAASA,CAACA,cAAcA,CAACA;gBAACA,MAAMA,CAACA,SAASA,CAACA;YAChDA,EAAEA,CAACA,CAACA,CAACA,SAASA,CAACA,oBAAoBA,CAACA,CAACA,CAACA;gBAClCA,EAAEA,CAACA,CAACA,SAASA,CAACA,MAAMA,CAACA,CAACA,CAACA;oBACnB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CAACA,EAAEA,MAAMA,CAACA,sBAAsBA,CAACA,OAAOA,CAACA,CAACA,CAACA,EAAEA,OAAOA,CAACA,CAACA,CAACA,EAAEA,OAAOA,CAACA,CAACA,CAACA,EAAEA,OAAOA,CAACA,CAACA,CAACA,CAACA,CAACA;YAC1FA,CAACA;YACDA,MAAMA,CAACA,UAAAA,CAACA;gBACJA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,OAAOA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;oBACtCA,EAAEA,CAACA,CAACA,CAACA,KAAKA,OAAOA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA;wBACnBA,MAAMA,CAACA,OAAOA,CAACA,CAACA,CAACA,CAACA;oBACtBA,CAACA;gBACLA,CAACA;gBACDA,MAAMA,CAACA,CAACA,CAACA;YACbA,CAACA,CAACA;QACNA,CAACA;QAED9N,+BAA+BA,MAAYA;YACvC+N,MAAMA,CAACA,UAAAA,CAACA,IAAIA,OAAAA,CAACA,KAAKA,MAAMA,GAAGA,OAAOA,GAAGA,CAACA,EAA1BA,CAA0BA,CAACA;QAC3CA,CAACA;QAED/N,gCAAgCA,OAAaA,EAAEA,OAAaA;YACxDgO,MAAMA,CAACA,UAAAA,CAACA,IAAIA,OAAAA,CAACA,KAAKA,OAAOA,IAAIA,CAACA,KAAKA,OAAOA,GAAGA,OAAOA,GAAGA,CAACA,EAA5CA,CAA4CA,CAACA;QAC7DA,CAACA;QAEDhO,0BAA0BA,OAAeA;YACrCiO,MAAMA,CAACA,CAACA,OAAOA,CAACA,MAAMA,CAACA,CAACA,CAACA;gBACrBA,KAAKA,CAACA,EAAEA,MAAMA,CAACA,qBAAqBA,CAACA,OAAOA,CAACA,CAACA,CAACA,CAACA,CAACA;gBACjDA,KAAKA,CAACA,EAAEA,MAAMA,CAACA,sBAAsBA,CAACA,OAAOA,CAACA,CAACA,CAACA,EAAEA,OAAOA,CAACA,CAACA,CAACA,CAACA,CAACA;YAClEA,CAACA;YACDA,MAAMA,CAACA,UAAAA,CAACA;gBACJA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ACA,CAACA,0BAA0BA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA;wBAChCA,aAAaA,GAAGA,IAAIA,CAACA;oBACzBA,CAACA;gBACLA,CAACA,CAACA,CAACA;gBACHA,MAAMA,CAACA,aAAaA,CAACA;YACzBA,CAACA;YACDA,EAAEA,CAACA,CAACA,WAAWA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;gBACpBA,MAAMA,CAACA,0BAA0BA,CAAiBA,IAAKA,CAACA,aAAaA,CAACA,CAACA,CAACA,CAACA,CAACA;YAC9EA,CAACA;YACDA,EAAEA,CAACA,CAACA,IAAIA,CAACA,KAAKA,GAAGA,MAAuBA,CAACA,CAACA,CAACA;gBACvCA,IAAIA,aAAaA,GAAGA,KAAKA,CAACA;gBAC1BA,UAAOA,CAACA,yBAAyBA,CAACA,IAAIA,CAACA,EAAEA,UAAAA,CAACA;oBACtCA,IAAIA,CAACA,GAAGA,eAAeA,CAACA,CAACA,CAACA,CAACA;oBAC3BA,EAAEA,CAACA,CAACA,CAACA,CAACA,KAAKA,GAAGA,MAAiCA,CAACA,CAACA,CAACA;wBAC9CA,EAAEA,CAACA,CAACA,CAACA,0BAA0BA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA;4BACjCA,KAAKA,CAACA,CAACA,CAACA,gBAAgBA,EAAEA,cAAWA,CAACA,oDAAoDA,EAAEA,CAACA,CAACA,IAAIA,EAAEA,YAAYA,CAACA,cAAcA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA;wBACzIA,CAACA;wBACDA,aAAaA,GAAGA,IAAIA,CAACA;oBACzBA,CAACA;gBACLA,CAACA,CAACA,CAACA;gBACHA,MAAMA,CAACA,aAAaA,CAACA;YACzBA,CAACA;YACDA,MAAMA,CAACA,KAAKA,CAACA;QACjBA,CAACA;QAEDlR,gCAAgCA,WAAwBA,EAAEA,IAAUA;YAChEmR,IAAIA,YAAYA,GAAGA,YAAYA,CAACA,cAAcA,CAACA,IAAIA,CAACA,CAACA,CAACA;YACtDA,IAAIA,UAA6BA,CAACA;YAClCA,MAAMA,CAACA,CAACA,WAAWA,C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CAACA;gBAG3CA,IAAIA,IAAIA,GAAGA,iBAAiBA,CAACA,gBAAgBA,CAACA,CAACA;gBAC/CA,EAAEA,CAACA,CAACA,CAACA,IAAIA,IAAIA,IAAIA,KAAKA,gBAAgBA,CAACA,KAAKA,CAACA,CAACA,CAACA;oBAC3CA,IAAIA,GAAGA,eAAeA,CAACA,gBAAgBA,CAACA,IAAIA,CAACA,CAACA;gBAClDA,CAACA;gBACDA,MAAMA,CAACA,IAAIA,CAACA;YAChBA,CAACA;YACDA,MAAMA,CAACA,SAASA,CAACA;QACrBA,CAACA;QAKDjU,+BAA+BA,IAAUA,EAAEA,MAAyBA;YAChEkU,EAAEA,CAACA,CAACA,CAACA,CAACA,IAAIA,CAACA,KAAKA,GAAGA,KAAeA,CAACA,CAACA,CAACA,CAACA;gBAClCA,MAAMA,CAACA,MAAMA,CAACA,IAAIA,CAACA,CAACA;YACxBA,CAACA;YACDA,IAAIA,KAAKA,GAAeA,IAAKA,CAACA,KAAKA,CAACA;YACpCA,IAAIA,UAAgBA,CAACA;YACrBA,IAAIA,WAAmBA,CAACA;YACxBA,GAAGA,CAACA,CAAgBA,UAAKA,qBAApBA,OAAWA,EAAXA,IAAoBA,CAACA;gBAArBA,IAAIA,OAAOA,GAAIA,KAAKA,IAATA;gBACZA,IAAIA,CAACA,GAAGA,MAAMA,CAACA,OAAOA,CAACA,CAACA;gBACxBA,EAAEA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA;oBACJA,EAAEA,CAACA,CAACA,CAACA,UAAUA,CAACA,CAACA,CAACA;wBACdA,UAAUA,GAAGA,CAACA,CAACA;oBACnBA,CAACA;oBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,CAACA,WAAWA,CAACA,CAACA,CAACA;wBACpBA,WAAWA,GAAGA,CAACA,UAAUA,EAAEA,CAACA,CAACA,CAACA;oBAClCA,CAACA;oBACDA,IAAIA,CAACA,CAACA;wBACFA,WAAWA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;oBACxBA,CAACA;gBACLA,CAACA;aACJA;YACDA,MAAMA,CAACA,WAAWA,GAAGA,YAAY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iBA,GAAGA,gBAAgBA,CAACA,aAAaA,CAACA;4BACvDA,CAACA;4BACDA,EAAEA,CAACA,CAACA,CAACA,qBAAqBA,CAACA,CAACA,CAACA;gCACzBA,KAAKA,CAACA;4BACVA,CAACA;4BACDA,SAASA,GAAGA,yBAAyBA,CAACA,SAASA,EAAEA,iBAAiBA,CAACA,CAACA;wBACxEA,CAACA;wBACDA,EAAEA,CAACA,CAACA,CAACA,wBAAwBA,CAACA,IAAIA,EAAEA,IAAIA,EAAEA,SAASA,EAAEA,QAAQA,EAAEA,eAAeA,EAAmBA,KAAKA,CAACA,CAACA,CAACA,CAACA;4BACtGA,KAAKA,CAACA;wBACVA,CAACA;wBACDA,IAAIA,KAAKA,GAAGA,eAAeA,GAAGA,UAAOA,CAACA,eAAeA,EAAEA,IAAIA,CAACA,GAAGA,CAACA,CAACA,CAACA;wBAClEA,EAAEA,CAACA,CAACA,KAAKA,GAAGA,CAACA,CAACA,CAACA,CAACA;4BACZA,MAAMA,CAACA,SAASA,CAACA;wBACrBA,CAACA;wBACDA,eAAeA,CAACA,KAAKA,CAACA,GAAGA,KAAKA,CAACA;oBACnCA,CAACA;oBAODA,EAAEA,CAACA,CAACA,iBAAiBA,CAACA,cAAcA,CAACA,CAACA,CAACA;wBACnCA,IAAIA,qBAAqBA,GAAGA,SAASA,CAACA;wBACtCA,EAAEA,CAACA,CAACA,qBAAqBA,CAACA,CAACA,CAACA;4BACxBA,yBAAyBA,GAAGA,qBAAqBA,CAACA;wBACtDA,CAACA;wBACDA,IAAIA,CAACA,CAACA;4BACFA,6BAA6BA,GAAGA,iBAAiBA,CAACA;4BAClDA,EAAEA,CAACA,CAACA,CAACA,aAAaA,CAACA,CAACA,CAACA;gCACjBA,uBAAuBA,GAAGA,gBAAgBA,CAACA;4BAC/CA,CAACA;wBACLA,CAACA;oBACLA,CAACA;oBACDA,IAAIA,CAACA,CAACA;wBACFA,QAAKA,CAACA,MAAMA,CAACA,iBAAiBA,KAAKA,SAASA,CAACA,CAACA;wBAC9CA,yBAAyBA,GAAGA,iBAAiBA,CAACA;oBAClDA,CAACA;iBACJA;gBA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CA,CAACA,KAAKA,CAACA,SAASA,CAACA,CAACA,CAACA,CAACA;gCACnBA,KAAKA,CAACA,WAAWA,EAAEA,cAAWA,CAACA,mEAAmEA,CAACA,CAACA;4BACxGA,CAACA;4BACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,CAACA,QAAQA,CAACA,SAASA,CAACA,CAACA,CAACA,CAACA;gCAC5BA,KAAKA,CAACA,WAAWA,EAAEA,cAAWA,CAACA,iEAAiEA,CAACA,CAACA;4BACtGA,CAACA;wBACLA,CAACA;oBAELA,CAACA;oBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,OAAOA,IAAIA,CAACA,WAAWA,CAACA,CAACA,CAACA;wBAC/BA,SAASA,GAAGA,SAASA,CAACA;oBAC1BA,CAACA;oBAEDA,EAAEA,CAACA,CAACA,SAASA,KAAKA,SAASA,CAACA,CAACA,CAACA;wBAC1BA,YAAYA,CAACA,MAAMA,CAACA,CAACA,eAAeA,GAAGA,SAASA,EAAEA,CAACA;oBACvDA,CAACA;gBACLA,CAACA,CAACA,CAACA;gBAEHA,SAASA,CAACA,KAAKA,IAAIA,GAAiCA,CAACA;YACzDA,CAACA;YAEDA,kDAAkDA,WAAuBA;gBACrEC,MAAMA,CAACA,YAAYA,CAACA,WAAWA,CAACA,CAACA;gBAEjCA,sBAAsBA,CAAOA;oBACzBC,MAAMA,CAACA,CAACA,CAACA,CAACA,IAAIA,CAACA,CAACA,CAACA;wBACbA,KAAKA,GAAgCA;4BACjCA,IAAIA,KAAKA,GAAGA,YAAYA,CAAyBA,CAAEA,CAACA,OAAOA,CAACA,CAACA;4BAC7DA,EAAEA,CAACA,CAACA,KAAKA,KAAKA,SAASA,CAACA,CAACA,CAACA;gCACtBA,MAAMA,CAACA,SAASA,CAACA;4BACrBA,CAACA;4BACDA,MAAMA,CAACA,CAAyBA,CAAEA,CAACA,QAAQA,CAACA,CAACA,CAACA;gCAC1CA,KAAKA,EAAoBA,EAAEA,MAAMA,CAACA,KAAKA,CAACA;gCACxCA,KAAKA,EAAqBA,EAAEA,MAAMA,CAACA,CAACA,KAAKA,CAACA;gCAC1CA,KA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CAACA,IAAIA,CAACA,qBAAqBA,CAACA,IAAIA,CAACA,IAAIA,CAACA,IAAIA,CAACA,KAAKA,GAAGA,GAAkBA,CAACA,CAACA,CAACA,CAACA;gBACrGA,wBAAwBA,CAACA,IAAIA,EAAEA,cAAWA,CAACA,0CAA0CA,CAACA,CAACA;YAC3FA,CAACA;YACDA,EAAEA,CAACA,CAACA,IAAIA,CAACA,UAAUA,CAACA,CAACA,CAACA;gBAClBA,EAAEA,CAACA,CAACA,IAAIA,CAACA,UAAUA,CAACA,IAAIA,KAAKA,EAAqBA,CAACA,CAACA,CAACA;oBACjDA,sBAAsBA,CAACA,IAAIA,CAACA,CAACA;gBACjCA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,qBAAqBA,CAACA,IAAIA,CAACA,UAAUA,CAACA,CAACA;gBAC3CA,CAACA;YACLA,CAACA;YACDA,EAAEA,CAACA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA,CAACA;gBACZA,kBAAkBA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA;gBAC9BA,EAAEA,CAACA,CAACA,CAACA,qBAAkBA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;oBAC5BA,wBAAwBA,CAACA,IAAIA,CAACA,IAAIA,EAAEA,cAAWA,CAACA,kGAAkGA,CAACA,CAACA;gBACxJA,CAACA;YACLA,CAACA;YAEDA,0BAA0BA,CAACA,SAASA,CAACA,CAACA;YAEtCA,EAAEA,CAACA,CAACA,IAAIA,CAACA,cAAcA,IAAIA,eAAeA,IAAIA,CAAgBA,CAACA,CAACA,CAACA;gBAE7DA,kBAAkBA,CAACA,IAAIA,EAAEA,cAAWA,CAACA,4GAA4GA,CAACA,CAACA;YACvJA,CAACA;QACLA,CAACA;QAEDxgB,6BAA6BA,IAAiBA;YAC1CygB,EAAEA,CAACA,CAACA,IAAIA,CAACA,IAAIA,KAAKA,GAAqBA,CAACA,CAACA,CAACA;gBACtCA,MAAMA,CAAcA,IAAKA,CAACA,UAAUA,CAACA;YACzCA,CAACA;YACDA,EAAEA,CAACA,CAACA,IAAIA,CAACA,IAAIA,KAA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A,aAAaA,CAACA,sBAAsBA,CAACA,GAAGA,CAACA,CAACA,IAAIA,CAACA;gBACnGA,IAAIA,OAAOA,GAAGA,gCAA6BA,CAACA,IAAIA,EAAEA,aAAaA,CAACA,sBAAsBA,CAACA,GAAGA,CAACA,CAACA,IAAIA,CAACA;gBACjGA,EAAEA,CAACA,CAACA,SAASA,KAAKA,OAAOA,CAACA,CAACA,CAACA;oBACxBA,MAAMA,CAACA,kBAAkBA,CAACA,aAAaA,CAACA,sBAAsBA,EAAEA,cAAWA,CAACA,0CAA0CA,CAACA,CAACA;gBAC5HA,CAACA;YACLA,CAACA;YACDA,MAAMA,CAACA,KAAKA,CAACA;QACjBA,CAACA;QAEDlkB,8CAA8CA,IAA0BA;YACpEmkB,IAAIA,SAASA,GAAGA,IAAIA,CAACA,UAAUA,CAACA,CAACA,CAACA,CAACA;YACnCA,EAAEA,CAACA,CAACA,IAAIA,CAACA,UAAUA,CAACA,MAAMA,KAAKA,CAACA,CAACA,CAACA,CAACA;gBAC/BA,EAAEA,CAACA,CAACA,SAASA,CAACA,CAACA,CAACA;oBACZA,MAAMA,CAACA,kBAAkBA,CAACA,SAASA,CAACA,IAAIA,EAAEA,cAAWA,CAACA,kDAAkDA,CAACA,CAACA;gBAC9GA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,MAAMA,CAACA,kBAAkBA,CAACA,IAAIA,EAAEA,cAAWA,CAACA,kDAAkDA,CAACA,CAACA;gBACpGA,CAACA;YACLA,CAACA;YACDA,EAAEA,CAACA,CAACA,SAASA,CAACA,cAAcA,CAACA,CAACA,CAACA;gBAC3BA,MAAMA,CAACA,kBAAkBA,CAACA,SAASA,CAACA,cAAcA,EAAEA,cAAWA,CAACA,+CAA+CA,CAACA,CAACA;YACrHA,CAACA;YACDA,EAAEA,CAACA,CAACA,SAASA,CAACA,KAAKA,GAAGA,GAAkBA,CAACA,CAACA,CAACA;gBACvCA,MAAMA,CAACA,kBAAkBA,CAACA,SAASA,CAACA,IAAIA,EAAEA,cAAWA,CAACA,kEAAkEA,CAACA,CAACA;YAC9HA,CAACA;YACDA,EAAEA,CAACA,CAACA,SAASA,CAACA,aAAaA,CAACA,CAACA,CAACA;gBAC1BA,MAAMA,CAACA,kBAAkBA,CAACA,SAASA,CAACA,aAAaA,EAAEA,cAAWA,CAACA,wDAAwDA,CAACA,CAACA;YAC7HA,CAACA;YACDA,EAAEA,CAACA,CAACA,SAASA,CAACA,WAAWA,CAACA,CAACA,CAACA;gBACxBA,MAAMA,CAACA,kBAAkBA,CAACA,SAASA,CAACA,IAAIA,EAAEA,cAAWA,CAACA,uDAAuDA,CAACA,CAACA;YACnHA,CAACA;YACDA,EAAEA,CAACA,CAACA,CAACA,SAASA,CAACA,IAAIA,CAACA,CAACA,CAACA;gBAClBA,MAAMA,CAACA,kBAAkBA,CAACA,SAASA,CAACA,IAAIA,EAAEA,cAAWA,CAACA,wDAAwDA,CAACA,CAACA;YACpHA,CAACA;YACDA,EAAEA,CAACA,CAACA,SAASA,CAACA,IAAIA,CAACA,IAAIA,KAAKA,GAAwBA,IAAIA,SAASA,CAACA,IAAIA,CAACA,IAAIA,KAAKA,GAAwBA,CAACA,CAACA,CAACA;gBACvGA,MAAMA,CAACA,kBAAkBA,CAACA,SAASA,CAACA,IAAIA,EAAEA,cAAWA,CAACA,0DAA0DA,CAACA,CAACA;YACtHA,CAACA;YACDA,EAAEA,CAACA,CAACA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA,CAACA;gBACbA,MAAMA,CAACA,kBAAkBA,CAACA,IAAIA,EAAEA,cAAWA,CAACA,8CAA8CA,CAACA,CAACA;YAChGA,CAACA;QACLA,CAACA;QAEDnkB,+CAA+CA,IAA0BA;YACrEokB,EAAEA,CAACA,CAACA,IAAIA,CAACA,KAAKA,GAAGA,GAAkBA,CAACA,CAACA,CAACA;gBAClCA,wBAAwBA,CAACA,IAAIA,EAAEA,cAAWA,CAACA,kDAAkDA,CAACA,CAACA;YACnGA,CAACA;QACLA,CAACA;QAEDpkB,oCAAoCA,IAA0BA;YAE1DqkB,MAAMA,CAACA,sBAAsBA,CAACA,IAAIA,CAACA,IAAIA,qBAAqBA,CAACA,IAAIA,CAACA,IAAIA,oCAAoCA,CAACA,IA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EAAEA,GAAGA,CAACA,MAAMA,EAAEA,cAAWA,CAACA,WAAWA,EAAEA,GAAGA,CAACA,CAACA;YACxHA,CAACA;YACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,QAAQA,CAACA,cAAcA,CAACA,CAACA,CAACA;gBAC/BA,MAAMA,CAACA,kBAAkBA,CAACA,QAAQA,CAACA,IAAIA,EAAEA,cAAWA,CAACA,uCAAuCA,CAACA,CAACA;YAClGA,CAACA;YACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,IAAIA,KAAKA,GAAsBA,IAAIA,QAAQA,CAACA,UAAUA,CAACA,MAAMA,CAACA,CAACA,CAACA;gBACrEA,MAAMA,CAACA,kBAAkBA,CAACA,QAAQA,CAACA,IAAIA,EAAEA,cAAWA,CAACA,qCAAqCA,CAACA,CAACA;YAChGA,CAACA;YACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,IAAIA,KAAKA,GAAsBA,CAACA,CAACA,CAACA;gBACvCA,EAAEA,CAACA,CAACA,QAAQA,CAACA,IAAIA,CAACA,CAACA,CAACA;oBAChBA,MAAMA,CAACA,kBAAkBA,CAACA,QAAQA,CAACA,IAAIA,EAAEA,cAAWA,CAACA,mDAAmDA,CAACA,CAACA;gBAC9GA,CAACA;gBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,QAAQA,CAACA,UAAUA,CAACA,MAAMA,KAAKA,CAACA,CAACA,CAACA,CAACA;oBACxCA,MAAMA,CAACA,kBAAkBA,CAACA,QAAQA,CAACA,IAAIA,EAAEA,cAAWA,CAACA,8CAA8CA,CAACA,CAACA;gBACzGA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,IAAIA,SAASA,GAAGA,QAAQA,CAACA,UAAUA,CAACA,CAACA,CAACA,CAACA;oBACvCA,EAAEA,CAACA,CAACA,SAASA,CAACA,cAAcA,CAACA,CAACA,CAACA;wBAC3BA,MAAMA,CAACA,kBAAkBA,CAACA,SAASA,CAACA,cAAcA,EAAEA,cAAWA,CAACA,yCAAyCA,CAACA,CAACA;oBAC/GA,CAACA;oBACDA,IAAIA,CAACA,EAAEA,CAACA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ACA,mCAAmCA,GAAGA,wCAAwCA,CAACA;4BACrGA,wCAAwCA,GAAGA,SAASA,CAACA;wBACzDA,CAACA;wBACDA,qBAAqBA,CAACA,kBAAkBA,GAAGA,MAAMA,CAACA,OAAOA,EAAEA,CAACA;oBAChEA,CAACA;gBACLA,CAACA;YACLA,CAACA,CAACA,CAACA;YACHA,SAASA,CAACA,SAASA,CAACA,CAACA;QACzBA,CAACA;QAEDL,wCAAwCA,wBAAkDA;YACtFM,EAAEA,CAACA,CAACA,wBAAwBA,CAACA,aAAaA,KAAKA,CAA8BA,CAACA,CAACA,CAACA;gBAE5EA,EAAEA,CAACA,CAACA,wBAAwBA,IAAIA,wBAAwBA,CAACA,oBAAoBA,CAACA,CAACA,CAACA;oBAC5EA,+BAA+BA,CAACA,wBAAwBA,CAACA,oBAAoBA,CAACA,CAACA;gBACnFA,CAACA;YACLA,CAACA;YACDA,IAAIA,CAACA,CAACA;gBAEFA,wBAAwBA,GAAGA,IAAIA,CAACA;gBAChCA,IAAIA,SAASA,GAAGA,MAAMA,CAACA,gCAAgCA,CAACA,wBAAwBA,CAACA,CAACA;gBAClFA,EAAEA,CAACA,CAACA,SAASA,CAACA,CAACA,CAACA;oBACZA,EAAEA,CAACA,CAACA,SAASA,CAACA,QAAQA,CAACA,CAACA,CAACA;wBACrBA,WAAWA,CAACA,IAAIA,CAACA,0BAAuBA,CAACA,wBAAwBA,CAACA,SAASA,IAAIA,SAASA,CAACA,SAASA,EAC9FA,SAASA,CAACA,iBAAiBA,EAC3BA,oCAAiCA,CAACA,iBAAiBA,EAAEA,SAASA,CAACA,QAAQA,CAACA,EACxEA,wBAAwBA,CAACA,eAAeA,EACxCA,wBAAwBA,CAACA,eAAeA,CAACA,CAACA,CAACA;oBACnDA,CAACA;oBACDA,IAAIA,CAACA,CAACA;wBACFA,WAAWA,CAACA,IAAIA,CAACA,0BAAuBA,CAACA,wBAAwBA,CAACA,SAASA,IAAIA,SAASA,CAACA,SAASA,EAC9FA,SAASA,CAACA,iBAAiBA,EAC3BA,wBAAwBA,CAACA,eAAeA,EACxCA,wBAAwBA,CAACA,eAAe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,EAAEA,CAACA,CAACA,IAAIA,CAACA,KAAKA,GAAGA,EAAmBA,CAACA,CAACA,CAACA;gBACxCA,KAAKA,CAACA,YAAYA,CAACA,CAACA;YACxBA,CAACA;YAEDA,EAAEA,CAACA,CAACA,IAAIA,CAACA,KAAKA,GAAGA,GAAgBA,CAACA,CAACA,CAACA;gBAChCA,KAAKA,CAACA,SAASA,CAACA,CAACA;YACrBA,CAACA;QACLA,CAACA;QAEDhC,sCAAsCA,IAA6BA;YAG/DiC,iBAAiBA,CAACA,IAAIA,CAACA,CAACA;YACxBA,EAAEA,CAACA,CAACA,IAAIA,CAACA,KAAKA,GAAGA,CAAgBA,CAACA,CAACA,CAACA;gBAChCA,KAAKA,CAACA,SAASA,CAACA,CAACA;YACrBA,CAACA;YACDA,KAAKA,CAACA,SAASA,CAACA,CAACA;YACjBA,eAAeA,CAACA,iBAAiBA,EAAEA,IAAIA,CAACA,IAAIA,CAACA,CAACA;YAC9CA,KAAKA,CAACA,KAAKA,CAACA,CAACA;YACbA,EAAEA,CAACA,CAACA,0CAAuCA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;gBAChDA,+CAA+CA,CAAaA,IAAIA,CAACA,eAAeA,EAAEA,kCAAkCA,CAACA,CAACA;gBACtHA,KAAKA,CAACA,GAAGA,CAACA,CAACA;YACfA,CAACA;YACDA,IAAIA,CAACA,CAACA;gBACFA,KAAKA,CAACA,UAAUA,CAACA,CAACA;gBAClBA,eAAeA,CAACA,iBAAiBA,EAAEA,qDAAkDA,CAACA,IAAIA,CAACA,CAACA,CAACA;gBAC7FA,KAAKA,CAACA,IAAIA,CAACA,CAACA;YAChBA,CAACA;YACDA,MAAMA,CAACA,SAASA,EAAEA,CAACA;YAEnBA,4CAA4CA,wBAAkDA;gBAC1FC,MAAMA,CAACA;oBACHA,iBAAiBA,EAAEA,cAAWA,CAACA,4CAA4CA;oBAC3EA,SAASA,EAAEA,IAAIA;oBACfA,QAAQA,EAAEA,IAAIA,CAACA,IAAIA;iBACtBA,CAACA;YACNA,CAACA;QACLD,CAACA;QAEDjC,+BAA+BA,aAA6CA;YACxEmC,EAA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cAAcA,EAAWA,SAASA,EAAEA,oCAAoCA,CAACA,CAACA;oBACrGA,CAACA;gBACLA,CAACA;YACLA,CAACA;QACLJ,CAACA;QAEDxD,sDAAsDA,IAA6BA;YAI/E8D,EAAEA,CAACA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA,CAACA;gBACZA,KAAKA,CAACA,IAAIA,CAACA,CAACA;gBACZA,QAAQA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA;YACxBA,CAACA;QACLA,CAACA;QAED9D,oCAAoCA,IAAuBA;YACvD+D,MAAMA,CAACA,UAAOA,CAACA,IAAIA,CAACA,eAAeA,CAACA,YAAYA,EAAEA,UAAAA,cAAcA,IAAIA,OAAAA,QAAQA,CAACA,oBAAoBA,CAACA,cAAcA,CAACA,EAA7CA,CAA6CA,CAACA,CAACA;QACvHA,CAACA;QAED/D,gCAAgCA,IAAuBA;YACnDgE,iBAAiBA,CAACA,IAAIA,CAACA,CAACA;YACxBA,iCAAiCA,CAACA,IAAIA,CAACA,CAACA;YACxCA,EAAEA,CAACA,CAACA,QAAKA,CAACA,IAAIA,CAACA,eAAeA,CAACA,CAACA,CAACA,CAACA;gBAC9BA,KAAKA,CAACA,MAAMA,CAACA,CAACA;YAClBA,CAACA;YACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,UAAOA,CAACA,IAAIA,CAACA,eAAeA,CAACA,CAACA,CAACA,CAACA;gBACrCA,KAAKA,CAACA,QAAQA,CAACA,CAACA;YACpBA,CAACA;YACDA,IAAIA,CAACA,CAACA;gBACFA,KAAKA,CAACA,MAAMA,CAACA,CAACA;YAClBA,CAACA;YACDA,aAAaA,CAACA,IAAIA,CAACA,eAAeA,CAACA,YAAYA,EAAEA,uBAAuBA,EAAEA,QAAQA,CAACA,oBAAoBA,CAACA,CAACA;YACzGA,KAAKA,CAACA,GAAGA,CAACA,CAACA;YACXA,SAASA,EAAEA,CAACA;QAChBA,CAACA;QAEDhE,iCAAiCA,IAAyBA;YACtDiE,EAAEA,CAACA,CAACA,iBAAcA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;gBACvBA,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AACA;oBAChBA,EAAEA,CAACA,CAACA,OAAOA,CAACA,CAACA,CAACA;wBACVA,SAASA,EAAEA,CAACA;oBAChBA,CAACA;oBACDA,IAAIA,CAACA,CAACA;wBACFA,KAAKA,CAACA,GAAGA,CAACA,CAACA;oBACfA,CAACA;oBACDA,KAAKA,CAACA,MAAMA,CAACA,CAACA;oBACdA,aAAaA,CAACA,aAAaA,CAACA,CAACA;oBAC7BA,KAAKA,CAACA,GAAGA,CAACA,CAACA;gBACfA,CAACA;YACLA,CAACA;YAEDtC,uBAAuBA,SAAqBA,EAAEA,QAAgBA,EAAEA,MAAmBA;gBAC/EuC,IAAIA,WAAWA,GAAGA,gBAAaA,CAACA,SAASA,CAACA,CAACA;gBAC3CA,EAAEA,CAACA,CAACA,MAAMA,CAACA,CAACA,CAACA;oBACTA,MAAMA,EAAEA,CAACA;gBACbA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,KAAKA,CAACA,WAAWA,CAACA,CAACA;gBACvBA,CAACA;gBACDA,MAAMA,CAACA,QAAQA,GAAGA,WAAWA,CAACA,MAAMA,CAACA;YACzCA,CAACA;YAEDvC,sBAAsBA,MAAcA,EAAEA,IAAUA;gBAC5CwC,EAAEA,CAACA,CAACA,IAAIA,CAACA,CAACA,CAACA;oBACPA,KAAKA,CAACA,MAAMA,CAACA,CAACA;oBACdA,IAAIA,CAACA,IAAIA,CAACA,CAACA;gBACfA,CAACA;YACLA,CAACA;YAEDxC,6BAA6BA,IAAUA,EAAEA,aAAsBA;gBAC3DyC,EAAEA,CAACA,CAACA,aAAaA,CAACA,CAACA,CAACA;oBAChBA,KAAKA,CAACA,GAAGA,CAACA,CAACA;gBACfA,CAACA;gBACDA,IAAIA,CAACA,IAAIA,CAACA,CAACA;gBACXA,EAAEA,CAACA,CAACA,aAAaA,CAACA,CAACA,CAACA;oBAChBA,KAAKA,CAACA,GAAGA,CAACA,CAACA;gBACfA,CAACA;YACLA,CAACA;YAEDzC,oCAAoCA,QAAyBA;gBACzD0C,EAAEA,CAACA,CAACA,QAAQA,CAACA,gBAAgBA,CAACA,CAACA,CAACA;oBAC5BA,KAAKA,CAACA,GAAGA,CAACA,CAACA;gBACfA,CAACA;YACLA,CAACA;YAED1C,gCAAgCA,MAAYA,EAAEA,KAAsBA,EAAEA,kBAA2BA,EAAEA,mBAA4BA;gBAC3H2C,QAAKA,CAACA,MAAMA,CAACA,KAAKA,CAACA,MAAMA,GAAGA,CAACA,CAACA,CAACA;gBAE/BA,cAAcA,EAAEA,CAACA;gBAEjBA,EAAEA,CAACA,CAACA,gBAAgBA,IAAIA,+BAA+BA,CAACA,MAAMA,EAAEA,KAAKA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA;oBACxEA,EAAEA,CAACA,CAACA,mBAAmBA,CAACA,CAACA,CAACA;wBACtBA,KAAKA,CAACA,GAAGA,CAACA,CAACA;oBACfA,CAACA;gBACLA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,SAASA,EAAEA,CAACA;gBAChBA,CAACA;gBAEDA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,KAAKA,CAACA,MAAMA,EAAEA,CAACA,GAAGA,CAACA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;oBAC3CA,EAAEA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA;wBACJA,EAAEA,CAACA,CAACA,gBAAgBA,IAAIA,8BAA8BA,CAACA,KAAKA,CAACA,CAACA,GAAGA,CAACA,CAACA,EAAEA,KAAKA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA;4BAC7EA,KAAKA,CAACA,IAAIA,CAACA,CAACA;wBAChBA,CAACA;wBACDA,IAAIA,CAACA,CAACA;4BACFA,KAAKA,CAACA,GAAGA,CAACA,CAACA;4BACXA,SAASA,EAAEA,CAACA;wBAChBA,CAACA;oBACLA,CAACA;oBAEDA,IAAIA,CAACA,KAAKA,CAACA,CAACA,CAACA,CAACA,CAACA;gBACnBA,CAACA;gBAEDA,EAAEA,CAACA,CAACA,KAAKA,CAACA,gBAAgBA,IAAIA,kBAAkBA,CAACA,CAACA,CAACA;oBAC/CA,KAAKA,CAACA,GAAGA,CAACA,CAACA;gBACfA,CAACA;gBAEDA,cAAcA,EAAEA,CAACA;gBAEjBA,EAAEA,CAACA,CAACA,gBAAgBA,IAAIA,6BAA6BA,CAACA,MAAMA,EAAEA,kBAAeA,CAACA,KAAKA,CAACA,CAACA,CAACA,CAACA,CAACA;oBACpFA,EAAEA,CAACA,CAACA,mBAAmBA,CAACA,CAACA,CAACA;wBACtBA,KAAKA,CAACA,GAAGA,CAACA,CAACA;oBACfA,CAACA;gBACLA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,SAASA,EAAEA,CAACA;gBAChBA,CAACA;YACLA,CAACA;YAED3C,kBAAkBA,KAAaA,EAAEA,KAAaA,EAAEA,KAAaA,EAAEA,SAAkBA,EAAEA,aAAsBA;gBACrG4C,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,KAAKA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;oBAC7BA,EAAEA,CAACA,CAACA,SAASA,CAACA,CAACA,CAACA;wBACZA,EAAEA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA;4BACJA,KAAKA,CAACA,GAAGA,CAACA,CAACA;wBACfA,CAACA;wBACDA,SAASA,EAAEA,CAACA;oBAChBA,CAACA;oBACDA,IAAIA,CAACA,CAACA;wBACFA,EAAEA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA;4BACJA,KAAKA,CAACA,IAAIA,CAACA,CAACA;wBAChBA,CAACA;oBACLA,CAACA;oBACDA,IAAIA,CAACA,KAAKA,CAACA,KAAKA,GAAGA,CAACA,CAACA,CAACA,CAACA;gBAC3BA,CAACA;gBACDA,EAAEA,CAACA,CAACA,aAAaA,CAACA,CAACA,CAACA;oBAChBA,KAAKA,CAACA,GAAGA,CAACA,CAACA;gBACfA,CAACA;gBACDA,EAAEA,CAACA,CAACA,SAASA,CAACA,CAACA,CAACA;oBACZA,SAASA,EAAEA,CAACA;gBAChBA,CAACA;YACLA,CAACA;YAED5C,uBAAuBA,KAAaA;gBAChC6C,EAAEA,CAACA,CAACA,KAAKA,CAACA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,EAAEA,IAAIA,CAACA,CAACA;gBAC7CA,CAACA;YACLA,CAACA;YAED9D,uCAAuCA,IAAgBA;gBACnD+D,EAAEA,CAACA,CAACA,oBAAiBA,CAACA,IAAIA,CAACA,IAAIA,CAACA,kCAAkCA,CAACA,CAACA,CAACA;oBACjEA,MAAMA,CAACA,SAASA,CAACA;gBACrBA,CAACA;gBAEDA,IAAIA,UAAUA,GAAGA,QAAQA,CAACA,wBAAwBA,CAACA,IAAIA,CAACA,CAAAA;gBACxDA,EAAEA,CAACA,CAACA,UAAUA,KAAKA,SAASA,CAACA,CAACA,CAACA;oBAC3BA,MAAMA,CAACA,SAASA,CAACA;gBACrBA,CAACA;gBAEDA,MAAMA,CAACA,kCAAkCA,CAACA,UAAUA,CAACA,CAACA;YAC1DA,CAACA;YAED/D,wBAAwBA,IAAgBA,EAAEA,yBAAkCA;gBACxEgE,EAAEA,CAACA,CAACA,yBAAyBA,CAACA,CAACA,CAACA;oBAC5BA,IAAIA,aAAaA,GAAGA,6BAA6BA,CAACA,IAAIA,CAACA,CAACA;oBACxDA,EAAEA,CAACA,CAACA,aAAaA,CAACA,CAACA,CAACA;wBAChBA,KAAKA,CAACA,aAAaA,CAACA,CAACA;wBACrBA,MAAMA,CAACA;oBACXA,CAACA;gBACLA,CAACA;gBACDA,EAAEA,CAACA,CAACA,CAACA,IAAIA,CAACA,MAAMA,CAACA,CAACA,CAACA;oBACfA,KAAKA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA;gBACrBA,CAACA;gBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,CAACA,yBAAyBA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;oBACxCA,wBAAwBA,CAACA,IAAIA,CAACA,CAACA;gBACnCA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,eAAeA,CAACA,iBAAiBA,EAAEA,IAAIA,CAACA,CAACA;gBAC7CA,CAACA;YACLA,CAACA;YAEDhE,kBAAkBA,IAAUA;gBACxBiE,EAAEA,CAACA,CAACA,QAAQA,CAACA,iBAAiBA,CAACA,IAAIA,CAACA,GAAGA,CAA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AC7BA,OAAOA,GAAGA,GAAGA,MAAMA,EAAEA,CAACA;oBAElBA,EAAEA,CAACA,CAACA,KAAKA,KAAKA,CAACA,CAACA,CAACA,CAACA;wBACdA,KAAKA,CAACA,UAAUA,CAACA,CAACA;oBACtBA,CAACA;oBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,KAAKA,GAAGA,CAACA,CAACA,CAACA,CAACA;wBACjBA,KAAKA,CAACA,IAAIA,CAACA,CAACA;oBAChBA,CAACA;oBACDA,IAAIA,CAACA,GAAGA,QAAQA,CAACA,GAAGA,CAACA,CAACA;oBACtBA,EAAEA,CAACA,CAACA,CAACA,CAACA,IAAIA,KAAKA,GAAkCA,CAACA,CAACA,CAACA;wBAChDA,CAACA,GAA6BA,CAAEA,CAACA,UAAUA,CAACA;wBAC5CA,mBAAmBA,CAACA,CAACA,EAAoBA,KAAKA,KAAKA,CAACA,IAAIA,6CAA6CA,CAACA,CAACA,CAACA,CAACA,CAACA;wBAC1GA,GAAGA,EAAEA,CAACA;oBACVA,CAACA;oBACDA,IAAIA,CAACA,CAACA;wBACFA,IAAIA,CAACA,GAAGA,GAAGA,CAACA;wBACZA,OAAOA,CAACA,GAAGA,MAAMA,IAAIA,QAAQA,CAACA,CAACA,CAACA,CAACA,IAAIA,KAAKA,GAAkCA,EAAEA,CAACA;4BAC3EA,CAACA,EAAEA,CAACA;wBACRA,CAACA;wBACDA,KAAKA,CAACA,GAAGA,CAACA,CAACA;wBACXA,EAAEA,CAACA,CAACA,SAASA,CAACA,CAACA,CAACA;4BACZA,cAAcA,EAAEA,CAACA;wBACrBA,CAACA;wBACDA,QAAQA,CAACA,QAAQA,EAAEA,GAAGA,EAAEA,CAACA,GAAGA,GAAGA,EAAEA,SAASA,EAAEA,aAAaA,IAAIA,CAACA,KAAKA,MAAMA,CAACA,CAACA;wBAC3EA,EAAEA,CAACA,CAACA,SAASA,CAACA,CAACA,CAACA;4BACZA,cAAcA,EAAEA,CAACA;wBACrBA,CAACA;wBACDA,KAAKA,CAACA,GAAGA,CAACA,CAACA;wBACXA,GAAGA,GAAGA,CAACA,CAACA;oBACZA,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AeA,CAACA,IAAIA,CAACA,UAAUA,CAACA,CAACA;gBAC5CA,EAAEA,CAACA,CAACA,IAAIA,CAACA,IAAIA,KAAKA,GAAmCA,CAACA,CAACA,CAACA;oBAEpDA,MAAMA,GAAGA,cAAcA,CAA4BA,IAAKA,CAACA,UAAUA,CAACA,CAACA;oBACrEA,KAAKA,CAACA,GAAGA,CAACA,CAACA;oBACXA,IAAIA,CAA4BA,IAAKA,CAACA,IAAIA,CAACA,CAACA;gBAChDA,CAACA;gBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,IAAIA,CAACA,IAAIA,KAAKA,GAAkCA,CAACA,CAACA,CAACA;oBAExDA,MAAMA,GAAGA,cAAcA,CAA4BA,IAAKA,CAACA,UAAUA,CAACA,CAACA;oBACrEA,KAAKA,CAACA,GAAGA,CAACA,CAACA;oBACXA,IAAIA,CAA2BA,IAAKA,CAACA,kBAAkBA,CAACA,CAACA;oBACzDA,KAAKA,CAACA,GAAGA,CAACA,CAACA;gBACfA,CAACA;gBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,IAAIA,CAACA,IAAIA,KAAKA,EAAuBA,CAACA,CAACA,CAACA;oBAC7CA,MAAMA,GAAGA,IAAIA,CAACA;oBACdA,KAAKA,CAACA,QAAQA,CAACA,CAACA;gBACpBA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,IAAIA,CAACA,IAAIA,CAACA,UAAUA,CAACA,CAACA;gBAC1BA,CAACA;gBACDA,KAAKA,CAACA,SAASA,CAACA,CAACA;gBACjBA,EAAEA,CAACA,CAACA,MAAMA,CAACA,CAACA,CAACA;oBACTA,EAAEA,CAACA,CAACA,MAAMA,CAACA,IAAIA,KAAKA,EAAuBA,CAACA,CAACA,CAACA;wBAE1CA,QAAQA,CAACA,MAAMA,CAACA,CAACA;oBACrBA,CAACA;oBACDA,IAAIA,CAACA,CAACA;wBAEFA,IAAIA,CAACA,MAAMA,CAACA,CAACA;oBACjBA,CAACA;gBACLA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBAEFA,KAAKA,CAACA,QAAQA,CAACA,CAACA;gBACpBA,CAACA;gBACDA,KAAKA,CAACA,IAAIA,CAACA,CAACA;gBACZA,kBAAkBA,CAACA,IAAIA,CAACA,SAASA,EAAgBA,KAAKA,EAAoBA,KAAKA,CAACA,CAACA;gBACjFA,KAAKA,CAACA,GAAGA,CAACA,CAACA;YACfA,CAACA;YAEDxG,4BAA4BA,IAAoBA;gBAC5CyG,EAAEA,CAACA,CAACA,eAAeA,GAAGA,CAAgBA,IAAIA,gBAAgBA,CAACA,IAAIA,CAACA,SAASA,CAACA,CAACA,CAACA,CAACA;oBACzEA,kBAAkBA,CAACA,IAAIA,CAACA,CAACA;oBACzBA,MAAMA,CAACA;gBACXA,CAACA;gBACDA,IAAIA,SAASA,GAAGA,KAAKA,CAACA;gBACtBA,EAAEA,CAACA,CAACA,IAAIA,CAACA,UAAUA,CAACA,IAAIA,KAAKA,EAAuBA,CAACA,CAACA,CAACA;oBACnDA,SAASA,CAACA,IAAIA,CAACA,UAAUA,CAACA,CAACA;oBAC3BA,SAASA,GAAGA,IAAIA,CAACA;gBACrBA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,IAAIA,CAACA,IAAIA,CAACA,UAAUA,CAACA,CAACA;oBACtBA,SAASA,GAAGA,IAAIA,CAACA,UAAUA,CAACA,IAAIA,KAAKA,GAAmCA,IAA+BA,IAAIA,CAACA,UAAWA,CAACA,UAAUA,CAACA,IAAIA,KAAKA,EAAuBA,CAACA;gBACxKA,CAACA;gBACDA,EAAEA,CAACA,CAACA,SAASA,IAAIA,eAAeA,GAAGA,CAAgBA,CAACA,CAACA,CAACA;oBAClDA,KAAKA,CAACA,QAAQA,CAACA,CAACA;oBAChBA,QAAQA,CAACA,IAAIA,CAACA,UAAUA,CAACA,CAACA;oBAC1BA,EAAEA,CAACA,CAACA,IAAIA,CAACA,SAASA,CAACA,MAAMA,CAACA,CAACA,CAACA;wBACxBA,KAAKA,CAACA,IAAIA,CAACA,CAACA;wBACZA,aAAaA,CAACA,IAAIA,CAACA,SAASA,CAACA,CAACA;oBAClCA,CAACA;oBACDA,KAAKA,CAACA,GAAGA,CAACA,CAACA;gBACfA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,KAAKA,CAACA,GAAGA,CAACA,CAACA;oBACXA,aAAaA,CAACA,IAAIA,CAACA,SAASA,CAACA,CAACA;oBAC9BA,KAAKA,CAACA,GAAGA,CAACA,CAACA;gBACfA,CAACA;YACLA,CAACA;YAEDzG,2BAA2BA,IAAmBA;gBAC1C0G,KAAKA,CAACA,MAAMA,CAACA,CAACA;gBACdA,IAAIA,CAACA,IAAIA,CAACA,UAAUA,CAACA,CAACA;gBACtBA,EAAEA,CAACA,CAACA,IAAIA,CAACA,SAASA,CAACA,CAACA,CAACA;oBACjBA,KAAKA,CAACA,GAAGA,CAACA,CAACA;oBACXA,aAAaA,CAACA,IAAIA,CAACA,SAASA,CAACA,CAACA;oBAC9BA,KAAKA,CAACA,GAAGA,CAACA,CAACA;gBACfA,CAACA;YACLA,CAACA;YAED1G,sCAAsCA,IAA8BA;gBAChE2G,EAAEA,CAACA,CAACA,eAAeA,IAAIA,CAAgBA,CAACA,CAACA,CAACA;oBACtCA,IAAIA,CAACA,IAAIA,CAACA,GAAGA,CAACA,CAACA;oBACfA,KAAKA,CAACA,GAAGA,CAACA,CAACA;oBACXA,IAAIA,CAACA,IAAIA,CAACA,QAAQA,CAACA,CAACA;gBACxBA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,2BAA2BA,CAACA,IAAIA,CAACA,CAACA;gBACtCA,CAACA;YACLA,CAACA;YAED3G,6BAA6BA,IAA6BA;gBACtD4G,EAAEA,CAACA,CAACA,CAACA,IAAIA,CAACA,MAAMA,IAAIA,IAAIA,CAACA,MAAMA,CAACA,IAAIA,KAAKA,GAAwBA,CAACA,CAACA,CAACA;oBAChEA,EAAEA,CAACA,CAACA,IAAIA,CAACA,UAAUA,CAACA,IAAIA,KAAKA,GAAkCA,CAACA,CAACA,CAACA;wBAC9DA,IAAIA,OAAOA,GAAmBA,IAAIA,CAACA,UAAWA,CAACA,UAAUA,CAACA;wBAI1DA,OAAOA,OAAOA,CAACA,IAAIA,IAAIA,GAAkCA,EAAEA,CAACA;4BACxDA,OAAOA,GAAmBA,OAAQA,CAACA,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GAAGA,CAACA,CAACA;gBACfA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,SAASA,EAAEA,CAACA;gBAChBA,CAACA;gBACDA,KAAKA,CAACA,SAASA,CAACA,CAACA;gBACjBA,IAAIA,CAACA,IAAIA,CAACA,UAAUA,CAACA,CAACA;gBACtBA,KAAKA,CAACA,IAAIA,CAACA,CAACA;YAChBA,CAACA;YAED3H,4BAA4BA,IAAoBA;gBAC5C4H,KAAKA,CAACA,SAASA,CAACA,CAACA;gBACjBA,IAAIA,CAACA,IAAIA,CAACA,UAAUA,CAACA,CAACA;gBACtBA,KAAKA,CAACA,GAAGA,CAACA,CAACA;gBACXA,qBAAqBA,CAACA,IAAIA,CAACA,SAASA,CAACA,CAACA;YAC1CA,CAACA;YAED5H,4CAA4CA,IAAUA,EAAEA,QAAiBA;gBACrE6H,IAAIA,SAASA,GAAGA,EAAqBA,CAACA;gBACtCA,EAAEA,CAACA,CAACA,IAAIA,IAAIA,eAAeA,IAAIA,CAAgBA,CAACA,CAACA,CAACA;oBAC9CA,EAAEA,CAACA,CAACA,QAAKA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;wBACdA,SAASA,GAAGA,GAAqBA,CAACA;oBACtCA,CAACA;oBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,UAAOA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;wBACrBA,SAASA,GAAGA,EAAuBA,CAACA;oBACxCA,CAACA;gBACLA,CAACA;gBAEDA,EAAEA,CAACA,CAACA,QAAQA,KAAKA,SAASA,CAACA,CAACA,CAACA;oBACzBA,SAASA,CAACA,SAASA,EAAEA,QAAQA,CAACA,CAACA;gBACnCA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,MAAMA,CAACA,CAACA,SAASA,CAACA,CAACA,CAACA;wBAChBA,KAAKA,EAAqBA;4BACtBA,MAAMA,CAACA,KAAKA,CAACA,MAAMA,CAACA,CAACA;wBACzBA,KAAKA,GAAqBA;4BACtBA,MAAMA,CAACA,KAAKA,CAACA,MAAMA,CAACA,CAACA;wBACzBA,KAAKA,EAAuBA;4BACxBA,MAAMA,CAACA,KAAKA,CAACA,QAAQA,CAACA,CAACA;oBAC/BA,CAACA;gBACLA,CAACA;YACLA,CAACA;YAED7H,0BAA0BA,IAAkBA;gBACxC8H,IAAIA,MAAMA,GAAGA,SAASA,CAACA,EAAqBA,EAAEA,IAAIA,CAACA,GAAGA,CAACA,CAACA;gBACxDA,KAAKA,CAACA,GAAGA,CAACA,CAACA;gBACXA,MAAMA,GAAGA,SAASA,CAACA,EAAyBA,EAAEA,MAAMA,CAACA,CAACA;gBACtDA,EAAEA,CAACA,CAACA,IAAIA,CAACA,WAAWA,IAAIA,IAAIA,CAACA,WAAWA,CAACA,IAAIA,KAAKA,GAAkCA,CAACA,CAACA,CAACA;oBACnFA,IAAIA,uBAAuBA,GAA4BA,IAAIA,CAACA,WAAWA,CAACA;oBACxEA,IAAIA,YAAYA,GAAGA,uBAAuBA,CAACA,YAAYA,CAACA;oBACxDA,kCAAkCA,CAACA,YAAYA,CAACA,CAACA,CAACA,EAAEA,MAAMA,CAACA,CAACA;oBAC5DA,KAAKA,CAACA,GAAGA,CAACA,CAACA;oBACXA,aAAaA,CAACA,YAAYA,CAACA,CAACA;gBAChCA,CAACA;gBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,IAAIA,CAACA,WAAWA,CAACA,CAACA,CAACA;oBACxBA,IAAIA,CAACA,IAAIA,CAACA,WAAWA,CAACA,CAACA;gBAC3BA,CAACA;gBACDA,KAAKA,CAACA,GAAGA,CAACA,CAACA;gBACXA,YAAYA,CAACA,GAAGA,EAAEA,IAAIA,CAACA,SAASA,CAACA,CAACA;gBAClCA,KAAKA,CAACA,GAAGA,CAACA,CAACA;gBACXA,YAAYA,CAACA,GAAGA,EAAEA,IAAIA,CAACA,QAAQA,CAACA,CAACA;gBACjCA,KAAKA,CAACA,GAAGA,CAACA,CAACA;gBACXA,qBAAqBA,CAACA,IAAIA,CAACA,SAASA,CAACA,CAACA;YAC1CA,CAACA;YAED9H,mCAAmCA,IAAqCA;gBACpE+H,EAAEA,CAACA,CAACA,eAAeA,GAAGA,CAAgBA,IAAIA,IAAIA,CAACA,IAAIA,KAAKA,GAAyBA,CAACA,CAACA,CAACA;oBAChFA,MAAMA,CAACA,2BAA2BA,CAACA,IAAIA,CAACA,CAACA;gBAC7CA,CAACA;gBAEDA,IAAIA,MAAMA,GAAGA,SAASA,CAACA,EAAqBA,EAAEA,IAAIA,CAACA,GAAGA,CAACA,CAACA;gBACxDA,KAAKA,CAACA,GAAGA,CAACA,CAACA;gBACXA,MAAMA,GAAGA,SAASA,CAACA,EAAyBA,EAAEA,MAAMA,CAACA,CAACA;gBACtDA,EAAEA,CAACA,CAACA,IAAIA,CAACA,WAAWA,CAACA,IAAIA,KAAKA,GAAkCA,CAACA,CAACA,CAACA;oBAC/DA,IAAIA,uBAAuBA,GAA4BA,IAAIA,CAACA,WAAWA,CAACA;oBACxEA,EAAEA,CAACA,CAACA,uBAAuBA,CAACA,YAAYA,CAACA,MAAMA,IAAIA,CAACA,CAACA,CAACA,CAACA;wBACnDA,IAAIA,IAAIA,GAAGA,uBAAuBA,CAACA,YAAYA,CAACA,CAACA,CAACA,CAACA;wBACnDA,kCAAkCA,CAACA,IAAIA,EAAEA,MAAMA,CAACA,CAACA;wBACjDA,KAAKA,CAACA,GAAGA,CAACA,CAACA;wBACXA,IAAIA,CAACA,IAAIA,CAACA,CAACA;oBACfA,CAACA;gBACLA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,IAAIA,CAACA,IAAIA,CAACA,WAAWA,CAACA,CAACA;gBAC3BA,CAACA;gBAEDA,EAAEA,CAACA,CAACA,IAAIA,CAACA,IAAIA,KAAKA,GAAyBA,CAACA,CAACA,CAACA;oBAC1CA,KAAKA,CAACA,MAAMA,CAACA,CAACA;gBAClBA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,KAAKA,CAACA,MAAMA,CAACA,CAACA;gBAClBA,CAACA;gBACDA,IAAIA,CAACA,IAAIA,CAACA,UAAUA,CAACA,CAACA;gBACtBA,SAASA,CAACA,EAA0BA,EAAEA,IAAIA,CAACA,UAAUA,CAACA,GAAGA,CAACA,CAACA;gBAC3DA,qBAAqBA,CAACA,IAAIA,CAACA,SAASA,CAACA,CAACA;YAC1CA,CAACA;YAED/H,qCAAqCA,IAAoBA;gBACrDgI,0BAA0BA;gBAC1BA,EAAEA;gBACFA,6BAA6BA;gBAC7BA,EAAEA;gBACFA,uBAAuBA;gBACvBA,EAAEA;gBACFA,yDAAyDA;gBACzDA,yBAAyBA;gBACzBA,OAAOA;gBACPA,EAAEA;gBACFA,wEAAwEA;gBACxEA,gBAAgBA;gBAChBA,yEAAyEA;gBACzEA,8BAA8BA;gBAC9BA,uEAAuEA;gBACvEA,sBAAsBA;gBACtBA,0EAA0EA;gBAC1EA,qBAAqBA;gBACrBA,4EAA4EA;gBAC5EA,8CAA8CA;gBAE9CA,IAAIA,MAAMA,GAAGA,SAASA,CAACA,EAAqBA,EAAEA,IAAIA,CAACA,GAAGA,CAACA,CAACA;gBACxDA,KAAKA,CAACA,GAAGA,CAACA,CAACA;gBACXA,MAAMA,GAAGA,SAASA,CAACA,EAAyBA,EAAEA,MAAMA,CAACA,CAACA;gBAWtDA,IAAIA,eAAeA,GAAGA,IAAIA,CAACA,UAAUA,CAACA,IAAIA,KAAKA,EAAqBA,CAACA;gBACrEA,IAAIA,OAAOA,GAAGA,kBAAkBA,CAACA,IAAIA,EAAEA,CAAmBA,CAACA,CAACA;gBAC5DA,IAAIA,YAAYA,GAAGA,eAAeA,GAAeA,IAAIA,CAACA,UAAUA,GAAGA,kBAAkBA,CAACA,IAAIA,CAACA,CAACA;gBAE5FA,IAAIA,YAAYA,GAAGA,eAAeA,CAACA,yBAAyBA,GAAGA,kBAAkBA,CAACA,IAAIA,EAAEA,CAAmBA,CAACA,GAAGA,SAASA,CAACA;gBAIzHA,SAASA,CAACA,IAAIA,CAACA,UAAUA,CAACA,CAACA;gBAC3BA,KAAKA,CAACA,MAAMA,CAACA,CAACA;gBAGdA,wBAAwBA,CAACA,OAAOA,CAACA,CAACA;gBAClCA,KAAKA,CAACA,MAAMA,CAACA,CAACA;gBACdA,OAAOA,CAACA,IAAIA,CAACA,UAAUA,CAACA,CAACA;gBAEzBA,EAAEA,CAACA,CAACA,CAACA,eAAeA,CAACA,CAACA,CAACA;oBAEnBA,KAAKA,CAACA,IAAIA,CAACA,CAACA;oBACZA,SAASA,CAACA,IAAIA,CAACA,UAAUA,CAACA,CAACA;oBAC3BA,wBAAwBA,CAACA,YAAYA,CAACA,CAACA;oBACvCA,KAAKA,CAACA,KAAKA,CAACA,CAACA;oBACbA,wBAAwBA,CAACA,IAAIA,CAACA,UAAUA,CAACA,CAACA;oBAC1CA,OAAOA,CAACA,IAAIA,CAACA,UAAUA,CAACA,CAACA;gBAC7BA,CAACA;gBAEDA,EAAEA,CAACA,CAACA,YAAYA,CAACA,CAACA,CAACA;oBACfA,KAAKA,CAACA,IAAIA,CAACA,CAACA;oBACZA,wBAAwBA,CAACA,YAAYA,CAACA,CAACA;oBACvCA,KAAKA,CAACA,KAAKA,CAACA,CAACA;oBACbA,wBAAwBA,CAACA,YAAYA,CAACA,CAACA;oBACvCA,KAAKA,CAACA,SAASA,CAACA,CAACA;gBACrBA,CAACA;gBAEDA,KAAKA,CAACA,IAAIA,CAACA,CAACA;gBAGZA,SAASA,CAACA,IAAIA,CAACA,WAAWA,CAACA,CAACA;gBAC5BA,wBAAwBA,CAACA,OAAOA,CAACA,CAACA;gBAClCA,KAAKA,CAACA,KAAKA,CAACA,CAACA;gBAEbA,EAAEA,CAACA,CAACA,YAAYA,CAACA,CAACA,CAACA;oBACfA,wBAAwBA,CAACA,YAAYA,CAACA,CAACA;gBAC3CA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,wBAAwBA,CAACA,YAAYA,CAACA,CAACA;oBACvCA,KAAKA,CAACA,SAASA,CAACA,CAACA;gBACrBA,CAACA;gBAEDA,OAAOA,CAACA,IAAIA,CAACA,WAAWA,CAACA,CAACA;gBAC1BA,KAAKA,CAACA,IAAIA,CAACA,CAACA;gBAGZA,SAASA,CAACA,IAAIA,CAACA,WAAWA,CAACA,CAACA;gBAC5BA,wBAAwBA,CAACA,OAAOA,CAACA,CAACA;gBAClCA,KAAKA,CAACA,IAAIA,CAACA,CAACA;gBACZA,OAAOA,CAACA,IAAIA,CAACA,WAAWA,CAACA,CAACA;gBAC1BA,SAASA,CAACA,EAA0BA,EAAEA,IAAIA,CAACA,UAAUA,CAACA,GAAGA,CAACA,CAACA;gBAG3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A;gBACrBA,CAACA;YACLA,CAACA;YAEDzI,4BAA4BA,IAAoBA;gBAC5C0I,KAAKA,CAACA,QAAQA,CAACA,CAACA;gBAChBA,IAAIA,CAACA,IAAIA,CAACA,UAAUA,CAACA,CAACA;gBACtBA,KAAKA,CAACA,GAAGA,CAACA,CAACA;YACfA,CAACA;YAED1I,0BAA0BA,IAAkBA;gBACxC2I,KAAKA,CAACA,MAAMA,CAACA,CAACA;gBACdA,IAAIA,CAACA,IAAIA,CAACA,QAAQA,CAACA,CAACA;gBACpBA,IAAIA,CAACA,IAAIA,CAACA,WAAWA,CAACA,CAACA;gBACvBA,EAAEA,CAACA,CAACA,IAAIA,CAACA,YAAYA,CAACA,CAACA,CAACA;oBACpBA,SAASA,EAAEA,CAACA;oBACZA,KAAKA,CAACA,UAAUA,CAACA,CAACA;oBAClBA,IAAIA,CAACA,IAAIA,CAACA,YAAYA,CAACA,CAACA;gBAC5BA,CAACA;YACLA,CAACA;YAED3I,yBAAyBA,IAAiBA;gBACtC4I,SAASA,EAAEA,CAACA;gBACZA,IAAIA,MAAMA,GAAGA,SAASA,CAACA,EAAuBA,EAAEA,IAAIA,CAACA,GAAGA,CAACA,CAACA;gBAC1DA,KAAKA,CAACA,GAAGA,CAACA,CAACA;gBACXA,SAASA,CAACA,EAAyBA,EAAEA,MAAMA,CAACA,CAACA;gBAC7CA,IAAIA,CAACA,IAAIA,CAACA,mBAAmBA,CAACA,CAACA;gBAC/BA,SAASA,CAACA,EAA0BA,EAAEA,IAAIA,CAACA,mBAAmBA,GAAGA,IAAIA,CAACA,mBAAmBA,CAACA,GAAGA,GAAGA,MAAMA,CAACA,CAACA;gBACxGA,KAAKA,CAACA,GAAGA,CAACA,CAACA;gBACXA,SAASA,CAACA,IAAIA,CAACA,KAAKA,CAACA,CAACA;YAC1BA,CAACA;YAED5I,+BAA+BA,IAAUA;gBACrC6I,SAASA,CAACA,EAA0BA,EAAEA,IAAIA,CAACA,GAAGA,CAACA,CAACA;gBAChDA,KAAKA,CAACA,GAAGA,CAACA,CAACA;YACfA,CAACA;YAED7I,+BAA+BA,IAAsBA;gBACjD8I,IAAIA,CAACA,IAAIA,CAACA,KAAKA,CAACA,CAACA;gBACjBA,KAAKA,CAACA,IAAIA,CAACA,CAACA;gBACZA,IAAIA,CAACA,IAAIA,CAACA,SAASA,CAACA,CAACA;YACzBA,CAACA;YAED9I,6BAA6BA,IAAUA;gBACnC+I,GAAGA,CAACA;oBACAA,IAAIA,GAAGA,IAAIA,CAACA,MAAMA,CAACA;gBACvBA,CAACA,QAAQA,IAAIA,IAAIA,IAAIA,CAACA,IAAIA,KAAKA,GAA4BA,EAAEA;gBAC7DA,MAAMA,CAAoBA,IAAIA,CAACA;YACnCA,CAACA;YAED/I,kCAAkCA,IAAUA;gBACxCgJ,IAAIA,SAASA,GAAGA,mBAAmBA,CAACA,IAAIA,CAACA,CAACA;gBAC1CA,KAAKA,CAACA,SAASA,GAAGA,uBAAuBA,CAACA,SAASA,CAACA,GAAGA,SAASA,CAACA,CAACA;YACtEA,CAACA;YAEDhJ,8BAA8BA,IAAiBA;gBAC3CiJ,SAASA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA;gBACrBA,EAAEA,CAACA,CAACA,uBAAoBA,CAACA,IAAIA,CAACA,GAAGA,CAAgBA,CAACA,CAACA,CAACA;oBAChDA,IAAIA,SAASA,GAAGA,mBAAmBA,CAACA,IAAIA,CAACA,CAACA;oBAC1CA,EAAEA,CAACA,CAACA,SAASA,CAACA,CAACA,CAACA;wBACZA,KAAKA,CAACA,uBAAuBA,CAACA,SAASA,CAACA,CAACA,CAACA;wBAC1CA,KAAKA,CAACA,GAAGA,CAACA,CAACA;oBACfA,CAACA;oBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,eAAeA,GAAGA,CAAgBA,CAACA,CAACA,CAACA;wBAC1CA,KAAKA,CAACA,UAAUA,CAACA,CAACA;oBACtBA,CAACA;gBACLA,CAACA;gBACDA,wBAAwBA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA;gBACpCA,OAAOA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA;YACvBA,CAACA;YAEDjJ;gBACIkJ,IAAIA,IAAIA,GAAsBA,wBAAqBA,CAACA,CAAyBA,CAACA,CAACA;gBAC/EA,IAAIA,CAACA,IAAIA,GAAGA,GAAGA,CAACA;gBAChBA,IAAIA,MAAMA,GAAmBA,wBAAqBA,CAACA,GAAyBA,CAACA,CAACA;gBAC9EA,MAAMA,CAACA,UAAUA,GAAGA,IAAIA,CAACA;gBACzBA,MAAMA,CAACA,MAAMA,CAACA;YAClBA,CAACA;YAEDlJ,oCAAoCA,IAAgDA;gBAChFmJ,EAAEA,CAACA,CAACA,IAAIA,CAACA,KAAKA,GAAGA,CAAgBA,CAACA,CAACA,CAACA;oBAChCA,SAASA,EAAEA,CAACA;oBACZA,SAASA,CAACA,IAAIA,CAACA,CAACA;oBAChBA,EAAEA,CAACA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA,CAACA;wBACZA,oBAAoBA,CAACA,IAAIA,CAACA,CAACA;oBAC/BA,CAACA;oBACDA,IAAIA,CAACA,CAACA;wBACFA,KAAKA,CAACA,iBAAiBA,CAACA,CAACA;oBAC7BA,CAACA;oBACDA,KAAKA,CAACA,KAAKA,CAACA,CAACA;oBACbA,mBAAmBA,CAACA,IAAIA,CAACA,CAACA;oBAC1BA,OAAOA,CAACA,IAAIA,CAACA,CAACA;oBACdA,KAAKA,CAACA,GAAGA,CAACA,CAACA;gBACfA,CAACA;YACLA,CAACA;YAEDnJ,qCAAqCA,IAAgBA;gBACjDoJ,EAAEA,CAACA,CAACA,CAACA,YAAYA,IAAIA,gBAAgBA,IAAIA,cAAWA,CAACA,gBAAgBA,EAAEA,IAAIA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;oBAChFA,GAAGA,CAACA,CAAkBA,UAA2BA,EAA3BA,KAAAA,gBAAgBA,CAACA,IAAIA,CAACA,IAAIA,CAACA,kBAA5CA,OAAaA,EAAbA,IAA4CA,CAACA;wBAA7CA,IAAIA,SAASA,SAAAA;wBACdA,SAASA,EAAEA,CAACA;wBACZA,SAASA,CAACA,SAASA,CAACA,IAAIA,CAACA,CAACA;wBAC1BA,wBAAwBA,CAACA,SAASA,CAACA,CAACA;wBACpCA,KAAKA,CAACA,GAAGA,CAACA,CAACA;wBACXA,wBAAwBA,CAACA,SAASA,CAACA,IAAIA,CAACA,CAACA;wBACzCA,OAAOA,CAACA,SAASA,CAACA,IAAIA,CAACA,CAACA;wBACxBA,KAAKA,CAACA,KAAKA,CAACA,CAACA;wBACbA,wBAAwBA,CAACA,IAAIA,CAACA,CAACA;wBAC/BA,KAAKA,CAACA,GAAGA,CAACA,CAACA;qBACdA;gBACLA,CAACA;YACLA,CAACA;YAQDpJ,2BAA2BA,IAAmEA,EAC1FA,+BAAwCA,EACxCA,KAAkBA,EAClBA,4BAAmCA;gBACnCqJ,IAAIA,SAASA,GAAGA,CAACA,CAACA;gBAGlBA,IAAIA,aAAaA,GAAGA,CAACA,IAAIA,CAACA,IAAIA,KAAKA,GAA8BA,IAAIA,CAACA,CAACA,uBAAoBA,CAACA,IAAIA,CAACA,GAAGA,CAAgBA,CAACA,CAACA,IAAIA,IAAIA,CAACA,IAAIA,KAAKA,GAAoBA,CAACA;gBAC7JA,EAAEA,CAACA,CAACA,IAAIA,CAACA,IAAIA,KAAKA,GAA2BA,CAACA,CAACA,CAACA;oBAC5CA,wBAAwBA,CAAmBA,IAAIA,CAACA,CAACA;gBACrDA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,QAAKA,CAACA,MAAMA,CAACA,CAACA,+BAA+BA,CAACA,CAACA;oBAC/CA,kBAAkBA,CAAiBA,IAAIA,EAAEA,KAAKA,CAACA,CAACA;gBACpDA,CAACA;gBAEDA,wBAAwBA,IAAgBA,EAAEA,KAAiBA;oBACvDC,EAAEA,CAACA,CAACA,SAASA,EAAEA,CAACA,CAACA,CAACA;wBACdA,KAAKA,CAACA,IAAIA,CAACA,CAACA;oBAChBA,CAACA;oBAEDA,4BAA4BA,CAACA,IAAIA,CAACA,CAACA;oBACnCA,EAAEA,CAACA,CAACA,IAAIA,CAACA,MAAMA,IAAIA,CAACA,IAAIA,CAACA,MAAMA,CAACA,IAAIA,KAAKA,GAA8BA,IAAIA,IAAIA,CAACA,MAAMA,CAACA,IAAIA,KAAKA,GAAyBA,CAACA,CAACA,CAACA,CAACA;wBACzHA,oBAAoBA,CAAcA,IAAIA,CAACA,MAAMA,CAACA,CAACA;oBACnDA,CAACA;oBACDA,IAAIA,CAACA,CAACA;wBACFA,IAAIA,CAACA,IAAIA,CAACA,CAACA;oBACfA,CAACA;oBACDA,KAAKA,CAACA,KAAKA,CAACA,CAACA;oBACbA,IAAIA,CAACA,KAAKA,CAACA,CAACA;gBAChBA,CAACA;gBAEDD,0BAA0BA,IAAgBA;oBACtCE,EAAEA,CAACA,CAACA,IAAIA,CAACA,IAAIA,KAAKA,EAAqBA,CAACA,CAACA,CAACA;wBAItCA,IAAIA,UAAUA,GAAGA,kBAAkBA,CAACA,4BAA4BA,IAAIA,IAAIA,CAACA,CAACA;wBAC1EA,EAAEA,CAACA,CAACA,CAACA,aAAaA,CAACA,CAACA,CAACA;4BACjBA,qBAAqBA,CAACA,UAAUA,CAACA,CAACA;wBACtCA,CAACA;wBACDA,cAAcA,CAACA,UAAUA,EAAEA,IAAIA,CAACA,CAACA;wBACjCA,IAAIA,GAAGA,UAAUA,CAACA;oBACtBA,CAACA;oBACDA,MAAMA,CAACA,IAAIA,CAACA;gBAChBA,CAACA;gBAEDF,iCAAiCA,KAAiBA,EAAEA,YAAwBA;oBAGxEG,KAAKA,GAAGA,gBAAgBA,CAACA,KAAKA,CAACA,CAACA;oBAEhCA,IAAIA,MAAMA,GAAqBA,wBAAqBA,CAACA,GAA2BA,CAACA,CAACA;oBAClFA,MAAMA,CAACA,IAAIA,GAAGA,KAAKA,CAACA;oBACpBA,MAAMA,CAACA,aAAaA,GAAGA,wBAAqBA,CAACA,EAAkCA,CAACA,CAACA;oBACjFA,MAAMA,CAACA,KAAKA,GAAGA,cAAcA,EAAEA,CAACA;oBAChCA,MAAMA,CAACA,2BAA2BA,CAACA,MAAMA,EAAEA,YAAYA,EAAEA,KAAKA,CAACA,CAACA;gBACpEA,CAACA;gBAEDH,qCAAqCA,SAAqBA,EAAEA,QAAoBA,EAAEA,SAAqBA;oBACnGI,IAAIA,IAAIA,GAA0BA,wBAAqBA,CAACA,GAAgCA,CAACA,CAACA;oBAC1FA,IAAIA,CAACA,SAASA,GAAGA,SAASA,CAACA;oBAC3BA,IAAIA,CAACA,aAAaA,GAAGA,wBAAqBA,CAACA,EAAwBA,CAACA,CAACA;oBACrEA,IAAIA,CAACA,QAAQA,GAAGA,QAAQA,CAACA;oBACzBA,IAAIA,CAACA,UAAUA,GAAGA,wBAAqBA,CAACA,EAAqBA,CAACA,CAACA;oBAC/DA,IAAIA,CAACA,SAASA,GAAGA,SAASA,CAACA;oBAC3BA,MAAMA,CAACA,IAAIA,CAACA;gBAChBA,CAACA;gBAEDJ,8BAA8BA,KAAaA;oBACvCK,IAAIA,IAAIA,GAAsBA,wBAAqBA,CAACA,CAAyBA,CAACA,CAACA;oBAC/EA,IAAIA,CAACA,IAAIA,GAAGA,EAAEA,GAAGA,KAAKA,CAACA;oBACvBA,MAAMA,CAACA,IAAIA,CAACA;gBAChBA,CAACA;gBAEDL,+BAA+BA,IAAgBA;oBAC3CM,EAAEA,CAACA,CAACA,IAAIA,CAACA,IAAIA,KAAKA,EAAqBA,IAAIA,IAAIA,CAACA,IAAIA,KAAKA,GAAmCA,IAAIA,IAAIA,CAACA,IAAIA,KAAKA,GAAkCA,CAACA,CAACA,CAACA;wBAC/IA,MAAMA,CAAyBA,IAAIA,CAACA;oBACxCA,CAACA;oBACDA,IAAIA,IAAIA,GAA4BA,wBAAqBA,CAACA,GAAkCA,CAACA,CAACA;oBAC9FA,IAAIA,CAACA,UAAUA,GAAGA,IAAIA,CAACA;oBACvBA,MAAMA,CAACA,IAAIA,CAACA;gBAChBA,CAACA;gBAEDN,8BAA8BA,MAAkBA,EAAEA,QAAoBA;oBAClEO,EAAEA,CAACA,CAACA,QAAQA,CAACA,IAAIA,KAAKA,EAAqBA,CAACA,CAACA,CAACA;wBAC1CA,MAAMA,CAACA,mBAAmBA,CAACA,MAAMA,EAAEA,QAAQA,CAACA,CAACA;oBACjDA,CAACA;oBACDA,MAAMA,CAACA,8BAA8BA,CAACA,qBAAqBA,CAACA,MAAMA,CAACA,EAAEA,QAAQA,CAACA,CAACA;gBACnFA,CAACA;gBAEDP,6BAA6BA,MAAkBA,EAAEA,KAAiBA;oBAC9DQ,IAAIA,IAAIA,GAA4BA,wBAAqBA,CAACA,GAAkCA,CAACA,CAACA;oBAC9FA,IAAIA,CAACA,UAAUA,GAAGA,qBAAqBA,CAACA,MAAMA,CAACA,CAACA;oBAChDA,IAAIA,CAACA,kBAAkBA,GAAGA,KAAKA,CAACA;oBAChCA,MAAMA,CAACA,IAAIA,CAACA;gBAChBA,CAACA;gBAEDR,qCAAqCA,MAA+BA,EAAEA,KAAiBA;oBACnFS,IAAIA,UAAUA,GAAGA,MAAMA,CAACA,UAAUA,CAACA;oBACnCA,EAAEA,CAACA,CAACA,UAAUA,CAACA,MAAMA,KAAKA,CAACA,CAACA,CAACA,CAACA;wBAG1BA,KAAKA,GAAGA,gBAAgBA,CAACA,KAAKA,CAACA,CAACA;oBACpCA,CAACA;oBACDA,GAAGA,CAACA,CAAUA,UAAUA,0BAAnBA,OAAKA,EAALA,IAAmBA,CAACA;wBAApBA,IAAIA,CAACA,GAAIA,UAAUA,IAAdA;wBACNA,EAAEA,CAACA,CAACA,CAACA,CAACA,IAAIA,KAAKA,GAA6BA,IAAIA,CAACA,CAACA,IAAIA,KAAKA,GAAsCA,CAACA,CAACA,CAACA;4BAEhGA,IAAIA,QAAQA,GAAeA,CAAsBA,CAAEA,CAACA,IAAIA,CAACA,CAACA;4BAC1DA,2BAA2BA,CAAsBA,CAAEA,CAACA,WAAWA,IAAIA,QAAQA,EAAEA,oBAAoBA,CAACA,KAAKA,EAAEA,QAAQA,CAACA,CAACA,CAACA;wBACxHA,CAACA;qBACJA;gBACLA,CAACA;gBAEDT,oCAAoCA,MAA8BA,EAAEA,KAAiBA;oBACjFU,IAAIA,QAAQA,GAAGA,MAAMA,CAACA,QAAQA,CAACA;oBAC/BA,EAAEA,CAACA,CAACA,QAAQA,CAACA,MAAMA,KAAKA,CAACA,CAACA,CAACA,CAACA;wBAGxBA,KAAKA,GAAGA,gBAAgBA,CAACA,KAAKA,CAACA,CAACA;oBACpCA,CAACA;oBACDA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,QAAQA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;wBACvCA,IAAIA,CAACA,GAAGA,QAAQA,CAACA,CAACA,CAACA,CAACA;wBACpBA,EAAEA,CAACA,CAACA,CAACA,CAACA,IAAIA,KAAKA,GAA4BA,CAACA,CAACA,CAACA;4BAC1CA,EAAEA,CAACA,CAACA,CAACA,CAACA,IAAIA,KAAKA,GAAkCA,CAACA,CAACA,CAACA;gCAChDA,2BAA2BA,CAACA,CAACA,EAAEA,mBAAmBA,CAACA,KAAKA,EAAEA,oBAAoBA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA;4BACxFA,CAACA;4BACDA,IAAIA,CAACA,CAACA;gCACFA,EAAEA,CAACA,CAACA,CAACA,KAAKA,QAAQA,CAACA,MAAMA,GAAGA,CAACA,CAACA,CAACA,CAACA;oCAC5BA,KAAKA,GAAGA,gBAAgBA,CAACA,KAAKA,CAACA,CAACA;oCAChCA,cAAcA,CAAuCA,CAAEA,CAACA,UAAUA,EAAEA,KAAKA,CAACA,CAACA;oCAC3EA,KAAKA,CAACA,SAASA,GAAGA,CAACA,GAAGA,GAAGA,CAACA,CAACA;gCAC/BA,CAACA;4BACLA,CAACA;wBACLA,CAACA;oBACLA,CAACA;gBACLA,CAACA;gBAEDV,qCAAqCA,MAAkBA,EAAEA,KAAiBA;oBACtEW,EAAEA,CAACA,CAACA,MAAMA,CAACA,IAAIA,KAAKA,GAA2BA,IAAuBA,MAAOA,CAACA,aAAaA,CAACA,IAAIA,KAAKA,EAAsBA,CAACA,CAACA,CAACA;wBAC1HA,KAAKA,GAAGA,uBAAuBA,CAACA,KAAKA,EAAqBA,MAAOA,CAACA,KAAKA,CAACA,CAACA;wBACzEA,MAAMA,GAAsBA,MAAOA,CAACA,IAAIA,CAACA;oBAC7CA,CAACA;oBACDA,EAAEA,CAACA,CAACA,MAAMA,CAACA,IAAIA,KAAKA,GAAkCA,CAACA,CAACA,CAACA;wBACrDA,2BAA2BA,CAA0BA,MAAMA,EAAEA,KAAKA,CAACA,CAACA;oBACxEA,CAACA;oBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,MAAMA,CAACA,IAAIA,KAAKA,GAAiCA,CAACA,CAACA,CAACA;wBACzDA,0BAA0BA,CAAyBA,MAAMA,EAAEA,KAAKA,CAACA,CAACA;oBACtEA,CAACA;oBACDA,IAAIA,CAACA,CAACA;wBACFA,cAAcA,CAAaA,MAAMA,EAAEA,KAAKA,CAACA,CAACA;oBAC9CA,CAACA;gBACLA,CAACA;gBAEDX,kCAAkCA,IAAsBA;oBACpDY,IAAIA,MAAMA,GAAGA,IAAIA,CAACA,IAAIA,CAACA;oBACvBA,IAAIA,KAAKA,GAAGA,IAAIA,CAACA,KAAKA,CAACA;oBACvBA,EAAEA,CAACA,CAACA,+BAA+BA,CAACA,CAACA,CAACA;wBAClCA,2BAA2BA,CAACA,MAAMA,EAAEA,KAAKA,CAACA,CAACA;oBAC/CA,CAACA;oBACDA,IAAIA,CAACA,CAACA;wBACFA,EAAEA,CAACA,CAACA,IAAIA,CAACA,MAAMA,CAACA,IAAIA,KAAKA,GAAkCA,CAACA,CAACA,CAACA;4BAC1DA,KAAKA,CAACA,GAAGA,CAACA,CAACA;wBACfA,CAACA;wBACDA,KAAKA,GAAGA,gBAAgBA,CAACA,KAAKA,CAACA,CAACA;wBAChCA,2BAA2BA,CAACA,MAAMA,EAAEA,KAAKA,CAACA,CAACA;wBAC3CA,KAAKA,CAACA,IAAIA,CAACA,CAACA;wBACZA,IAAIA,CAACA,KAAKA,CAACA,CAACA;wBACZA,EAAEA,CAACA,CAACA,IAAIA,CAACA,MAAMA,CAACA,IAAIA,KAAKA,GAAkCA,CAACA,CAACA,CAACA;4BAC1DA,KAAKA,CAACA,GAAGA,CAACA,CAACA;wBACfA,CAACA;oBACLA,CAACA;gBACLA,CAACA;gBAEDZ,4BAA4BA,MAAsBA,EAAEA,KAAiBA;oBACjEa,EAAEA,CAACA,CAACA,MAAMA,CAACA,WAAWA,CAACA,CAACA,CAACA;wBAErBA,KAAKA,GAAGA,KAAKA,GAAGA,uBAAuBA,CAACA,KAAKA,EAAEA,MAAMA,CAACA,WAAWA,CAACA,GAAGA,MAAMA,CAACA,WAAWA,CAACA;oBAC5FA,CAACA;oBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,CAACA,KAAKA,CAACA,CAACA,CAACA;wBAEdA,KAAKA,GAAGA,cAAcA,EAAEA,CAACA;oBAC7BA,CAACA;oBACDA,EAAEA,CAACA,CAACA,mBAAgBA,CAACA,MAAMA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;wBAChCA,IAAIA,OAAOA,GAAmBA,MAAMA,CAACA,IAAIA,CAACA;wBAC1CA,IAAIA,QAAQA,GAAGA,OAAOA,CAACA,QAAQA,CAACA;wBAChCA,EAAEA,CAACA,CAACA,QAAQA,CAACA,MAAMA,KAAKA,CAACA,CAACA,CAACA,CAACA;4BAGxBA,KAAKA,GAAGA,gBAAgBA,CAACA,KAAKA,CAACA,CAACA;wBACpCA,CAACA;wBACDA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,QAAQA,CAACA,MAAMA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;4BACvCA,IAAIA,OAAOA,GAAGA,QAAQA,CAACA,CAACA,CAACA,CAACA;4BAC1BA,EAAEA,CAACA,CAACA,OAAOA,CAACA,IAAIA,KAAKA,GAA+BA,CAACA,CAACA,CAACA;gCAEnDA,IAAIA,QAAQA,GAAGA,OAAOA,CAACA,YAAYA,IAAgBA,OAAOA,CAACA,IAAIA,CAACA;gCAChEA,kBAAkBA,CAACA,OAAOA,EAAEA,oBAAoBA,CAACA,KAAKA,EAAEA,QAAQA,CAACA,CAACA,CAACA;4BACvEA,CAACA;4BACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,OAAOA,CAACA,IAAIA,KAAKA,GAA4BA,CAACA,CAACA,CAACA;gCACrDA,EAAEA,CAACA,CAACA,CAACA,OAAOA,CAACA,cAAcA,CAACA,CAACA,CAACA;oCAE1BA,kBAAkBA,CAACA,OAAOA,EAAEA,mBAAmBA,CAACA,KAAKA,EAAEA,oBAAoBA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA;gCACrFA,CAACA;gCACDA,IAAIA,CAACA,CAACA;oCACFA,EAAEA,CAACA,CAACA,CAACA,KAAKA,QAAQA,CAACA,MAAMA,GAAGA,CAACA,CAACA,CAACA,CAACA;wCAC5BA,KAAKA,GAAGA,gBAAgBA,CAACA,KAAKA,CAACA,CAACA;wCAChCA,cAAcA,CAAaA,OAAOA,CAACA,IAAIA,EAAEA,KAAKA,CAACA,CAACA;wCAChDA,KAAKA,CAACA,SAASA,GAAGA,CAACA,GAAGA,GAAGA,CAACA,CAACA;oCAC/BA,CAACA;gCACLA,CAACA;4BACLA,CAACA;wBACLA,CAACA;oBACLA,CAACA;oBACDA,IAAIA,CAACA,CAACA;wBACFA,cAAcA,CAAaA,MAAMA,CAACA,IAAIA,EAAEA,KAAKA,CAACA,CAACA;oBACnDA,CAACA;gBACLA,CAACA;YACLb,CAACA;YAEDrJ,iCAAiCA,IAAyBA;gBACtDmK,EAAEA,CAACA,CAACA,mBAAgBA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;oBAC9BA,EAAEA,CAACA,CAACA,eAAeA,GAAGA,CAAgBA,CAACA,CAACA,CAACA;wBACrCA,iBAAiBA,CAACA,IAAIA,EAAsCA,KAAKA,CAACA,CAACA;oBACvEA,CAACA;oBACDA,IAAIA,CAACA,CAACA;wBACFA,IAAIA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA;wBAChBA,YAAYA,CAACA,KAAKA,EAAEA,IAAIA,CAACA,WAAWA,CAACA,CAACA;oBAC1CA,CAACA;gBACLA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,4BAA4BA,CAAaA,IAAIA,CAACA,IAAIA,CAACA,CAACA;oBACpDA,oBAAoBA,CAACA,IAAIA,CAACA,CAACA;oBAE3BA,IAAIA,WAAWA,GAAGA,IAAIA,CAACA,WAAWA,CAACA;oBACnCA,EAAEA,CAACA,CAACA,CAACA,WAAWA,IAAIA,eAAeA,GAAGA,CAAgBA,CAACA,CAACA,CAACA;wBAQrDA,IAAIA,kBAAkBA,GAClBA,CAACA,QAAQA,CAACA,iBAAiBA,CAACA,IAAIA,CAACA,GAAGA,GAAuCA,CAACA;4BAC5EA,CAACA,6BAA6BA,CAAaA,IAAIA,CAACA,IAAIA,CAACA,GAAGA,IAAaA,CAACA,CAACA;wBAG3EA,EAAEA,CAACA,CAACA,kBAAkBA;4BAClBA,IAAIA,CAACA,MAAMA,CAACA,MAAMA,CAACA,IAAIA,KAAKA,GAAyBA;4BACrDA,IAAIA,CAACA,MAAMA,CAACA,MAAMA,CAACA,IAAIA,KAAKA,GAAyBA,CAACA,CAACA,CAACA;4BACxDA,WAAWA,GAAGA,cAAcA,EAAEA,CAACA;wBACnCA,CAACA;oBACLA,CAACA;oBAEDA,YAAYA,CAACA,KAAKA,EAAEA,WAAWA,CAACA,CAACA;gBACrCA,CAACA;YACLA,CAACA;YAEDnK,uCAAuCA,IAA0CA;gBAC7EoK,EAAEA,CAACA,CAACA,IAAIA,CAACA,IAAIA,KAAKA,GAA4BA,CAACA,CAACA,CAACA;oBAC7CA,MAAMA,CAACA;gBACXA,CAACA;gBACDA,IAAIA,IAAIA,GAAGA,IAAIA,CAACA,IAAIA,CAACA;gBACrBA,EAAEA,CAACA,CAACA,IAAIA,CAACA,IAAIA,KAAKA,EAAqBA,CAACA,CAACA,CAACA;oBACtCA,2BAA2BA,CAAaA,IAAIA,CAACA,CAACA;gBAClDA,CAACA;gBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,mBAAgBA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;oBAC9BA,UAAOA,CAAkBA,IAAKA,CAACA,QAAQA,EAAEA,6BAA6BA,CAACA,CAACA;gBAC5EA,CAACA;YACLA,CAACA;YAEDpK,uCAAuCA,IAAgBA;gBACnDqK,EAAEA,CAACA,CAACA,CAACA,IAAIA,CAACA,MAAMA,IAAIA,CAACA,IAAIA,CAACA,MAAMA,CAACA,IAAIA,KAAKA,GAA8BA,IAAIA,IAAIA,CAACA,MAAMA,CAACA,IAAIA,KAAKA,GAAyBA,CAACA,CAACA,CAACA,CAACA;oBAC1HA,MAAMA,CAACA,CAACA,CAACA;gBACbA,CAACA;gBAEDA,MAAMA,CAACA,uBAAoBA,CAACA,IAAIA,CAACA,MAAMA,CAACA,CAACA;YAC7CA,CAACA;YAEDrK,sCAAsCA,IAAUA;gBAO5CsK,EAAEA,CAACA,CAACA,eAAeA,IAAIA,CAAgBA;oBACnCA,oBAAiBA,CAACA,IAAIA,CAACA;oBACvBA,IAAIA,CAACA,IAAIA,KAAKA,EAAqBA;oBACnCA,CAACA,IAAIA,CAACA,MAAMA,CAACA,IAAIA,KAAKA,GAA8BA,IAAIA,IAAIA,CAACA,MAAMA,CAACA,IAAIA,KAAKA,GAAyBA,CAACA,CAACA,CAACA,CAACA;oBAC1GA,MAAMA,CAACA;gBACXA,CAACA;gBAEDA,IAAIA,aAAaA,GAAGA,6BAA6BA,CAAaA,IAAIA,CAACA,CAACA;gBACpEA,EAAEA,CAACA,CAACA,CAACA,CAACA,aAAaA,GAAGA,KAAqBA,CAACA,KAAKA,CAACA,CAACA,IAAIA,aAAaA,GAAGA,CAAgBA,CAACA,CAACA,CAACA;oBAEtFA,MAAMA,CAACA;gBACXA,CAACA;gBAGDA,IAAIA,IAAIA,GAAGA,cAAWA,CAACA,IAAIA,EAAEA,GAAkCA,CAACA,CAACA;gBACjEA,EAAEA,CAACA,CAACA,IAAIA,CAACA,MAAMA,CAACA,IAAIA,KAAKA,GAA4BA,CAACA,CAACA,CAACA;oBACpDA,IAAIA,wBAAwBA,GAAGA,IAAIA,CAACA,MAAMA,CAACA,MAAMA,CAACA,IAAIA,KAAKA,GAAqBA,CAACA;oBACjFA,IAAIA,oBAAoBA,GAAGA,IAAIA,CAACA,MAAMA,CAACA,MAAMA,CAACA,IAAIA,KAAKA,GAAsBA,CAACA;oBAC9EA,IAAIA,sBAAsBA,GACtBA,IAAIA,CAACA,MAAMA,CAACA,MAAMA,CAACA,IAAIA,KAAKA,GAAgBA,IAAIA,iBAAcA,CAACA,IAAIA,CAACA,MAAMA,CAACA,MAAMA,CAACA,MAAMA,CAACA,CAACA;oBAC9FA,EAAEA,CAACA,CAACA,wBAAwBA,IAAIA,oBAAoBA,IAAIA,sBAAsBA,CAACA,CAACA,CAACA;wBAC7EA,MAAMA,CAACA;oBACXA,CAACA;gBACLA,CAACA;gBAEDA,IAAIA,mBAAmBA,GAAGA,kCAA+BA,CAACA,IAAIA,CAACA,CAACA;gBAChEA,IAAIA,MAAMA,GAAGA,mBAAmBA,CAACA,IAAIA,KAAKA,GAAqBA;sBACzDA,mBAAmBA;sBACnBA,mBAAmBA,CAACA,MAAMA,CAACA;gBAEjCA,IAAIA,4BAA4BA,GAC5BA,QAAQA,CAACA,mBAAmBA,CAACA,MAAMA,EAAeA,IAAKA,CAACA,IAAIA,CAACA;oBAC7DA,iCAAiCA,CAAcA,IAAKA,CAACA,IAAIA,CAACA,CAACA;gBAE/DA,EAAEA,CAACA,CAACA,4BAA4BA,CAACA,CAACA,CAACA;oBAC/BA,IAAIA,UAAUA,GAAGA,QAAQA,CAACA,wBAAwBA,CAAaA,IAAIA,CAACA,CAACA;oBACrEA,EAAEA,CAACA,CAACA,CAACA,kCAAkCA,CAACA,CAACA,CAACA;wBACtCA,kCAAkCA,GAAGA,EAAEA,CAACA;oBAC5CA,CAACA;oBAEDA,IAAIA,aAAaA,GAAGA,cAAcA,CAAcA,IAAKA,CAACA,IAAIA,CAACA,CAACA;oBAC5DA,kCAAkCA,CAACA,UAAUA,CAACA,GAAGA,aAAaA,CAACA;gBACnEA,CAACA;YACLA,CAACA;YAEDtK,kCAAkCA,IAAUA;gBACxCuK,MAAMA,CAACA,CAACA,CAACA,CAACA,IAAIA,CAACA,KAAKA,GAAGA,CAAgBA,CAACA;oBACpCA,eAAeA,IAAIA,CAAgBA;oBACnCA,IAAIA,CAACA,MAAMA,CAACA,IAAIA,KAAKA,GAAqBA,CAACA;YACnDA,CAACA;YAEDvK,+BAA+BA,IAAuBA;gBAClDwK,EAAEA,CAACA,CAACA,CAACA,CAACA,IAAIA,CAACA,KAAKA,GAAGA,CAAgBA,CAACA,CAACA,CAACA,CAACA;oBACnCA,kCAAkCA,CAACA,IAAIA,CAACA,eAAeA,CAACA,CAACA;gBAC7DA,CAACA;gBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,wBAAwBA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;oBAEtCA,KAAKA,CAACA,SAASA,CAACA,CAACA;oBACjBA,kCAAkCA,CAACA,IAAIA,CAACA,eAAeA,CAACA,CAACA;gBAC7DA,CAACA;gBACDA,aAAaA,CAACA,IAAIA,CAACA,eAAeA,CAACA,YAAYA,CAACA,CAACA;gBACjDA,KAAKA,CAACA,GAAGA,CAACA,CAACA;gBACXA,EAAEA,CAACA,CAACA,eAAeA,GAAGA,CAAgBA,IAAIA,IAAIA,CAACA,MAAMA,KAAKA,iBAAiBA,CAACA,CAACA,CAACA;oBAC1EA,UAAOA,CAACA,IAAIA,CAACA,eAAeA,CAACA,YAAYA,EAAEA,6BAA6BA,CAACA,CAACA;gBAC9EA,CAACA;YACLA,CAACA;YAEDxK,uBAAuBA,IAA0BA;gBAC7CyK,EAAEA,CAACA,CAACA,eAAeA,GAAGA,CAAgBA,CAACA,CAACA,CAACA;oBACrCA,EAAEA,CAACA,CAACA,mBAAgBA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;wBAC9BA,IAAIA,OAAIA,GAAGA,kBAAkBA,CAACA,IAAIA,CAACA,CAACA;wBACpCA,EAAEA,CAACA,CAACA,CAACA,cAAcA,CAACA,CAACA,CAACA;4BAClBA,cAAcA,GAAGA,EAAEA,CAACA;wBACxBA,CAACA;wBACDA,cAAcA,CAACA,IAAIA,CAACA,OAAIA,CAACA,CAACA;wBAC1BA,IAAIA,CAACA,OAAIA,CAACA,CAACA;oBACfA,CAACA;oBACDA,IAAIA,CAACA,CAACA;wBACFA,IAAIA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA;oBACpBA,CAACA;gBACLA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,EAAEA,CAACA,CAACA,IAAIA,CAACA,cAAcA,CAACA,CAACA,CAACA;wBACtBA,KAAKA,CAACA,KAAKA,CAACA,CAACA;oBACjBA,CAACA;oBACDA,IAAIA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA;oBAChBA,YAAYA,CAACA,KAAKA,EAAEA,IAAIA,CAACA,WAAWA,CAACA,CAACA;gBAC1CA,CAACA;YACLA,CAACA;YAEDzK,qCAAqCA,IAA6BA;gBAC9D0K,EAAEA,CAACA,CAACA,eAAeA,GAAGA,CAAgBA,CAACA,CAACA,CAACA;oBACrCA,IAAIA,SAASA,GAAGA,CAACA,CAACA;oBAClBA,UAAOA,CAACA,IAAIA,CAACA,UAAUA,EAAEA,UAAAA,CAACA;wBACtBA,EAAEA,CAACA,CAACA,mBAAgBA,CAACA,CAACA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;4BAC3BA,SAASA,EAAEA,CAACA;4BACZA,KAAKA,CAACA,MAAMA,CAACA,CAACA;4BACdA,iBAAiBA,CAACA,CAACA,EAAsCA,KAAKA,EAAEA,cAAcA,CAACA,SAASA,CAACA,CAACA,CAACA;4BAC3FA,KAAKA,CAACA,GAAGA,CAACA,CAACA;4BACXA,SAASA,EAAEA,CAACA;wBAChBA,CAACA;wBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,CAACA,CAACA,WAAWA,CAACA,CAACA,CAACA;4BACrBA,SAASA,EAAEA,CAACA;4BACZA,SAASA,CAACA,CAACA,CAACA,CAACA;4BACbA,KAAKA,CAACA,MAAMA,CAACA,CAACA;4BACdA,wBAAwBA,CAACA,CAACA,CAACA,IAAIA,CAACA,CAACA;4BACjCA,KAAKA,CAACA,cAAcA,CAACA,CAACA;4BACtBA,OAAOA,CAACA,CAACA,CAACA,CAACA;4BACXA,KAAKA,CAACA,KAAKA,CAACA,CAACA;4BACbA,SAASA,CAACA,CAACA,CAACA,CAACA;4BACbA,wBAAwBA,CAACA,CAACA,CAACA,IAAIA,CAACA,CAACA;4BACjCA,KAAKA,CAACA,KAAKA,CAACA,CAACA;4BACbA,wBAAwBA,CAACA,CAACA,CAACA,WAAWA,CAACA,CAACA;4BACxCA,OAAOA,CAACA,CAACA,CAACA,CAACA;4BACXA,KAAKA,CAACA,KAAKA,CAACA,CAACA;wBACjBA,CAACA;oBACLA,CAACA,CAACA,CAACA;gBACPA,CAACA;YACLA,CAACA;YAED1K,2BAA2BA,IAA6BA;gBACpD2K,EAAEA,CAACA,CAACA,eAAeA,GAAGA,CAAgBA,IAAIA,oBAAiBA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;oBAChEA,IAAIA,SAASA,GAAGA,IAAIA,CAACA,UAAUA,CAACA,MAAMA,GAAGA,CAACA,CAACA;oBAC3CA,IAAIA,SAASA,GAAGA,IAAIA,CAACA,UAAUA,CAACA,SAASA,CAACA,CAACA;oBAC3CA,IAAIA,QAAQA,GAAGA,kBAAkBA,CAACA,IAAIA,EAAEA,CAAmBA,CAACA,CAACA,IAAIA,CAACA;oBAClEA,SAASA,EAAEA,CAACA;oBACZA,mBAAmBA,CAACA,SAASA,CAACA,CAACA;oBAC/BA,SAASA,CAACA,SAASA,CAACA,CAACA;oBACrBA,KAAKA,CAACA,MAAMA,CAACA,CAACA;oBACdA,wBAAwBA,CAACA,SAASA,CAACA,IAAIA,CAACA,CAACA;oBACzCA,KAAKA,CAACA,QAAQA,CAACA,CAACA;oBAChBA,OAAOA,CAACA,SAASA,CAACA,CAACA;oBACnBA,oBAAoBA,CAACA,SAASA,CAACA,CAACA;oBAChCA,SAASA,EAAEA,CAACA;oBACZA,KAAKA,CAACA,OAAOA,CAACA,CAACA;oBACfA,SAASA,CAACA,SAASA,CAACA,CAACA;oBACrBA,KAAKA,CAACA,MAAMA,GAAGA,QAAQA,GAAGA,KAAKA,GAAGA,SAASA,GAAGA,GAAGA,CAACA,CAACA;oBACnDA,OAAOA,CAACA,SAASA,CAACA,CAACA;oBACnBA,KAAKA,CAACA,GAAGA,CAACA,CAACA;oBACXA,SAASA,CAACA,SAASA,CAACA,CAACA;oBACrBA,KAAKA,CAACA,QAAQA,GAAGA,sBAAsBA,CAACA,CAACA;oBACzCA,OAAOA,CAACA,SAASA,CAACA,CAACA;oBACnBA,KAAKA,CAACA,GAAGA,CAACA,CAACA;oBACXA,SAASA,CAACA,SAASA,CAACA,CAACA;oBACrBA,KAAKA,CAACA,QAAQA,GAAGA,IAAIA,CAACA,CAACA;oBACvBA,OAAOA,CAACA,SAASA,CAACA,CAACA;oBACnBA,KAAKA,CAACA,KAAKA,CAACA,CAACA;oBACbA,cAAcA,EAAEA,CAACA;oBACjBA,SAASA,EAAEA,CAACA;oBACZA,SAASA,CAACA,SAASA,CAACA,CAACA;oBACrBA,wBAAwBA,CAACA,SAASA,CAACA,IAAIA,CAACA,CAACA;oBACzCA,KAAKA,CAACA,GAAGA,GAAGA,QAAQA,GAAGA,KAAKA,GAAGA,SAASA,GAAGA,gBAAgBA,GAAGA,QAAQA,GAAGA,IAAIA,CAACA,CAACA;oBAC/EA,OAAOA,CAACA,SAASA,CAACA,CAACA;oBACnBA,cAAcA,EAAEA,CAACA;oBACjBA,SAASA,EAAEA,CAACA;oBACZA,KAAKA,CAACA,GAAGA,CAACA,CAACA;gBACf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,IAAIA,GAAoBA,IAAKA,CAACA,UAAUA,CAACA;4BAC7CA,EAAEA,CAACA,CAACA,IAAIA,IAAIA,IAAIA,CAACA,IAAIA,KAAKA,EAAuBA,CAACA,CAACA,CAACA;gCAChDA,MAAMA,CAAsBA,SAASA,CAACA;4BAC1CA,CAACA;wBACLA,CAACA;oBACLA,CAACA;gBACLA,CAACA;YACLA,CAACA;YAEDzL,0CAA0CA,IAA4BA;gBAClE0L,UAAOA,CAACA,IAAIA,CAACA,UAAUA,EAAEA,UAAAA,KAAKA;oBAC1BA,EAAEA,CAACA,CAACA,KAAKA,CAACA,KAAKA,GAAGA,GAA+BA,CAACA,CAACA,CAACA;wBAChDA,SAASA,EAAEA,CAACA;wBACZA,SAASA,CAACA,KAAKA,CAACA,CAACA;wBACjBA,SAASA,CAACA,KAAKA,CAACA,IAAIA,CAACA,CAACA;wBACtBA,KAAKA,CAACA,OAAOA,CAACA,CAACA;wBACfA,wBAAwBA,CAACA,KAAKA,CAACA,IAAIA,CAACA,CAACA;wBACrCA,OAAOA,CAACA,KAAKA,CAACA,IAAIA,CAACA,CAACA;wBACpBA,KAAKA,CAACA,KAAKA,CAACA,CAACA;wBACbA,IAAIA,CAACA,KAAKA,CAACA,IAAIA,CAACA,CAACA;wBACjBA,KAAKA,CAACA,GAAGA,CAACA,CAACA;wBACXA,OAAOA,CAACA,KAAKA,CAACA,CAACA;oBACnBA,CAACA;gBACLA,CAACA,CAACA,CAACA;YACPA,CAACA;YAED1L,yCAAyCA,UAA2BA;gBAEhE2L,EAAEA,CAACA,CAACA,UAAUA,CAACA,IAAIA,KAAKA,CAAwBA,IAAIA,UAAUA,CAACA,IAAIA,KAAKA,CAAyBA,CAACA,CAACA,CAACA;oBAChGA,KAAKA,CAACA,GAAGA,CAACA,CAACA;oBACXA,wBAAwBA,CAACA,UAAUA,CAACA,CAACA;oBACrCA,KAAKA,CAACA,GAAGA,CAACA,CAACA;gBACfA,CAACA;gBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,UAAUA,CAACA,IAAIA,KAAKA,GAA+BA,CAACA,CAACA,CAACA;oBAC3DA,w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AwBA,CAACA,CAACA;4BAChCA,SAASA,CAAuBA,MAAOA,CAACA,IAAIA,CAACA,CAACA;4BAC9CA,qBAAqBA,CAACA,IAAIA,EAAEA,MAAMA,CAACA,CAACA;4BACpCA,KAAKA,CAACA,IAAIA,CAACA,CAACA;4BACZA,6BAA6BA,CAAuBA,MAAOA,CAACA,IAAIA,CAACA,CAACA;4BAClEA,OAAOA,CAAuBA,MAAOA,CAACA,IAAIA,CAACA,CAACA;4BAC5CA,KAAKA,CAACA,KAAKA,CAACA,CAACA;4BACbA,cAAcA,EAAEA,CAACA;4BACjBA,EAAEA,CAACA,CAACA,SAASA,CAACA,WAAWA,CAACA,CAACA,CAACA;gCACxBA,SAASA,EAAEA,CAACA;gCACZA,mBAAmBA,CAACA,SAASA,CAACA,WAAWA,CAACA,CAACA;gCAC3CA,KAAKA,CAACA,OAAOA,CAACA,CAACA;gCACfA,SAASA,CAACA,SAASA,CAACA,WAAWA,CAACA,CAACA;gCACjCA,KAAKA,CAACA,WAAWA,CAACA,CAACA;gCACnBA,oBAAoBA,CAACA,SAASA,CAACA,WAAWA,CAACA,CAACA;gCAC5CA,OAAOA,CAACA,SAASA,CAACA,WAAWA,CAACA,CAACA;gCAC/BA,oBAAoBA,CAACA,SAASA,CAACA,WAAWA,CAACA,CAACA;gCAC5CA,KAAKA,CAACA,GAAGA,CAACA,CAACA;4BACfA,CAACA;4BACDA,EAAEA,CAACA,CAACA,SAASA,CAACA,WAAWA,CAACA,CAACA,CAACA;gCACxBA,SAASA,EAAEA,CAACA;gCACZA,mBAAmBA,CAACA,SAASA,CAACA,WAAWA,CAACA,CAACA;gCAC3CA,KAAKA,CAACA,OAAOA,CAACA,CAACA;gCACfA,SAASA,CAACA,SAASA,CAACA,WAAWA,CAACA,CAACA;gCACjCA,KAAKA,CAACA,WAAWA,CAACA,CAACA;gCACnBA,oBAAoBA,CAACA,SAASA,CAACA,WAAWA,CAACA,CAACA;gCAC5CA,OAAOA,CAACA,SAASA,CAACA,WAAWA,CAACA,CAACA;gCAC/BA,oBAAoBA,CAACA,SAASA,CAACA,WAAWA,CA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;oBAC9CA,CAACA;gBACLA,CAACA,CAACA,CAACA;gBAEHA,IAAIA,IAAIA,GAAGA,8BAA2BA,CAACA,IAAIA,CAACA,CAACA;gBAI7CA,EAAEA,CAACA,CAACA,eAAeA,IAAIA,CAAgBA,IAAIA,CAACA,IAAIA,IAAIA,CAACA,kCAAkCA,CAACA,CAACA,CAACA;oBACtFA,MAAMA,CAACA;gBACXA,CAACA;gBAEDA,EAAEA,CAACA,CAACA,IAAIA,CAACA,CAACA,CAACA;oBACPA,mBAAmBA,CAACA,IAAIA,CAACA,CAACA;gBAC9BA,CAACA;gBACDA,SAASA,CAACA,IAAIA,IAAIA,IAAIA,CAACA,CAACA;gBAExBA,EAAEA,CAACA,CAACA,eAAeA,GAAGA,CAAgBA,CAACA,CAACA,CAACA;oBACrCA,KAAKA,CAACA,WAAWA,CAACA,CAACA;oBACnBA,mBAAmBA,CAACA,IAAIA,CAACA,CAACA;oBAC1BA,uBAAuBA,CAACA,IAAIA,CAACA,CAACA;gBAClCA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,KAAKA,CAACA,aAAaA,CAACA,CAACA;oBACrBA,EAAEA,CAACA,CAACA,IAAIA,CAACA,CAACA,CAACA;wBACPA,uBAAuBA,CAACA,IAAIA,CAACA,CAACA;oBAClCA,CAACA;oBACDA,IAAIA,CAACA,CAACA;wBAOFA,EAAEA,CAACA,CAACA,YAAYA,CAACA,CAACA,CAACA;4BACfA,KAAKA,CAACA,WAAWA,CAACA,CAACA;wBACvBA,CAACA;wBACDA,IAAIA,CAACA,CAACA;4BACFA,KAAKA,CAACA,IAAIA,CAACA,CAACA;wBAChBA,CAACA;oBACLA,CAACA;gBACLA,CAACA;gBAEDA,KAAKA,CAACA,IAAIA,CAACA,CAACA;gBACZA,cAAcA,CAACA,IAAIA,EAAEA,aAAaA,CAACA,CAACA;gBACpCA,cAAcA,EAAEA,CAACA;gBACjBA,EAAEA,CAACA,CAACA,IAAIA,CAACA,CAACA,CAACA;oBACPA,oBAAoBA,CAACA,IAAIA,CAACA,IAAIA,CAACA,UAAUA,CAACA,CAACA;gBAC/CA,CAACA;gBACDA,iCAAiCA,CAACA,IAAIA,CAACA,CAACA;gBACxCA,EAAEA,CAACA,CAACA,IAAIA,CAACA,CAACA,CAACA;oBACPA,2BAA2BA,CAACA,IAAIA,CAACA,CAACA;oBAClCA,iBAAiBA,CAACA,IAAIA,CAACA,CAACA;oBACxBA,EAAEA,CAACA,CAACA,YAAYA,CAACA,CAACA,CAACA;wBACfA,IAAIA,SAASA,GAAGA,oBAAoBA,CAACA,IAAIA,CAACA,CAACA;wBAC3CA,EAAEA,CAACA,CAACA,SAASA,CAACA,CAACA,CAACA;4BACZA,SAASA,EAAEA,CAACA;4BACZA,IAAIA,CAACA,SAASA,CAACA,CAACA;wBACpBA,CAACA;oBACLA,CAACA;oBACDA,gCAAgCA,CAACA,IAAIA,CAACA,CAACA;gBAC3CA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,EAAEA,CAACA,CAACA,YAAYA,CAACA,CAACA,CAACA;wBACfA,SAASA,EAAEA,CAACA;wBACZA,SAASA,CAACA,YAAYA,CAACA,CAACA;wBACxBA,EAAEA,CAACA,CAACA,eAAeA,GAAGA,CAAgBA,CAACA,CAACA,CAACA;4BACrCA,KAAKA,CAACA,gCAAgCA,CAACA,CAACA;wBAC5CA,CAACA;wBACDA,IAAIA,CAACA,CAACA;4BACFA,KAAKA,CAACA,iBAAiBA,CAACA,CAACA;wBAC7BA,CAACA;wBACDA,OAAOA,CAACA,YAAYA,CAACA,CAACA;oBAC1BA,CAACA;gBACLA,CAACA;gBACDA,qBAAqBA,CAACA,IAAIA,EAAgBA,CAACA,CAACA,CAACA;gBAC7CA,EAAEA,CAACA,CAACA,IAAIA,CAACA,CAACA,CAACA;oBACPA,IAAIA,UAAUA,GAAmBA,IAAIA,CAACA,IAAKA,CAACA,UAAUA,CAACA;oBACvDA,EAAEA,CAACA,CAACA,SAASA,CAACA,CAACA,CAACA;wBACZA,UAAUA,GAAGA,UAAUA,CAACA,KAAKA,CAACA,CAACA,CAACA,CAACA;oBACrCA,CAACA;oBACDA,SAASA,CAACA,UAAUA,CAACA,CAACA;gBAC1BA,CAACA;gBACDA,oBAAoBA,CAAaA,IAAIA,CAACA,CAACA;gBACvCA,SAASA,EAAEA,CAACA;gBACZA,EAAEA,CAACA,CAACA,IAAIA,CAACA,CAACA,CAACA;oBACPA,6BAA6BA,CAASA,IAAIA,CAACA,IAAKA,CAACA,UAAUA,CAACA,GAAGA,CAACA,CAACA;gBACrEA,CAACA;gBACDA,cAAcA,EAAEA,CAACA;gBACjBA,SAASA,CAACA,EAA0BA,EAAEA,IAAIA,GAAWA,IAAIA,CAACA,IAAKA,CAACA,UAAUA,CAACA,GAAGA,GAAGA,IAAIA,CAACA,OAAOA,CAACA,GAAGA,CAACA,CAACA;gBACnGA,YAAYA,EAAEA,CAACA;gBACfA,OAAOA,CAAOA,IAAIA,IAAIA,IAAIA,CAACA,CAACA;gBAC5BA,EAAEA,CAACA,CAACA,IAAIA,CAACA,CAACA,CAACA;oBACPA,oBAAoBA,CAACA,IAAIA,CAACA,CAACA;gBAC/BA,CAACA;gBAEDA,oBAAoBA,GAAGA,wBAAwBA,CAACA;gBAChDA,SAASA,GAAGA,aAAaA,CAACA;gBAC1BA,aAAaA,GAAGA,iBAAiBA,CAACA;gBAClCA,cAAcA,GAAGA,kBAAkBA,CAACA;YACxCA,CAACA;YAED/L,8BAA8BA,IAAsBA;gBAChDgM,EAAEA,CAACA,CAACA,eAAeA,GAAGA,CAAgBA,CAACA,CAACA,CAACA;oBACrCA,4BAA4BA,CAAmBA,IAAIA,CAACA,CAACA;gBACzDA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,mCAAmCA,CAAmBA,IAAIA,CAACA,CAACA;gBAChEA,CAACA;YACLA,CAACA;YAEDhM,6CAA6CA,IAAsBA;gBAC/DiM,IAAIA,mBAAmBA,GAAGA,kBAAeA,CAACA,IAAIA,CAACA,CAACA;gBAChDA,EAAEA,CAACA,CAACA,mBAAmBA,CAACA,CAACA,CAACA;oBAqDtBA,EAAEA,CAACA,CAACA,wBAAwBA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA,IAAIA,CAACA,KAAKA,GAAGA,GAAiBA,CAACA,CAACA,CAACA,CAACA;wBACtEA,KAAKA,CAACA,SAASA,CAACA,CAACA;oBACrBA,CAACA;oBAEDA,KAAKA,CAACA,MAAMA,CAACA,CAACA;oBACdA,mBAAmBA,CAACA,IAAIA,CAACA,CAACA;oBAC1BA,KAAKA,CAACA,KAAKA,CAACA,CAACA;gBACjBA,CAACA;gBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,wBAAwBA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;oBACtCA,KAAKA,CAACA,SAASA,CAACA,CAACA;oBACjBA,EAAEA,CAACA,CAACA,IAAIA,CAACA,KAAKA,GAAGA,GAAiBA,CAACA,CAACA,CAACA;wBACjCA,KAAKA,CAACA,UAAUA,CAACA,CAACA;oBACtBA,CAACA;gBACLA,CAACA;gBAEDA,KAAKA,CAACA,OAAOA,CAACA,CAACA;gBAGfA,EAAEA,CAACA,CAACA,CAACA,IAAIA,CAACA,IAAIA,IAAIA,CAACA,CAACA,IAAIA,CAACA,KAAKA,GAAGA,GAAiBA,CAACA,CAACA,IAAIA,CAACA,mBAAmBA,CAACA,CAACA,CAACA;oBAC3EA,KAAKA,CAACA,GAAGA,CAACA,CAACA;oBACXA,mBAAmBA,CAACA,IAAIA,CAACA,CAACA;gBAC9BA,CAACA;gBAEDA,IAAIA,YAAYA,GAAGA,uBAAoBA,CAACA,IAAIA,CAACA,CAACA;gBAC9CA,EAAEA,CAACA,CAACA,YAAYA,CAACA,CAACA,CAACA;oBACfA,KAAKA,CAACA,WAAWA,CAACA,CAACA;oBACnBA,IAAIA,CAACA,YAAYA,CAACA,QAAQA,CAACA,CAACA;gBAChCA,CAACA;gBAEDA,KAAKA,CAACA,IAAIA,CAACA,CAACA;gBACZA,cAAcA,EAAEA,CAACA;gBACjBA,cAAcA,CAACA,IAAIA,CAACA,CAACA;gBACrBA,SAASA,EAAEA,CAACA;gBACZA,eAAeA,CAACA,IAAIA,EAAEA,YAAYA,CAACA,CAACA;gBACpCA,kCAAkCA,CAACA,IAAIA,CAACA,CAACA;gBACzCA,cAAcA,EAAEA,CAACA;gBACjBA,SAASA,EAAEA,CAACA;gBACZA,SAASA,CAACA,EAA0BA,EAAEA,IAAIA,CAACA,OAAOA,CAACA,GAAGA,CAACA,CAACA;gBACxDA,YAAYA,EAAEA,CAACA;gBASfA,EAAEA,CAACA,CAACA,mBAAmBA,CAACA,CAACA,CAACA;oBACtBA,KAAKA,CAACA,GAAGA,CAACA,CAACA;oBACXA,EAAEA,CAACA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA,CAACA;wBACZA,SAASA,EAAEA,CAACA;wBACZA,KAAKA,CAACA,wBAAwBA,CAACA,CAACA;wBAChCA,mBAAmBA,CAACA,IAAIA,CAACA,CAACA;wBAC1BA,KAAKA,CAACA,yBAAyBA,CAACA,CAACA;wBACjCA,mBAAmBA,CAACA,IAAIA,CAACA,CAACA;wBAC1BA,KAAKA,CAACA,4BAA4BA,CAACA,CAACA;wBACpCA,SAASA,EAAEA,CAACA;oBAChBA,CAACA;gBACLA,CAACA;gBAODA,SAASA,EAAEA,CAACA;gBACZA,qBAAqBA,CAACA,IAAIA,EAAEA,GAAgBA,CAACA,CAACA;gBAC9CA,qBAAqBA,CAACA,IAAIA,CAACA,CAACA;gBAI5BA,EAAEA,CAACA,CAACA,CAACA,wBAAwBA,CAACA,IAAIA,CAACA,IAAIA,CAACA,IAAIA,CAACA,KAAKA,GAAGA,CAAgBA,CAACA,CAACA,CAACA,CAACA;oBACrEA,SAASA,EAAEA,CAACA;oBACZA,SAASA,CAACA,IAAIA,CAACA,CAACA;oBAChBA,oBAAoBA,CAACA,IAAIA,CAACA,CAACA;oBAC3BA,KAAKA,CAACA,KAAKA,CAACA,CAACA;oBACbA,mBAAmBA,CAACA,IAAIA,CAACA,CAACA;oBAC1BA,OAAOA,CAACA,IAAIA,CAACA,CAACA;oBACdA,KAAKA,CAACA,GAAGA,CAACA,CAACA;gBACfA,CAACA;gBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,wBAAwBA,CAACA,IAAIA,CAACA,IAAIA,CAACA,IAAIA,CAACA,KAAKA,GAAGA,GAAiBA,CAACA,IAAIA,mBAAmBA,CAACA,CAACA,CAACA;oBAEjGA,SAASA,EAAEA,CAACA;oBACZA,KAAKA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CAACA,MAAMA,CAACA,IAAIA,KAAKA,GAA8BA,CAACA,CAACA,CAACA;wBACjDA,KAAKA,CAACA,wBAAwBA,CAACA,CAACA;wBAChCA,SAASA,CAACA,MAAMA,CAACA,IAAIA,CAACA,CAACA;wBACvBA,qBAAqBA,CAACA,IAAIA,EAAEA,MAAMA,CAACA,CAACA;wBACpCA,KAAKA,CAACA,IAAIA,CAACA,CAACA;wBACZA,6BAA6BA,CAACA,MAAMA,CAACA,IAAIA,CAACA,CAACA;wBAC3CA,OAAOA,CAACA,MAAMA,CAACA,IAAIA,CAACA,CAACA;wBACrBA,KAAKA,CAACA,IAAIA,CAACA,CAACA;oBAChBA,CAACA;oBAEDA,iBAAiBA,CAACA,UAAUA,CAACA,CAACA;oBAC9BA,SAASA,CAACA,MAAMA,CAACA,IAAIA,CAACA,CAACA;oBACvBA,qBAAqBA,CAACA,IAAIA,EAAEA,MAAMA,CAACA,CAACA;oBACpCA,KAAKA,CAACA,IAAIA,CAACA,CAACA;oBACZA,6BAA6BA,CAACA,MAAMA,CAACA,IAAIA,CAACA,CAACA;oBAC3CA,OAAOA,CAACA,MAAMA,CAACA,IAAIA,CAACA,CAACA;oBAErBA,EAAEA,CAACA,CAACA,MAAMA,CAACA,IAAIA,KAAKA,GAA8BA,CAACA,CAACA,CAACA;wBACjDA,KAAKA,CAACA,oCAAoCA,CAACA,CAACA;wBAC5CA,SAASA,CAACA,MAAMA,CAACA,IAAIA,CAACA,CAACA;wBACvBA,qBAAqBA,CAACA,IAAIA,EAAEA,MAAMA,CAACA,CAACA;wBACpCA,KAAKA,CAACA,IAAIA,CAACA,CAACA;wBACZA,6BAA6BA,CAACA,MAAMA,CAACA,IAAIA,CAACA,CAACA;wBAC3CA,OAAOA,CAACA,MAAMA,CAACA,IAAIA,CAACA,CAACA;wBACrBA,KAAKA,CAACA,IAAIA,CAACA,CAACA;oBAChBA,CAACA;oBAEDA,KAAKA,CAACA,IAAIA,CAACA,CAACA;oBACZA,OAAOA,CAACA,MAAMA,CAACA,CAACA;oBAChBA,SAASA,EAAEA,CAACA;gBAChBA,CAACA,CAACA,CAACA;YACPA,CAACA;YAEDtM,oCAAoCA,IAAsBA,EAAEA,MAA+BA;gBACvFuM,UAAOA,CAACA,MAAMA,CAACA,UAAUA,EAAEA,UAACA,SAASA,EAAEA,cAAcA;oBACjDA,EAAEA,CAACA,CAACA,CAACA,kBAAeA,CAACA,SAASA,CAACA,CAACA,CAACA,CAACA;wBAC9BA,MAAMA,CAACA;oBACXA,CAACA;oBAuBDA,SAASA,EAAEA,CAACA;oBACZA,SAASA,CAACA,SAASA,CAACA,CAACA;oBACrBA,iBAAiBA,CAACA,SAASA,CAACA,UAAUA,CAACA,CAACA;oBACxCA,SAASA,CAACA,SAASA,CAACA,IAAIA,CAACA,CAACA;oBAE1BA,EAAEA,CAACA,CAACA,MAAMA,CAACA,IAAIA,KAAKA,GAAsBA,CAACA,CAACA,CAACA;wBACzCA,mBAAmBA,CAACA,IAAIA,CAACA,CAACA;wBAC1BA,KAAKA,CAACA,UAAUA,CAACA,CAACA;oBACtBA,CAACA;oBACDA,IAAIA,CAACA,CAACA;wBACFA,qBAAqBA,CAACA,IAAIA,EAAEA,MAAMA,CAACA,CAACA;wBACpCA,KAAKA,CAACA,IAAIA,CAACA,CAACA;wBACZA,6BAA6BA,CAACA,MAAMA,CAACA,IAAIA,CAACA,CAACA;oBAC/CA,CAACA;oBAEDA,KAAKA,CAACA,IAAIA,CAACA,CAACA;oBACZA,KAAKA,CAACA,MAAMA,CAACA,cAAcA,CAACA,CAACA,CAACA;oBAC9BA,OAAOA,CAACA,SAASA,CAACA,IAAIA,CAACA,CAACA;oBACxBA,KAAKA,CAACA,IAAIA,CAACA,CAACA;oBACZA,OAAOA,CAACA,SAASA,CAACA,CAACA;oBACnBA,SAASA,EAAEA,CAACA;gBAChBA,CAACA,CAACA,CAACA;YACPA,CAACA;YAEDvM,2BAA2BA,UAAuBA;gBAC9CwM,KAAKA,CAACA,cAAcA,CAACA,CAACA;gBACtBA,IAAIA,cAAcA,GAAGA,UAAUA,CAACA,MAAMA,CAACA;gBACvCA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,cAAcA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;oBACtCA,EAAEA,CAACA,CAACA,CAACA,GAAGA,CAACA,CAACA,CAACA,CAACA;wBACRA,KAAKA,CAACA,IAAIA,CAACA,CAACA;oBAChBA,CAACA;oBACDA,IAAIA,SAASA,GAAGA,UAAUA,CAACA,CAACA,CAACA,CAACA;oBAC9BA,SAASA,CAACA,SAASA,CAACA,CAACA;oBACrBA,IAAIA,CAACA,SAASA,CAACA,UAAUA,CAACA,CAACA;oBAC3BA,OAAOA,CAACA,SAASA,CAACA,CAACA;gBACvBA,CAACA;gBACDA,KAAKA,CAACA,KAAKA,CAACA,CAACA;YACjBA,CAACA;YAEDxM,kCAAkCA,IAA0BA;gBACxDyM,mCAAmCA,CAACA,IAAIA,CAACA,CAACA;YAC9CA,CAACA;YAEDzM,mCAAmCA,IAAqBA;gBACpD0M,IAAIA,WAAWA,GAAGA,UAAOA,CAACA,IAAIA,CAACA,CAACA;gBAChCA,MAAMA,CAACA,CAACA,WAAWA,IAAIA,eAAeA,CAACA,kBAAkBA,CAACA;YAC9DA,CAACA;YAED1M,6BAA6BA,IAAqBA;gBAE9C2M,EAAEA,CAACA,CAACA,CAACA,yBAAyBA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;oBACnCA,MAAMA,CAACA;gBACXA,CAACA;gBAEDA,EAAEA,CAACA,CAACA,CAACA,CAACA,IAAIA,CAACA,KAAKA,GAAGA,CAAgBA,CAACA,IAAIA,wBAAwBA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;oBACrEA,SAASA,CAACA,IAAIA,CAACA,CAACA;oBAChBA,EAAEA,CAACA,CAACA,wBAAwBA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;wBACjCA,KAAKA,CAACA,SAASA,CAACA,CAACA;oBACrBA,CAACA;oBACDA,KAAKA,CAACA,MAAMA,CAACA,CAACA;oBACdA,IAAIA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA;oBAChBA,OAAOA,CAACA,IAAIA,CAACA,CAACA;oBACdA,KAAKA,CAACA,GAAGA,CAACA,CAACA;gBACfA,CAACA;gBACDA,SAASA,EAAEA,CAACA;gBACZA,SAASA,CAACA,IAAIA,CAACA,CAACA;gBAChBA,KAAKA,CAACA,aAAaA,CAACA,CAACA;gBACrBA,SAASA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA;gBACrBA,KAAKA,CAACA,uBAAuBA,CAACA,IAAIA,CAACA,CAACA,CAACA;gBACrCA,OAAOA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA;gBACnBA,KAAKA,CAACA,KAAKA,CAACA,CAACA;gBACbA,cAAcA,EAAEA,CAACA;gBACjBA,cAAcA,CAACA,IAAIA,CAACA,CAACA;gBACrBA,SAASA,CAACA,IAAIA,CAACA,OAAOA,CAACA,CAACA;gBACxBA,cAAcA,EAAEA,CAACA;gBACjBA,SAASA,EAAEA,CAACA;gBACZA,SAASA,CAACA,EAA0BA,EAAEA,IAAIA,CAACA,OAAOA,CAACA,GAAGA,CAACA,CAACA;gBACxDA,YAAYA,EAAEA,CAACA;gBACfA,KAAKA,CAACA,IAAIA,CAACA,CAACA;gBACZA,oBAAoBA,CAACA,IAAIA,CAACA,CAACA;gBAC3BA,KAAKA,CAACA,OAAOA,CAACA,CAACA;gBACfA,oBAAoBA,CAACA,IAAIA,CAACA,CAACA;gBAC3BA,KAAKA,CAACA,UAAUA,CAACA,CAACA;gBAClBA,OAAOA,CAACA,IAAIA,CAACA,CAACA;gBACdA,EAAEA,CAACA,CAACA,CAACA,wBAAwBA,CAACA,IAAIA,CAACA,IAAIA,IAAIA,CAACA,KAAKA,GAAGA,CAAgBA,CAACA,CAACA,CAACA;oBACnEA,SAASA,EAAEA,CAACA;oBACZA,SAASA,CAACA,IAAIA,CAACA,CAACA;oBAChBA,KAAKA,CAACA,MAAMA,CAACA,CAACA;oBACdA,IAAIA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA;oBAChBA,KAAKA,CAACA,KAAKA,CAACA,CAACA;oBACbA,oBAAoBA,CAACA,IAAIA,CAACA,CAACA;oBAC3BA,OAAOA,CAACA,IAAIA,CAACA,CAACA;oBACdA,KAAKA,CAACA,GAAGA,CAACA,CAACA;gBACfA,CAACA;gBACDA,EAAEA,CAACA,CAACA,eAAeA,GAAGA,CAAgBA,IAAIA,IAAIA,CAACA,MAAMA,KAAKA,iBAAiBA,CAACA,CAACA,CAACA;oBAC1EA,2BAA2BA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA;gBAC3CA,CAACA;YACLA,CAACA;YAED3M,wBAAwBA,IAAgBA;gBACpC4M,IAAIA,UAAUA,GAAoBA,IAAIA,CAACA,MAAMA,CAACA;gBAC9CA,SAASA,CAACA,IAAIA,CAACA,CAACA;gBAChBA,KAAKA,CAACA,uBAAuBA,CAACA,UAAUA,CAACA,CAACA,CAACA;gBAC3CA,KAAKA,CAACA,GAAGA,CAACA,CAACA;gBACXA,KAAKA,CAACA,uBAAuBA,CAACA,UAAUA,CAACA,CAACA,CAACA;gBAC3CA,KAAKA,CAACA,GAAGA,CAACA,CAACA;gBACXA,6BAA6BA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA;gBACzCA,KAAKA,CAACA,MAAMA,CAACA,CAACA;gBACdA,+BAA+BA,CAACA,IAAIA,CAACA,CAACA;gBACtCA,KAAKA,CAACA,MAAMA,CAACA,CAACA;gBACdA,6BAA6BA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA;gBACzCA,OAAOA,CAACA,IAAIA,CAACA,CAACA;gBACdA,KAAKA,CAACA,GAAGA,CAACA,CAACA;YACfA,CAACA;YAED5M,yCAAyCA,MAAkBA;gBACvD6M,IAAIA,KAAKA,GAAGA,QAAQA,CAACA,gBAAgBA,CAACA,MAAMA,CAACA,CAACA;gBAC9CA,EAAEA,CAACA,CAACA,KAAKA,KAAKA,SAASA,CAACA,CAACA,CAACA;oBACtBA,KAAKA,CAACA,KAAKA,CAACA,QAAQA,EAAEA,CAACA,CAACA;oBACxBA,MAAMA,CAACA;gBACXA,CAACA;gBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,MAAMA,CAACA,WAAWA,CAACA,CAACA,CAACA;oBAC1BA,IAAIA,CAACA,MAAMA,CAACA,WAAWA,CAACA,CAACA;gBAC7BA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,KAAKA,CAACA,WAAWA,CAACA,CAACA;gBACvBA,CAACA;YACLA,CAACA;YAED7M,uDAAuDA,iBAAoCA;gBACvF8M,EAAEA,CAACA,CAACA,iBAAiBA,CAACA,IAAIA,CAACA,IAAIA,KAAKA,GAA4BA,CAACA,CAACA,CAACA;oBAC/DA,IAAIA,oBAAoBA,GAAGA,6CAA6CA,CAAoBA,iBAAiBA,CAACA,IAAIA,CAACA,CAACA;oBACpHA,MAAMA,CAACA,oBAAoBA,IAAuBA,iBAAiBA,CAACA,IAAIA,CAACA;gBAC7EA,CAACA;YACLA,CAACA;YAED9M,qCAAqCA,IAAuBA;gBACxD+M,MAAMA,CAACA,uBAAoBA,CAACA,IAAIA,EAAEA,eAAeA,CAACA,kBAAkBA,CAACA,CAACA;YAC1EA,CAACA;YAED/M,+BAA+BA,IAAuBA;gBAElDgN,IAAIA,UAAUA,GAAGA,2BAA2BA,CAACA,IAAIA,CAACA,CAACA;gBAEnDA,EAAEA,CAACA,CAACA,CAACA,UAAUA,CAACA,CAACA,CAACA;oBACdA,MAAMA,CAACA,mCAAmCA,CAACA,IAAIA,CAACA,CAACA;gBACrDA,CAACA;gBAEDA,SAASA,CAACA,IAAIA,CAACA,CAACA;gBAChBA,EAAEA,CAACA,CAACA,wBAAwBA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;oBACjCA,KAAKA,CAACA,SAASA,CAACA,CAACA;gBACrBA,CAACA;gBACDA,KAAKA,CAACA,MAAMA,CAACA,CAACA;gBACdA,IAAIA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA;gBAChBA,KAAKA,CAACA,GAAGA,CAACA,CAACA;gBACXA,OAAOA,CAACA,IAAIA,CAACA,CAACA;gBACdA,SAASA,EAAEA,CAACA;gBACZA,SAASA,CAACA,IAAIA,CAACA,CAACA;gBAChBA,KAAKA,CAACA,aAAaA,CAACA,CAACA;gBACrBA,SAASA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA;gBACrBA,KAAKA,CAACA,uBAAuBA,CAACA,IAAIA,CAACA,CAA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yBAAyBA,CAACA,CAACA,CAACA;4BAC5BA,IAAIA,CAACA,IAAIA,CAACA,YAAYA,CAACA,IAAIA,CAACA,CAACA;4BAC7BA,EAAEA,CAACA,CAACA,uBAAuBA,CAACA,CAACA,CAACA;gCAC1BA,KAAKA,CAACA,IAAIA,CAACA,CAACA;4BAChBA,CAACA;wBACLA,CAACA;wBACDA,EAAEA,CAACA,CAACA,uBAAuBA,CAACA,CAACA,CAACA;4BAC1BA,mBAAmBA,CAACA,IAAIA,CAACA,YAAYA,CAACA,aAAaA,CAACA,CAACA;4BACrDA,SAASA,CAACA,IAAIA,CAACA,YAAYA,CAACA,aAAaA,CAACA,CAACA;4BAC3CA,EAAEA,CAACA,CAACA,IAAIA,CAACA,YAAYA,CAACA,aAAaA,CAACA,IAAIA,KAAKA,GAA0BA,CAACA,CAACA,CAACA;gCACtEA,KAAKA,CAACA,OAAOA,CAACA,CAACA;gCACfA,IAAIA,CAAmBA,IAAIA,CAACA,YAAYA,CAACA,aAAcA,CAACA,IAAIA,CAACA,CAACA;4BAClEA,CAACA;4BACDA,IAAIA,CAACA,CAACA;gCACFA,KAAKA,CAACA,IAAIA,CAACA,CAACA;gCACZA,+BAA+BA,CAAgBA,IAAIA,CAACA,YAAYA,CAACA,aAAcA,CAACA,QAAQA,EAAEA,QAAQA,CAACA,4BAA4BA,CAACA,CAACA;gCACjIA,KAAKA,CAACA,IAAIA,CAACA,CAACA;4BAChBA,CAACA;4BACDA,OAAOA,CAACA,IAAIA,CAACA,YAAYA,CAACA,aAAaA,CAACA,CAACA;4BACzCA,oBAAoBA,CAACA,IAAIA,CAACA,YAAYA,CAACA,aAAaA,CAACA,CAACA;wBAC1DA,CAACA;wBAEDA,OAAOA,CAACA,IAAIA,CAACA,YAAYA,CAACA,CAACA;wBAC3BA,KAAKA,CAACA,QAAQA,CAACA,CAACA;wBAChBA,IAAIA,CAACA,IAAIA,CAACA,eAAeA,CAACA,CAACA;wBAC3BA,KAAKA,CAACA,GAAGA,CAACA,CAACA;oBACfA,CAACA;gBACLA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,KAAKA,CAACA,SAASA,CAACA,CAACA;oBACjBA,IAAIA,CAACA,IAAIA,CAACA,eAAeA,CAACA,CAACA;oBAC3BA,KAAKA,CAACA,GAAGA,CAACA,CAACA;gBACfA,CAACA;YACLA,CAACA;YAEDrN,uCAAuCA,IAAiDA;gBACpFsN,EAAEA,CAACA,CAACA,WAAQA,CAACA,eAAeA,EAAEA,IAAIA,CAACA,CAACA,CAACA,CAACA;oBAClCA,IAAIA,gBAAgBA,GAAGA,IAAIA,CAACA,IAAIA,KAAKA,GAAkCA,IAAIA,CAACA,IAAIA,CAACA,KAAKA,GAAGA,CAAgBA,CAACA,KAAKA,CAACA,CAACA;oBACjHA,IAAIA,oBAAoBA,GAAGA,2BAA2BA,CAACA,IAAIA,CAACA,CAACA;oBAE7DA,EAAEA,CAACA,CAACA,eAAeA,CAACA,MAAMA,KAAKA,CAAcA,CAACA,CAACA,CAACA;wBAC5CA,mBAAmBA,CAACA,IAAIA,CAACA,CAACA;wBAC1BA,SAASA,CAACA,IAAIA,CAACA,CAACA;wBAChBA,EAAEA,CAACA,CAACA,oBAAoBA,IAAIA,CAACA,eAAeA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;4BAGjDA,EAAEA,CAACA,CAACA,CAACA,gBAAgBA,CAACA;gCAACA,KAAKA,CAACA,MAAMA,CAACA,CAACA;4BACrCA,oBAAoBA,CAACA,oBAAoBA,CAACA,CAACA;4BAC3CA,KAAKA,CAACA,KAAKA,CAACA,CAACA;wBACjBA,CAACA;wBACDA,IAAIA,CAACA,CAACA;4BAMFA,IAAIA,aAAaA,GAAGA,GAA4BA,IAAIA,CAAqBA,IAAKA,CAACA,YAAYA,CAACA;4BAC5FA,EAAEA,CAACA,CAACA,CAACA,aAAaA,CAACA,CAACA,CAACA;gCACjBA,KAAKA,CAACA,MAAMA,CAACA,CAACA;gCACdA,KAAKA,CAACA,uBAAuBA,CAAoBA,IAAIA,CAACA,CAACA,CAACA;gCACxDA,KAAKA,CAACA,KAAKA,CAACA,CAACA;4BACjBA,CAACA;wBACLA,CAACA;wBACDA,WAAWA,CAACA,wBAAqBA,CAACA,IAAIA,CAACA,CAACA,CAACA;wBACzCA,EAAEA,CAACA,CAACA,oBAAoBA,IAAIA,eAAeA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;4BAEhDA,KAAKA,CAACA,IAAIA,CAACA,CAACA;4BACZA,oBAAoBA,CAACA,oBAAoBA,CAACA,CAACA;4BAC3CA,KAAKA,CAACA,KAAKA,CAACA,CAACA;4BACbA,KAAKA,CAACA,uBAAuBA,CAAoBA,IAAIA,CAACA,CAACA,CAACA;wBAC5DA,CAACA;wBACDA,KAAKA,CAACA,GAAGA,CAACA,CAACA;wBACXA,OAAOA,CAACA,IAAIA,CAACA,CAACA;wBACdA,2BAA2BA,CAACA,IAAIA,CAACA,CAACA;wBAClCA,oBAAoBA,CAACA,IAAIA,CAACA,CAACA;oBAC/BA,CAACA;oBACDA,IAAIA,CAACA,CAACA;wBACFA,EAAEA,CAACA,CAACA,gBAAgBA,CAACA,CAACA,CAACA;4BACnBA,oBAAoBA,CAACA,oBAAoBA,CAACA,CAACA;4BAC3CA,KAAKA,CAACA,KAAKA,CAACA,CAACA;4BACbA,IAAIA,CAACA,oBAAoBA,CAACA,IAAIA,CAACA,CAACA;4BAChCA,KAAKA,CAACA,GAAGA,CAACA,CAACA;wBACfA,CAACA;wBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,oBAAoBA,IAAIA,eAAeA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;4BAErDA,KAAKA,CAACA,MAAMA,CAACA,CAACA;4BACdA,oBAAoBA,CAACA,oBAAoBA,CAACA,CAACA;4BAC3CA,KAAKA,CAACA,KAAKA,CAACA,CAACA;4BACbA,KAAKA,CAACA,uBAAuBA,CAAoBA,IAAIA,CAACA,CAACA,CAACA;4BACxDA,KAAKA,CAACA,GAAGA,CAACA,CAACA;wBACfA,CAACA;wBACDA,2BAA2BA,CAACA,IAAIA,CAACA,CAACA;oBACtCA,CAACA;gBACLA,CAACA;YACLA,CAACA;YAEDtN,qCAAqCA,IAA6BA;gBAC9DuN,EAAEA,CAACA,CAACA,0CAAuCA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;oBAChDA,6BAA6BA,CAACA,IAAIA,CAACA,CAACA;oBACpCA,MAAMA,CAACA;gBACXA,CAACA;gBAIDA,EAAEA,CAACA,CAACA,QAAQA,CAACA,4BAA4BA,CAACA,IAAIA,CAACA;oBAC3CA,CAACA,CAACA,mBAAgBA,CAACA,iBAAiBA,CAACA,IAAIA,QAAQA,CAACA,yCAAyCA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA,CAACA;oBACrGA,mBAAmBA,CAACA,IAAIA,CAACA,CAACA;oBAC1BA,SAASA,CAACA,IAAIA,CAACA,CAACA;oBAChBA,EAAEA,CAACA,CAACA,wBAAwBA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;wBACjCA,KAAKA,CAACA,SAASA,CAACA,CAACA;wBACjBA,KAAKA,CAACA,MAAMA,CAACA,CAACA;oBAClBA,CAACA;oBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,CAACA,CAACA,IAAIA,CAACA,KAAKA,GAAGA,CAAgBA,CAACA,CAACA,CAACA,CAACA;wBACxCA,KAAKA,CAACA,MAAMA,CAACA,CAACA;oBAClBA,CAACA;oBACDA,oBAAoBA,CAACA,IAAIA,CAACA,CAACA;oBAC3BA,KAAKA,CAACA,KAAKA,CAACA,CAACA;oBACbA,IAAIA,CAACA,IAAIA,CAACA,eAAeA,CAACA,CAACA;oBAC3BA,KAAKA,CAACA,GAAGA,CAACA,CAACA;oBACXA,OAAOA,CAACA,IAAIA,CAACA,CAACA;oBACdA,2BAA2BA,CAACA,IAAIA,CAACA,CAACA;oBAClCA,oBAAoBA,CAACA,IAAIA,CAACA,CAACA;gBAC/BA,CAACA;YACLA,CAACA;YAEDvN,+BAA+BA,IAAuBA;gBAClDwN,EAAEA,CAACA,CAACA,eAAeA,GAAGA,CAAgBA,CAACA,CAACA,CAACA;oBACrCA,EAAEA,CAACA,CAACA,IAAIA,CAACA,eAAeA,IAAIA,CAACA,CAACA,IAAIA,CAACA,YAAYA,IAAIA,QAAQA,CAACA,uBAAuBA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA,CAACA;wBACzFA,SAASA,CAACA,IAAIA,CAACA,CAACA;wBAChBA,IAAIA,aAAaA,GAAGA,uBAAuBA,CAACA,IAAIA,CAACA,CAACA;wBAClDA,EAAEA,CAACA,CAACA,IAAIA,CAACA,YAAYA,CAACA,CAACA,CAACA;4BAEpBA,EAAEA,CAACA,CAACA,eAAeA,CAACA,MAAMA,KAAKA,CAAcA,CAACA,CAACA,CAACA;gCAC5CA,KAAKA,CAACA,MAAMA,CAACA,CAACA;gCACdA,KAAKA,CAACA,aAAaA,CAACA,CAACA;gCACrBA,KAAKA,CAACA,KAAKA,CAACA,CAACA;gCACbA,WAAWA,CAACA,wBAAqBA,CAACA,IAAIA,CAACA,CAACA,CAACA;gCACzCA,KAAKA,CAACA,GAAGA,CAACA,CAACA;4BACfA,CAACA;4BACDA,GAAGA,CAACA,CAAkBA,UAA0BA,EAA1BA,KAAAA,IAAIA,CAACA,YAAYA,CAACA,QAAQA,kBAA3CA,OAAaA,EAAbA,IAA2CA,CAACA;gCAA5CA,IAAIA,SAASA,SAAAA;gCACdA,EAAEA,CAACA,CAACA,QAAQA,CAACA,uBAAuBA,CAACA,SAASA,CAACA,CAACA,CAACA,CAACA;oCAC9CA,SAASA,EAAEA,CAACA;oCACZA,SAASA,CAACA,SAASA,CAACA,CAACA;oCACrBA,wBAAwBA,CAACA,SAASA,CAACA,CAACA;oCACpCA,KAAKA,CAACA,GAAGA,CAACA,CAACA;oCACXA,wBAAwBA,CAACA,SAASA,CAACA,IAAIA,CAACA,CAACA;oCACzCA,KAAKA,CAACA,KAAKA,CAACA,CAACA;oCACbA,KAAKA,CAACA,aAAaA,CAACA,CAACA;oCACrBA,KAAKA,CAACA,GAAGA,CAACA,CAACA;oCACXA,wBAAwBA,CAACA,SAASA,CAACA,YAAYA,IAAIA,SAASA,CAACA,IAAIA,CAACA,CAACA;oCACnEA,KAAKA,CAACA,GAAGA,CAACA,CAACA;oCACXA,OAAOA,CAACA,SAASA,CAACA,CAACA;gCACvBA,CAACA;6BACJA;wBACLA,CAACA;wBACDA,IAAIA,CAACA,CAACA;4BAEFA,SAASA,EAAEA,CAACA;4BACZA,KAAKA,CAACA,WAAWA,CAACA,CAACA;4BACnBA,EAAEA,CAACA,CAACA,eAAeA,CAACA,MAAMA,KAAKA,CAAcA,CAACA,CAACA,CAACA;gCAC5CA,WAAWA,CAACA,wBAAqBA,CAACA,IAAIA,CAACA,CAACA,CAACA;4BAC7CA,CAACA;4BACDA,IAAIA,CAACA,CAACA;gCACFA,KAAKA,CAACA,aAAaA,CAACA,CAACA;4BACzBA,CAACA;4BACDA,KAAKA,CAACA,IAAIA,CAACA,CAACA;wBAChBA,CAACA;wBACDA,OAAOA,CAACA,IAAIA,CAACA,CAACA;oBAClBA,CAACA;gBACLA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,EAAEA,CAACA,CAACA,CAACA,IAAIA,CAACA,YAAYA,IAAIA,QAAQA,CAACA,uBAAuBA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;wBAC/DA,SAASA,CAACA,IAAIA,CAACA,CAACA;wBAChBA,KAAKA,CAACA,SAASA,CAACA,CAACA;wBACjBA,EAAEA,CAACA,CAACA,IAAIA,CAACA,YAAYA,CAACA,CAACA,CAACA;4BAEpBA,KAAKA,CAACA,IAAIA,CAACA,CAACA;4BACZA,+BAA+BA,CAACA,IAAIA,CAACA,YAAYA,CAACA,QAAQA,EAAEA,QAAQA,CAACA,uBAAuBA,CAACA,CAACA;4BAC9FA,KAAKA,CAACA,IAAIA,CAACA,CAACA;wBAChBA,CAACA;wBACDA,IAAIA,CAACA,CAACA;4BACFA,KAAKA,CAACA,GAAGA,CAACA,CAACA;wBACfA,CAACA;wBACDA,EAAEA,CAACA,CAACA,IAAIA,CAACA,eAAeA,CAACA,CAACA,CAACA;4BACvBA,KAAKA,CAACA,QAAQA,CAACA,CAACA;4BAChBA,wBAAwBA,CAACA,IAAIA,CAACA,eAAeA,CAACA,CAACA;wBACnDA,CAACA;wBACDA,KAAKA,CAACA,GAAGA,CAACA,CAACA;wBACXA,OAAOA,CAACA,IAAIA,CAACA,CAACA;oBAClBA,CAACA;gBACLA,CAACA;YACLA,CAACA;YAEDxN,yCAAyCA,UAAqCA,EAAEA,UAAmCA;gBAC/GyN,QAAKA,CAACA,MAAMA,CAACA,eAAeA,IAAIA,CAAgBA,CAACA,CAACA;gBAElDA,IAAIA,UAAUA,GAAGA,KAAKA,CAACA;gBACvBA,GAAGA,CAACA,CAAkBA,UAAUA,0BAA3BA,OAAaA,EAAbA,IAA2BA,CAACA;oBAA5BA,IAAIA,SAASA,GAAIA,UAAUA,IAAdA;oBACdA,EAAEA,CAACA,CAACA,UAAUA,CAACA,SAASA,CAACA,CAACA,CAACA,CAACA;wBACxBA,EAAEA,CAACA,CAACA,UAAUA,CAACA,CAACA,CAACA;4BACbA,KAAKA,CAACA,IAAIA,CAACA,CAACA;wBAChBA,CAACA;wBACDA,SAASA,CAACA,SAASA,CAACA,CAACA;wBACrBA,EAAEA,CAACA,CAACA,SAASA,CAACA,YAAYA,CAACA,CAACA,CAACA;4BACzBA,wBAAwBA,CAACA,SAASA,CAACA,YAAYA,CAACA,CAACA;4BACjDA,KAAKA,CAACA,MAAMA,CAACA,CAACA;wBAClBA,CAACA;wBACDA,wBAAwBA,CAACA,SAASA,CAACA,IAAIA,CAACA,CAACA;wBACzCA,OAAOA,CAACA,SAASA,CAACA,CAACA;wBACnBA,UAAUA,GAAGA,IAAIA,CAACA;oBACtBA,CAACA;iBACJA;YACLA,CAACA;YAEDzN,8BAA8BA,IAAsBA;gBAChD0N,EAAEA,CAACA,CAACA,CAACA,IAAIA,CAACA,cAAcA,IAAIA,QAAQA,CAACA,uBAAuBA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;oBACjEA,EAAEA,CAACA,CAACA,eAAeA,IAAIA,CAAgBA,CAACA,CAACA,CAACA;wBACtCA,SAASA,EAAEA,CAACA;wBACZA,SAASA,CAACA,IAAIA,CAACA,CAACA;wBAChBA,KAAKA,CAACA,iBAAiBA,CAACA,CAACA;wBACzBA,IAAIA,UAAUA,GAAGA,IAAIA,CAACA,UAAUA,CAACA;wBACjCA,IAAIA,CAACA,UAAUA,CAACA,CAACA;wBACjBA,EAAEA,CAACA,CAACA,UAAUA,CAACA,IAAIA,KAAKA,GAA8BA;4BAClDA,UAAUA,CAACA,IAAIA,KAAKA,GAA2BA,CAACA,CAACA,CAACA;4BAClDA,KAAKA,CAACA,GAAGA,CAACA,CAACA;wBACfA,CAACA;wBACDA,OAAOA,CAACA,IAAIA,CAACA,CAACA;oBAClBA,CAACA;oBACDA,IAAIA,CAACA,CAACA;wBACFA,SAASA,EAAEA,CAACA;wBACZA,SAASA,CAACA,IAAIA,CAACA,CAACA;wBAChBA,wBAAwBA,CAACA,IAAIA,CAACA,CAACA;wBAC/BA,KAAKA,CAACA,aAAaA,CAACA,CAACA;wBACrBA,IAAIA,CAACA,IAAIA,CAACA,UAAUA,CAACA,CAACA;wBACtBA,KAAKA,CAACA,GAAGA,CAACA,CAACA;wBACXA,OAAOA,CAACA,IAAIA,CAACA,CAACA;oBAClBA,CAACA;gBACLA,CAACA;YACLA,CAACA;YAED1N,mCAAmCA,UAAsBA;gBACrD2N,eAAeA,GAAGA,EAAEA,CAACA;gBACrBA,gBAAgBA,GAAGA,EAAEA,CAACA;gBACtBA,YAAYA,GAAGA,SAASA,CAACA;gBACzBA,cAAcA,GAAGA,KAAKA,CAACA;gBACvBA,GAAGA,CAACA,CAAaA,UAAqBA,EAArBA,KAAAA,UAAUA,CAACA,UAAUA,kBAAjCA,OAAQA,EAARA,IAAiCA,CAACA;oBAAlCA,IAAIA,IAAIA,SAAAA;oBACTA,MAAMA,CAACA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA,CAACA;wBAChBA,KAAKA,GAA4BA;4BAC7BA,EAAEA,CAACA,CAACA,CAAqBA,IAAKA,CAACA,YAAYA;gCACvCA,QAAQA,CAACA,4BAA4BA,CAAqBA,IAAKA,CAACA,YAAYA,EAAoBA,IAAIA,CAACA,CAACA,CAACA,CAACA;gCAKxGA,eAAeA,CAACA,IAAIA,CAAoBA,IAAIA,CAACA,CAACA;4BAClDA,CAACA;4BACDA,KAAKA,CAACA;wBACVA,KAAKA,GAAkCA;4BACnCA,EAAEA,CAACA,CAA2BA,IAAKA,CAACA,eAAeA,CAACA,IAAIA,KAAKA,GAAkCA,IAAIA,QAAQA,CAACA,4BAA4BA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;gCAE7IA,eAAeA,CAACA,IAAIA,CAA0BA,IAAIA,CAACA,CAACA;4BACxDA,CAACA;4BACDA,KAAKA,CAACA;wBACVA,KAAKA,GAA4BA;4BAC7BA,EAAEA,CAACA,CAAqBA,IAAKA,CAACA,eAAeA,CAACA,CAACA,CAACA;gCAC5CA,EAAEA,CAACA,CAACA,CAAqBA,IAAKA,CAACA,YAAYA,CAACA,CAACA,CAACA;oCAE1CA,eAAeA,CAACA,IAAIA,CAAoBA,IAAIA,CAACA,CAACA;oCAC9CA,cAAcA,GAAGA,IAAIA,CAACA;gCAC1BA,CAACA;gCACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,QAAQA,CAACA,uBAAuBA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;oCAE9CA,eAAeA,CAACA,IAAIA,CAAoBA,IAAIA,CAACA,CAACA;gCAClDA,CAACA;4BACLA,CAACA;4BACDA,IAAIA,CAACA,CAACA;gCAEFA,GAAGA,CAACA,CAAkBA,UAA+CA,EAA/CA,KAAoBA,IAAKA,CAACA,YAAYA,CAACA,QAAQA,kBAAhEA,OAAaA,EAAbA,IAAgEA,CAACA;oCAAjEA,IAAIA,SAASA,SAAAA;oCACdA,IAAIA,OAAIA,GAAGA,CAACA,SAASA,CAACA,YAAYA,IAAIA,SAASA,CAACA,IAAIA,CAACA,CAACA,IAAIA,CAACA;oCAC3DA,CAACA,gBAAgBA,CAACA,OAAIA,CAACA,IAAIA,CAACA,gBAAgBA,CAACA,OAAIA,CAACA,GAAGA,EAAEA,CAACA,CAACA,CAACA,IAAIA,CAACA,SAASA,CAACA,CAACA;iCAC7EA;4BACLA,CAACA;4BACDA,KAAKA,CAACA;wBACVA,KAAKA,GAA2BA;4BAC5BA,EAAEA,CAACA,CAAoBA,IAAKA,CAACA,cAAcA,IAAIA,CAACA,YAAYA,CAACA,CAACA,CAACA;gCAE3DA,YAAYA,GAAqBA,IAAIA,CAACA;4BAC1CA,CAACA;4BACDA,KAAKA,CAACA;oBACdA,CAACA;iBACJA;YACLA,CAACA;YAED3N,wBAAwBA,UAA0CA;gBAE9D4N,MAAMA,CAACA,UAAUA,CAACA,IAAIA,CAACA,UAACA,OAAOA,EAAEA,OAAOA;oBACpCA,EAAEA,CAACA,CAACA,OAAOA,CAACA,IAAIA,KAAKA,OAAOA,CAACA,IAAIA,CAACA,CAACA,CAACA;wBAChCA,MAAMA,CAACA,CAACA,CAACA;oBACbA,CAACA;oBAACA,IAAIA,CAACA,EAAEA,CAACA,CAACA,CAACA,OAAOA,CAACA,IAAIA,CAACA,CAACA,CAACA;wBACvBA,MAAMA,CAACA,CAACA,CAACA;oBACbA,CAACA;oBAACA,IAAIA,CAACA,CAACA;wBACJA,MAAMA,CAACA,CAACA,CAACA,CAACA;oBACdA,CAACA;gBACLA,CAACA,CAACA,CAACA;YACPA,CAACA;YAED5N;gBACI6N,EAAEA,CAACA,CAACA,cAAcA,CAACA,CAACA,CAACA;oBACjBA,SAASA,EAAEA,CAACA;oBACZA,KAAKA,CAACA,wBAAwBA,CAACA,CAACA;oBAChCA,cAAcA,EAAEA,CAACA;oBACjBA,SAASA,EAAEA,CAACA;oBACZA,KAAKA,CAACA,qEAAqEA,CAACA,CAACA;oBAC7EA,cAAcA,EAAEA,CAACA;oBACjBA,SAASA,EAAEA,CAACA;oBACZA,KAAKA,CAACA,GAAGA,CAACA,CAACA;gBACfA,CAACA;YACLA,CAACA;YAED7N,uBAAuBA,IAAgBA,EAAEA,UAAkBA;gBACvD8N,yBAAyBA,CAACA,IAAIA,CAACA,CAACA;gBAChCA,SAASA,EAAEA,CAACA;gBACZA,KAAKA,CAACA,SAASA,CAACA,CAACA;gBACjBA,cAAcA,CAACA,IAAIA,CAACA,eAAeA,CAACA,CAACA;gBACrCA,EAAEA,CAACA,CAACA,IAAIA,CAACA,aAAaA,CAACA,CAACA,CAACA;oBACrBA,KAAKA,CAACA,IAAIA,GAAGA,IAAIA,CAACA,aAAaA,GAAGA,MAAMA,CAACA,CAACA;gBAC9CA,CAACA;gBACDA,KAAKA,CAACA,2BAA2BA,CAACA,CAACA;gBACnCA,GAAGA,CAACA,CAAmBA,UAAeA,+BAAjCA,OAAcA,EAAdA,IAAiCA,CAACA;oBAAlCA,IAAIA,UAAUA,GAAIA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AAKA,CAACA,CAACA,CAACA,CAACA;oBACpBA,EAAEA,CAACA,CAACA,IAAIA,CAACA,MAAMA,CAACA,CAACA,CAACA;wBACdA,SAASA,EAAEA,CAACA;wBACZA,KAAKA,CAACA,IAAIA,CAACA,CAACA;oBAChBA,CAACA;gBACLA,CAACA;YACLA,CAACA;YAEDnO,4BAA4BA,IAAgBA;gBAExCoO,SAASA,EAAEA,CAACA;gBACZA,oBAAoBA,CAACA,IAAIA,CAACA,CAACA;gBAG3BA,IAAIA,UAAUA,GAAGA,sBAAsBA,CAACA,IAAIA,CAACA,UAAUA,EAAuBA,KAAKA,CAACA,CAACA;gBAGrFA,EAAEA,CAACA,CAACA,CAACA,eAAeA,GAAGA,CAAgBA,CAACA,IAAIA,CAACA,CAACA,cAAcA,IAAIA,QAAQA,CAACA,iBAAiBA,CAACA,IAAIA,CAACA,GAAGA,CAA0BA,CAACA,CAACA,CAACA,CAACA;oBAC7HA,SAASA,EAAEA,CAACA;oBACZA,KAAKA,CAACA,qDAAqDA,CAACA,CAACA;oBAC7DA,cAAcA,EAAEA,CAACA;oBACjBA,SAASA,EAAEA,CAACA;oBACZA,KAAKA,CAACA,wDAAwDA,CAACA,CAACA;oBAChEA,SAASA,EAAEA,CAACA;oBACZA,KAAKA,CAACA,yCAAyCA,CAACA,CAACA;oBACjDA,SAASA,EAAEA,CAACA;oBACZA,KAAKA,CAACA,6BAA6BA,CAACA,CAACA;oBACrCA,SAASA,EAAEA,CAACA;oBACZA,KAAKA,CAACA,yBAAyBA,CAACA,CAACA;oBACjCA,cAAcA,EAAEA,CAACA;oBACjBA,SAASA,EAAEA,CAACA;oBACZA,KAAKA,CAACA,IAAIA,CAACA,CAACA;oBACZA,cAAcA,GAAGA,IAAIA,CAACA;gBAC1BA,CAACA;gBACDA,EAAEA,CAACA,CAACA,CAACA,eAAeA,IAAIA,QAAQA,CAACA,iBAAiBA,CAACA,IAAIA,CAACA,GAAGA,GAA2BA,CAACA,CAACA,CAACA;oBACrFA,WAAWA,CAACA,imBAa7BA,CAACA,CAACA;oBACeA,eAAeA,GAAGA,IAAIA,CAACA;gBAC3B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,CAACA,SAASA,EAAEA,KAAKA,CAACA,IAAIA,CAACA,CAACA,CAACA;gBACpIA,CAACA;YACLA,CAACA;YAEDA,IAAIA,WAAWA,GAAGA,KAAKA,CAACA,WAAWA,CAACA;YACpCA,EAAEA,CAACA,CAACA,WAAWA,CAACA,CAACA,CAACA;gBACdA,EAAEA,CAACA,CAACA,KAAKA,GAAGA,CAACA,CAACA,CAACA,CAACA;oBAQZA,IAAIA,SAASA,GAAGA,YAAYA,CAACA,SAASA,CAACA,CAACA;oBACxCA,GAAGA,CAACA,CAAaA,UAASA,yBAArBA,OAAQA,EAARA,IAAqBA,CAACA;wBAAtBA,IAAIA,IAAIA,GAAIA,SAASA,IAAbA;wBACTA,EAAEA,CAACA,CAACA,cAAcA,CAACA,SAASA,EAAEA,IAAIA,EAAEA,KAAKA,CAACA,IAAIA,EAAkBA,IAAIA,CAACA,CAACA,CAACA,CAACA;4BACpEA,MAAMA,CAACA,kBAAkBA,CAACA,gBAAgBA,CAACA,SAASA,EAAEA,mBAAmBA,EAChDA,cAAcA,CAACA,SAASA,EAAEA,IAAIA,EAAEA,KAAKA,CAACA,IAAIA,EAAkBA,KAAKA,CAACA,CAACA,CAACA;wBACjGA,CAACA;qBACJA;gBACLA,CAACA;YACLA,CAACA;YACDA,IAAIA,CAACA,CAACA;gBAIFA,EAAEA,CAACA,CAACA,SAASA,CAACA,OAAOA,CAACA,KAAKA,CAACA,IAAIA,CAACA,GAAGA,CAACA,CAACA,CAACA,CAACA;oBACpCA,MAAMA,CAACA,kBAAkBA,CAACA,gBAAgBA,CAACA,SAASA,EAAEA,mBAAmBA,EAAuBA,IAAIA,CAACA,CAACA;gBAC1GA,CAACA;YACLA,CAACA;YAEDA,EAAEA,CAACA,CAACA,CAACA,WAAWA,CAACA,CAACA,CAACA;gBAEfA,EAAEA,CAACA,CAACA,KAAKA,CAACA,cAAcA,CAACA,MAAMA,GAAGA,CAACA,CAACA,CAACA,CAACA;oBAClCA,IAAIA,cAAcA,GAAGA,YAAYA,CAACA,SAASA,CAACA,CAACA;oBAC7CA,IAAIA,eAAeA,GAAGA,iBAAiBA,CAACA,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AACA,CAACA,CAACA;4BAEzCA,IAAIA,SAASA,GAAGA,gCAAgCA,CAACA,QAAQA,EAA6BA,CAACA,CAACA,CAACA;4BACzFA,MAAMA,CAACA,SAASA,IAAIA,kBAAkBA,CAACA,SAASA,CAACA,CAAAA;wBACrDA,CAACA;wBACDA,IAAIA,CAACA,CAACA;4BAEFA,MAAMA,CAACA,IAAIA,CAACA,KAAKA,CAACA,CAACA;wBACvBA,CAACA;oBACLA,CAACA;gBACLA,CAACA;YACLA,CAACA;YAEDA,QAAKA,CAACA,MAAMA,CAACA,SAASA,KAAKA,SAASA,IAAIA,CAACA,CAACA,IAAIA,KAAKA,GAAqBA,CAACA,CAACA;YAM1EA,EAAEA,CAACA,CAACA,QAAQA,CAACA,MAAMA,CAACA,CAACA,CAACA;gBAClBA,IAAIA,SAASA,GAAGA,gCAAgCA,CAACA,QAAQA,EAA6BA,QAAQA,CAACA,MAAMA,CAACA,CAACA;gBACvGA,MAAMA,CAACA,SAASA,IAAIA,kBAAkBA,CAACA,SAASA,CAACA,CAACA;YACtDA,CAACA;QACLA,CAACA;QAGDF,0CAA0CA,QAAgBA,EAAEA,sBAA8BA;YACtFG,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,sBAAsBA,GAAGA,CAACA,EAAEA,CAACA,IAAIA,CAACA,EAAEA,EAAEA,CAACA,EAAEA,CAACA;gBACnDA,EAAEA,CAACA,CAACA,aAAaA,CAACA,QAAQA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA;oBAC7BA,MAAMA,CAACA,QAAQA,CAACA,CAACA,CAACA,CAACA;gBACvBA,CAACA;YACLA,CAACA;QACLA,CAACA;IACLH,CAACA;IAzDehuD,qBAAkBA,qBAyDjCA,CAAAA;IAEDA,uBAAuBA,CAAOA;QAG1BouD,MAAMA,CAACA,CAACA,CAACA,QAAQA,EAAEA,KAAKA,CAACA,CAACA;IAC9BA,CAACA;IAEDpuD,0BAAiCA,IAAUA;QACvCquD,IAAIA,KAAKA,GAAGA,uBAAoBA,CAACA,IAAIA,CAACA,CAACA;QACvCA,IAAIA,MAAMA,GAAaA,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CA,CAACA;gBAACA,MAAMA,CAACA,wBAAqBA,CAACA,YAAYA,CAACA;YAACA,CAACA;YACrFA,IAAIA,CAACA,EAAEA,CAACA,CAACA,KAAKA,GAAGA,KAAuBA,CAACA,CAACA,CAACA;gBAACA,MAAMA,CAACA,wBAAqBA,CAACA,YAAYA,CAACA;YAACA,CAACA;YACxFA,IAAIA,CAACA,EAAEA,CAACA,CAACA,KAAKA,GAAGA,KAAuBA,CAACA,CAACA,CAACA;gBAACA,MAAMA,CAACA,wBAAqBA,CAACA,YAAYA,CAACA;YAACA,CAACA;YACxFA,IAAIA,CAACA,EAAEA,CAACA,CAACA,KAAKA,GAAGA,CAAsBA,CAACA,CAACA,CAACA;gBAACA,MAAMA,CAACA,wBAAqBA,CAACA,cAAcA,CAACA;YAACA,CAACA;YACzFA,IAAIA,CAACA,EAAEA,CAACA,CAACA,KAAKA,GAAGA,EAAoBA,CAACA,CAACA,CAACA;gBAACA,MAAMA,CAACA,wBAAqBA,CAACA,YAAYA,CAACA;YAACA,CAACA;YACrFA,IAAIA,CAACA,EAAEA,CAACA,CAACA,KAAKA,GAAGA,EAAiBA,CAACA,CAACA,CAACA;gBAACA,MAAMA,CAACA,wBAAqBA,CAACA,SAASA,CAACA;YAACA,CAACA;YAC/EA,IAAIA,CAACA,EAAEA,CAACA,CAACA,KAAKA,GAAGA,EAAqBA,CAACA,CAACA,CAACA;gBAACA,MAAMA,CAACA,wBAAqBA,CAACA,aAAaA,CAACA;YAACA,CAACA;YACvFA,IAAIA,CAACA,EAAEA,CAACA,CAACA,KAAKA,GAAGA,GAAgBA,CAACA,CAACA,CAACA;gBAACA,MAAMA,CAACA,wBAAqBA,CAACA,QAAQA,CAACA;YAACA,CAACA;YAC7EA,IAAIA,CAACA,EAAEA,CAACA,CAACA,KAAKA,GAAGA,IAAkBA,CAACA,CAACA,CAACA;gBAACA,MAAMA,CAACA,wBAAqBA,CAACA,UAAUA,CAACA;YAACA,CAACA;YACjFA,IAAIA,CAACA,EAAEA,CAACA,CAACA,KAAKA,GAAGA,IAAkBA,CAACA,CAACA,CAACA;gBAACA,MAAMA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AACA,mBAAmBA,CAACA,CAACA;oBACjDA,KAAKA,CAACA,IAAIA,CAACA,IAAIA,CAACA,WAAWA,CAACA,qBAAqBA,CAACA,CAACA;oBACnDA,KAAKA,CAACA,IAAIA,CAACA,IAAIA,CAACA,WAAWA,CAACA,oBAAoBA,CAACA,CAACA;gBACtDA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,KAAKA,CAACA,IAAIA,CAACA,IAAIA,CAACA,WAAWA,CAACA,qBAAqBA,CAACA,CAACA;oBACnDA,KAAKA,CAACA,IAAIA,CAACA,IAAIA,CAACA,WAAWA,CAACA,uBAAuBA,CAACA,CAACA;oBACrDA,KAAKA,CAACA,IAAIA,CAACA,IAAIA,CAACA,WAAWA,CAACA,oBAAoBA,CAACA,CAACA;gBACtDA,CAACA;gBAEDA,EAAEA,CAACA,CAACA,OAAOA,CAACA,wCAAwCA,CAACA,CAACA,CAACA;oBACnDA,KAAKA,CAACA,IAAIA,CAACA,IAAIA,CAACA,WAAWA,CAACA,wBAAwBA,CAACA,CAACA;gBAC1DA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,KAAKA,CAACA,IAAIA,CAACA,IAAIA,CAACA,WAAWA,CAACA,0BAA0BA,CAACA,CAACA;gBAC5DA,CAACA;gBAEDA,EAAEA,CAACA,CAACA,OAAOA,CAACA,wCAAwCA,CAACA,CAACA,CAACA;oBACnDA,KAAKA,CAACA,IAAIA,CAACA,IAAIA,CAACA,WAAWA,CAACA,yBAAyBA,CAACA,CAACA;oBACvDA,KAAKA,CAACA,IAAIA,CAACA,IAAIA,CAACA,WAAWA,CAACA,wBAAwBA,CAACA,CAACA;gBAC1DA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,KAAKA,CAACA,IAAIA,CAACA,IAAIA,CAACA,WAAWA,CAACA,2BAA2BA,CAACA,CAACA;oBACzDA,KAAKA,CAACA,IAAIA,CAACA,IAAIA,CAACA,WAAWA,CAACA,0BAA0BA,CAACA,CAACA;gBAC5DA,CAACA;gBAEDA,EAAEA,CAACA,CAACA,OAAOA,CAACA,uCAAuCA,CAACA,CAACA,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,MAAMA,CAACA,KAAKA,GAAGA,IAAqBA,CAACA,IAAIA,CAACA,aAAaA,KAAKA,EAA0BA,IAAIA,aAAaA,KAAKA,EAA0BA,CAACA,CAACA,CAACA,CAACA;gBAG3IA,MAAMA,CAACA,SAASA,CAACA;YACrBA,CAACA;YAEDA,EAAEA,CAACA,CAACA,WAAWA,IAAIA,WAAWA,CAACA,MAAMA,IAAIA,CAACA,IAAIA,aAAaA,KAAKA,WAAWA,CAACA,UAAUA,CAACA,WAAWA,CAACA,MAAMA,GAAGA,CAACA,CAACA;gBAC1GA,CAACA,aAAaA,KAAKA,EAA0BA,IAAIA,aAAaA,KAAKA,EAA0BA,CAACA,CAACA,CAACA,CAACA;gBAGjGA,WAAWA,GAAGA,WAAWA,CAACA,SAASA,CAACA,CAACA,EAAEA,WAAWA,CAACA,MAAMA,GAAGA,CAACA,CAACA,CAACA;YACnEA,CAACA;YAEDA,EAAEA,CAACA,CAACA,CAACA,WAAWA,CAACA,CAACA,CAACA;gBACfA,MAAMA,CAACA,SAASA,CAACA;YACrBA,CAACA;YAEDA,EAAEA,CAACA,CAACA,sBAAsBA,CAACA,CAACA,CAACA;gBACzBA,EAAEA,CAACA,CAACA,CAACA,oBAAiBA,CAACA,WAAWA,CAACA,UAAUA,CAACA,CAACA,CAACA,EAAEA,MAAMA,CAACA,CAACA,CAACA,CAACA;oBACxDA,MAAMA,CAACA,SAASA,CAACA;gBACrBA,CAACA;gBAEDA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,WAAWA,CAACA,MAAMA,EAAEA,CAACA,GAAGA,CAACA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;oBACjDA,EAAEA,CAACA,CAACA,CAACA,mBAAgBA,CAACA,WAAWA,CAACA,UAAUA,CAACA,CAACA,CAACA,EAAEA,MAAMA,CAACA,CAACA,CAACA,CAACA;wBACvDA,MAAMA,CAACA,SAASA,CAACA;oBACrBA,CAACA;gBACLA,CAACA;YACLA,CAACA;YAEDA,MAAMA,CAACA,qBAAkBA,CAACA,WAAWA,CAACA,CAACA;QAC3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,CAACA,CAACA,CAACA;gCACvCA,UAAUA,GAAGA,iBAAiBA,CAACA,KAAKA,CAACA;gCACrCA,YAAYA,CAACA,UAAUA,CAACA,CAACA;gCACzBA,YAAYA,CAACA,IAAIA,CAACA,YAASA,EAAEA,CAACA,CAACA;gCAC/BA,EAAEA,CAACA,CAACA,sBAAsBA,CAACA,CAACA,CAACA;oCACzBA,YAAYA,CAACA,IAAIA,CAACA,cAAWA,CAACA,EAAqBA,CAACA,CAACA,CAACA;oCACtDA,YAAYA,CAACA,IAAIA,CAACA,YAASA,EAAEA,CAACA,CAACA;gCACnCA,CAACA;gCACDA,iBAAiBA,CAACA,MAAMA,CAACA,CAACA;4BAC9BA,CAACA;4BACDA,IAAIA,CAACA,CAACA;gCACFA,4BAA4BA,CAACA,MAAMA,EAAEA,UAAUA,CAACA,CAACA;4BACrDA,CAACA;4BAEDA,MAAMA,CAACA,CAACA,UAAUA,CAACA,CAACA,CAACA;gCACjBA,KAAKA,iBAAiBA,CAACA,qBAAqBA,CAACA;gCAC7CA,KAAKA,iBAAiBA,CAACA,eAAeA,CAACA;gCACvCA,KAAKA,iBAAiBA,CAACA,YAAYA,CAACA;gCACpCA,KAAKA,iBAAiBA,CAACA,UAAUA,CAACA;gCAClCA,KAAKA,iBAAiBA,CAACA,gBAAgBA,CAACA;gCACxCA,KAAKA,iBAAiBA,CAACA,oBAAoBA;oCAEvCA,YAAYA,CAACA,IAAIA,CAACA,kBAAeA,CAACA,EAAqBA,CAACA,CAACA,CAACA;oCAC1DA,YAAYA,CAACA,IAAIA,CAACA,YAASA,EAAEA,CAACA,CAACA;oCAC/BA,EAAEA,CAACA,CAACA,sBAAsBA,CAACA,CAACA,CAACA;wCACzBA,YAAYA,CAACA,IAAIA,CAACA,cAAWA,CAACA,EAAqBA,CAACA,CAACA,CAACA;wCACtDA,YAAYA,CAACA,IAAIA,CAACA,YAASA,EAAEA,CAACA,CAACA;oCACnCA,CAACA;oCACDA,EAAEA,CAACA,CAACA,CAACA,CAACA,IAAIA,CAACA,KAAKA,GAAGA,KAAmBA,CAACA,CAACA,CAACA,CAACA;wCACtCA,Y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CA;gBACtCA,6BAA6BA,EAAEA,CAACA;gBAChCA,YAAYA,CAACA,IAAIA,CAACA,cAAWA,CAACA,GAAsBA,CAACA,CAACA,CAACA;gBACvDA,YAAYA,CAACA,IAAIA,CAACA,YAASA,EAAEA,CAACA,CAACA;gBAC/BA,iBAAiBA,CAACA,MAAMA,CAACA,CAACA;gBAC1BA,YAAYA,CAACA,IAAIA,CAACA,YAASA,EAAEA,CAACA,CAACA;gBAC/BA,YAAYA,CAACA,IAAIA,CAACA,eAAYA,CAACA,EAAsBA,CAACA,CAACA,CAACA;gBACxDA,YAAYA,CAACA,IAAIA,CAACA,YAASA,EAAEA,CAACA,CAACA;gBAC/BA,YAAYA,CAACA,IAAIA,CAACA,KAAKA,CAACA,YAAYA,EAAEA,qBAAkBA,CAACA,YAAYA,EAAEA,YAAYA,CAACA,uBAAuBA,CAACA,MAAMA,CAACA,EAAEA,oBAAoBA,CAACA,CAACA,CAACA;YAChJA,CAACA;YACDA,EAAEA,CAACA,CAACA,WAAWA,GAAGA,GAAgBA,CAACA,CAACA,CAACA;gBACjCA,6BAA6BA,EAAEA,CAACA;gBAChCA,EAAEA,CAACA,CAACA,UAAOA,CAACA,MAAMA,CAACA,YAAYA,EAAEA,yBAAsBA,CAACA,CAACA,CAACA,CAACA;oBACvDA,YAAYA,CAACA,IAAIA,CAACA,cAAWA,CAACA,EAAuBA,CAACA,CAACA,CAACA;oBACxDA,YAAYA,CAACA,IAAIA,CAACA,YAASA,EAAEA,CAACA,CAACA;gBACnCA,CAACA;gBACDA,YAAYA,CAACA,IAAIA,CAACA,cAAWA,CAACA,EAAsBA,CAACA,CAACA,CAACA;gBACvDA,YAAYA,CAACA,IAAIA,CAACA,YAASA,EAAEA,CAACA,CAACA;gBAC/BA,iBAAiBA,CAACA,MAAMA,CAACA,CAACA;YAC9BA,CAACA;YACDA,EAAEA,CAACA,CAACA,WAAWA,GAAGA,IAAkBA,CAACA,CAACA,CAACA;gBACnCA,6BAA6BA,EAAEA,CAACA;gBAChCA,YAAYA,CAACA,IAAIA,CAACA,cAAWA,CAACA,GAAwBA,CAACA,CAACA,CAACA;g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A,mBAAgBA,CAACA,IAAIA,EAA8BA,KAAKA,CAACA,CAACA;wBAE1EA,MAAMA,CAACA,CAACA,eAAeA,CAACA,IAAIA,CAACA,CAACA,CAACA;4BAC3BA,KAAKA,GAA6BA,CAACA;4BACnCA,KAAKA,GAA8BA;gCAC/BA,EAAEA,CAACA,CAACA,eAAeA,CAACA,MAAMA,KAAKA,SAASA,CAACA,MAAMA,CAACA,CAACA,CAACA;oCAC9CA,MAAMA,CAACA,IAAIA,CAACA,yBAAyBA,CAACA,IAAIA,CAACA,CAACA,CAACA;gCACjDA,CAACA;gCACDA,KAAKA,CAACA;4BACVA,KAAKA,GAA4BA,CAACA;4BAClCA,KAAKA,GAA0BA;gCAC3BA,EAAEA,CAACA,CAACA,wBAAqBA,CAACA,eAAeA,CAACA,IAAIA,eAAeA,CAACA,MAAMA,KAAKA,SAASA,CAACA,MAAMA,CAACA,CAACA,CAACA;oCACxFA,MAAMA,CAACA,IAAIA,CAACA,yBAAyBA,CAACA,IAAIA,CAACA,CAACA,CAACA;gCACjDA,CAACA;gCACDA,KAAKA,CAACA;4BACVA,KAAKA,GAA2BA;gCAG5BA,EAAEA,CAACA,CAACA,SAASA,CAACA,MAAMA,IAAIA,eAAeA,CAACA,MAAMA,KAAKA,SAASA,CAACA,MAAMA,CAACA,MAAMA,IAAIA,CAACA,SAASA,CAACA,KAAKA,GAAGA,GAAgBA,CAACA,KAAKA,UAAUA,CAACA,CAACA,CAACA;oCAChIA,MAAMA,CAACA,IAAIA,CAACA,yBAAyBA,CAACA,IAAIA,CAACA,CAACA,CAACA;gCACjDA,CAACA;gCACDA,KAAKA,CAACA;4BACVA,KAAKA,GAAqBA;gCACtBA,EAAEA,CAACA,CAACA,SAASA,CAACA,IAAIA,KAAKA,GAAqBA,IAAIA,CAACA,mBAAgBA,CAAaA,SAASA,CAACA,CAACA,CAACA,CAACA;oCACvFA,MAAMA,CAACA,IAAIA,CAACA,yBAAyBA,CAACA,IAAIA,CAACA,CAACA,CAACA;gCACjDA,CAACA;gCACDA,KAAKA,CAACA;wBACdA,CAACA;oBACLA,CAACA,CAACA,CAACA;gBACPA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A,CAACA;QAM7BA,wBAA+BA,CAASA;YACpCC,EAAEA,CAACA,CAACA,CAACA,UAAUA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA;gBACjBA,IAAIA,UAAUA,GAAGA,EAAEA,CAACA;gBACpBA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,CAACA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;oBACzBA,UAAUA,IAAIA,GAAGA,CAACA;gBACtBA,CAACA;gBACDA,UAAUA,CAACA,CAACA,CAACA,GAAGA,UAAUA,CAACA;YAC/BA,CAACA;YACDA,MAAMA,CAACA,UAAUA,CAACA,CAACA,CAACA,CAACA;QACzBA,CAACA;QATeD,qBAAcA,iBAS7BA,CAAAA;QAODA,uBAAuBA,CAASA,EAAEA,CAASA;YACvCE,EAAEA,CAACA,CAACA,CAACA,GAAGA,CAACA,CAACA,CAACA,CAACA;gBACRA,MAAMA,CAACA,CAACA,CAACA,CAACA;YACdA,CAACA;YACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;gBACdA,MAAMA,CAACA,CAACA,CAACA;YACbA,CAACA;YACDA,IAAIA;gBAACA,MAAMA,CAACA,CAACA,CAACA;QAClBA,CAACA;QAEDF,0BAA0BA,CAAYA,EAAEA,CAAYA;YAChDG,EAAEA,CAACA,CAACA,CAACA,CAACA,IAAIA,GAAGA,CAACA,CAACA,IAAIA,CAACA,CAACA,CAACA;gBAClBA,MAAMA,CAACA,CAACA,CAACA,CAACA;YACdA,CAACA;YACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,CAACA,CAACA,IAAIA,IAAIA,CAACA,CAACA,IAAIA,CAACA,CAACA,CAACA;gBACxBA,IAAIA,CAACA,GAAGA,aAAaA,CAACA,CAACA,CAACA,KAAKA,CAACA,IAAIA,EAAEA,CAACA,CAACA,KAAKA,CAACA,IAAIA,CAACA,CAACA;gBAClDA,EAAEA,CAACA,CAACA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;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AACA;oBACjCA,IAAIA,CAACA,WAAWA,GAAGA,SAASA,CAACA;gBACjCA,CAACA;gBACDA,IAAIA,KAAKA,GAAGA,CAACA,CAACA;gBACdA,IAAIA,QAAQA,GAAGA;oBACXA,EAAEA,CAACA,CAACA,QAAQA,CAACA,GAAGA,CAACA,CAACA,CAACA,CAACA;wBAChBA,IAAIA,SAASA,GAAGA,SAASA,CAACA,KAAKA,EAAEA,CAACA,CAACA;wBACnCA,EAAEA,CAACA,CAACA,SAASA,CAACA,OAAOA,CAACA,qBAAqBA,CAACA,SAASA,CAACA,QAAQA,EAAEA,IAAIA,CAACA,CAACA,CAACA,CAACA;4BACpEA,KAAIA,CAACA,cAAcA,CAACA,SAASA,CAACA,QAAQA,EAAEA,SAASA,CAACA,OAAOA,CAACA,CAACA;4BAC3DA,KAAIA,CAACA,WAAWA,GAAGA,YAAYA,CAACA;gCAC5BA,KAAIA,CAACA,aAAaA,CAACA,SAASA,CAACA,QAAQA,EAAEA,SAASA,CAACA,OAAOA,CAACA,CAACA;gCAC1DA,KAAIA,CAACA,WAAWA,GAAGA,SAASA,CAACA;gCAC7BA,EAAEA,CAACA,CAACA,SAASA,CAACA,MAAMA,GAAGA,KAAKA,CAACA,CAACA,CAACA;oCAC3BA,KAAIA,CAACA,UAAUA,GAAGA,UAAUA,CAACA,QAAQA,EAAEA,QAAQA,CAACA,CAACA;gCACrDA,CAACA;gCACDA,IAAIA,CAACA,CAACA;oCACFA,KAAIA,CAACA,UAAUA,GAAGA,SAASA,CAACA;gCAChCA,CAACA;4BACLA,CAACA,CAACA,CAACA;wBACPA,CAACA;oBACLA,CAACA;gBACLA,CAACA,CAAAA;gBACDA,EAAEA,CAACA,CAACA,CAACA,SAASA,CAACA,MAAMA,GAAGA,KAAKA,CAACA,IAAIA,CAACA,QAAQA,CAACA,GAAGA,CAACA,CAACA,CAACA,CAACA,CAACA;oBAChDA,IAAIA,CAACA,UAAUA,GAAGA,UAAUA,CAACA,QAAQA,EAAEA,EAAEA,CAACA,CAACA;gBAC/CA,CAACA;YACLA,CAACA;YAEDb,+BAAaA,GAAbA,UAAcA,IA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CAACA,oBAAoBA,CAACA,QAAQA,CAACA,QAAQA,EAAEA,EAAEA,CAACA,WAAWA,CAACA,QAAQA,CAACA,QAAQA,CAACA,CAACA;iBACvGA,CAACA,EAJoDA,CAIpDA,CAACA,CAACA,IAAIA,CAACA,UAACA,CAACA,EAAEA,CAACA;oBACVA,EAAEA,CAACA,CAACA,CAACA,CAACA,IAAIA,GAAGA,CAACA,CAACA,IAAIA,CAACA,CAACA,CAACA;wBAClBA,MAAMA,CAACA,CAACA,CAACA,CAACA;oBACdA,CAACA;oBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,CAACA,CAACA,IAAIA,GAAGA,CAACA,CAACA,IAAIA,CAACA,CAACA,CAACA;wBACvBA,MAAMA,CAACA,CAACA,CAACA;oBACbA,CAACA;oBACDA,IAAIA,CAACA,CAACA;wBAEFA,EAAEA,CAACA,CAACA,CAACA,CAACA,KAAKA,CAACA,IAAIA,GAAGA,CAACA,CAACA,KAAKA,CAACA,IAAIA,CAACA,CAACA,CAACA;4BAC9BA,MAAMA,CAACA,CAACA,CAACA;wBACbA,CAACA;wBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,CAACA,CAACA,KAAKA,CAACA,IAAIA,GAAGA,CAACA,CAACA,KAAKA,CAACA,IAAIA,CAACA,CAACA,CAACA;4BACnCA,MAAMA,CAACA,CAACA,CAACA,CAACA;wBACdA,CAACA;wBACDA,IAAIA,CAACA,CAACA;4BACFA,MAAMA,CAACA,CAACA,CAACA,KAAKA,CAACA,MAAMA,GAAGA,CAACA,CAACA,KAAKA,CAACA,MAAMA,CAACA;wBAC3CA,CAACA;oBACLA,CAACA;gBACLA,CAACA,CAACA,CAACA,MAAMA,CAAuBA,UAACA,KAA2BA,EAAEA,GAAsBA;oBAChFA,IAAIA,YAAgCA,CAACA;oBACrCA,EAAEA,CAACA,CAACA,KAAKA,CAACA,MAAMA,GAAGA,CAACA,CAACA,CAACA,CAACA;wBACnBA,YAAYA,GAAGA,KAAKA,CAACA,KAAKA,CAACA,MAAMA,GAAGA,CAACA,CAACA,CAACA;wBACvCA,EAAEA,C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CAACA;oBACvCA,IAAIA,CAACA,SAASA,CAACA,CAACA,CAAEA,CAACA,YAAYA,EAAEA,CAACA;oBAC7CA,EAAEA,CAACA,CAACA,IAAIA,CAACA,SAASA,CAACA,CAACA,CAACA,CAACA,SAASA,EAAEA,IAAIA,CAACA,CAACA,CAACA,CAACA;wBACrCA,aAAaA,GAAGA,IAAIA,CAACA,SAASA,CAACA,CAACA,CAACA,CAACA;wBAClCA,EAAEA,CAACA,CAACA,CAACA,GAAGA,CAACA,CAACA,CAACA,CAACA;4BACRA,YAAYA,GAAaA,IAAIA,CAACA,SAASA,CAACA,CAACA,GAAGA,CAACA,CAACA,CAACA;wBACnDA,CAACA;wBACDA,IAAIA,CAACA,CAACA;4BACFA,YAAYA,GAAGA,IAAIA,CAACA,UAAUA,CAACA;wBACnCA,CAACA;oBACLA,CAACA;gBACLA,CAACA;gBACDA,EAAEA,CAACA,CAACA,aAAaA,CAACA,CAACA,CAACA;oBAChBA,YAAYA,CAACA,MAAMA,CAACA,aAAaA,CAACA,CAACA;gBACvCA,CAACA;gBAGDA,IAAIA,aAAaA,GAAaA,IAAIA,CAACA,SAASA,CAACA,IAAIA,CAACA,SAASA,CAACA,MAAMA,GAAGA,CAACA,CAACA,CAACA;gBACxEA,IAAIA,QAAQA,GAAaA,IAAIA,CAACA,SAASA,CAACA,IAAIA,CAACA,SAASA,CAACA,MAAMA,GAAGA,CAACA,CAACA,CAACA;gBACnEA,IAAIA,GAAGA,GAAGA,KAAKA,CAACA,MAAMA,CAACA;gBAEvBA,EAAEA,CAACA,CAACA,GAAGA,GAAGA,CAACA,CAACA,CAACA,CAACA;oBACVA,QAAQA,CAACA,IAAIA,GAAGA,KAAKA,CAACA,CAACA,CAACA,CAACA;oBAEzBA,EAAEA,CAACA,CAACA,GAAGA,GAAGA,CAACA,CAACA,CAACA,CAACA;wBACVA,IAAIA,aAAaA,GAAqBA,IAAIA,KAAKA,CAACA,GAAGA,GAAGA,CAACA,CAACA,CAACA;wBACzDA,IAAIA,SAASA,GAAmBA,QAAQA,CAACA;wBACzCA,GAAGA,CAACA,CAACA,GAA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,gBAAgBA,CAACA,GAAGA,CAACA,CAACA,CAACA;4BACrCA,KAAKA,GAAGA,KAAKA,CAACA,cAAcA,CAACA,CAACA;4BAC9BA,WAAWA,CAACA,GAAGA,CAACA,KAAKA,CAACA,CAACA;4BACvBA,IAAIA,CAACA,SAASA,CAACA,IAAIA,CAACA,SAASA,CAACA,MAAMA,CAACA,GAAGA,KAAKA,CAACA;wBAClDA,CAACA;wBACDA,IAAIA,CAACA,CAACA;4BACFA,EAAEA,CAACA,CAACA,CAACA,cAAcA,CAACA,MAAMA,EAAEA,CAACA,CAACA,CAACA;gCAC3BA,KAAKA,GAAGA,KAAKA,CAACA,cAAcA,CAACA,CAACA;gCAC9BA,WAAWA,CAACA,GAAGA,CAACA,KAAKA,CAACA,CAACA;gCACvBA,IAAIA,CAACA,SAASA,CAACA,IAAIA,CAACA,SAASA,CAACA,MAAMA,CAACA,GAAGA,KAAKA,CAACA;4BAClDA,CAACA;wBACLA,CAACA;wBACDA,KAAKA,CAACA;oBACVA,KAAKA,gBAAgBA,CAACA,GAAGA;wBACrBA,IAAIA,CAACA,SAASA,GAAGA,KAAKA,CAACA;wBACvBA,KAAKA,CAACA;oBACVA,KAAKA,gBAAgBA,CAACA,GAAGA;wBACrBA,EAAEA,CAACA,CAACA,IAAIA,CAACA,KAAKA,IAAIA,gBAAgBA,CAACA,GAAGA,CAACA,CAACA,CAACA;4BACrCA,IAAIA,CAACA,SAASA,GAAGA,KAAKA,CAACA;wBAC3BA,CAACA;wBACDA,IAAIA,CAACA,CAACA;4BACFA,EAAEA,CAACA,CAACA,CAACA,cAAcA,CAACA,MAAMA,EAAEA,CAACA,CAACA,CAACA;gCAC3BA,KAAKA,GAAGA,KAAKA,CAACA,cAAcA,CAACA,CAACA;gCAC9BA,WAAWA,CAACA,GAAGA,CAACA,KAAKA,CAACA,CAACA;gCACvBA,IAAIA,CAACA,SAASA,CAACA,IAAIA,CAACA,SAASA,CAACA,MAAMA,CAACA,GAAGA,KAAKA,CAACA;4BAClDA,CAACA;wBACLA,CAACA;wBACDA,KAAKA,CAACA;oBACVA,KAAKA,gBAAgBA,CAAC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,CAACA,CAACA,SAASA,GAAGA,SAASA,CAACA,CAACA,CAACA;wBACxBA,cAAcA,GAAGA,IAAIA,CAACA,IAAIA,CAACA,CAACA,SAASA,GAAGA,SAASA,CAACA,GAAGA,sBAAsBA,CAACA,CAACA;wBAC7EA,UAAUA,GAAeA,IAAIA,KAAKA,CAACA,cAAcA,CAACA,CAACA;wBACnDA,IAAIA,cAAcA,GAAGA,CAACA,CAACA;wBACvBA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,cAAcA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;4BACtCA,UAAUA,CAACA,CAACA,CAACA,GAAGA,IAAIA,QAAQA,EAAEA,CAACA;wBACnCA,CAACA;wBACDA,IAAIA,SAASA,GAAaA,UAAUA,CAACA,CAACA,CAACA,CAACA;wBACxCA,OAAOA,SAASA,GAAGA,SAASA,EAAEA,CAACA;4BAC3BA,SAASA,CAACA,GAAGA,CAACA,KAAKA,CAACA,SAASA,EAAEA,CAACA,CAACA,CAACA;4BAClCA,EAAEA,CAACA,CAACA,SAASA,CAACA,QAAQA,CAACA,MAAMA,IAAIA,sBAAsBA,CAACA,CAACA,CAACA;gCACtDA,cAAcA,EAAEA,CAACA;gCACjBA,SAASA,GAAaA,UAAUA,CAACA,cAAcA,CAACA,CAACA;4BACrDA,CAACA;wBACLA,CAACA;wBACDA,GAAGA,CAACA,CAACA,CAACA,GAAGA,UAAUA,CAACA,MAAMA,GAAGA,CAACA,EAAEA,CAACA,IAAIA,CAACA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;4BAC1CA,EAAEA,CAACA,CAACA,UAAUA,CAACA,CAACA,CAACA,CAACA,QAAQA,CAACA,MAAMA,IAAIA,CAACA,CAACA,CAACA,CAACA;gCACrCA,UAAUA,CAACA,MAAMA,EAAEA,CAACA;4BACxBA,CAACA;wBACLA,CAACA;oBACLA,CAACA;oBACDA,EAAEA,CAACA,CAACA,SAASA,CAACA,CAACA,CAACA;wBACZA,UAAUA,CAACA,UAAUA,CAACA,MAAMA,CAACA,GAAGA,SAASA,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"} \ No newline at end of file