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*;
- var possiblePositions = getPossibleSymbolReferencePositions(sourceFile, searchText, container.getStart(), container.getEnd());
- if (possiblePositions.length) {
- var searchSymbols = populateSearchSymbolSet(searchSymbol, searchLocation);
- ts.forEach(possiblePositions, function (position) {
- cancellationToken.throwIfCancellationRequested();
- var referenceLocation = ts.getTouchingPropertyName(sourceFile, position);
- if (!isValidReferencePosition(referenceLocation, searchText)) {
- if ((findInStrings && isInString(position)) ||
- (findInComments && isInComment(position))) {
- result.push({
- definition: undefined,
- references: [{
- fileName: sourceFile.fileName,
- textSpan: ts.createTextSpan(position, searchText.length),
- isWriteAccess: false
- }]
- });
- }
- return;
- }
- if (!(getMeaningFromLocation(referenceLocation) & searchMeaning)) {
- return;
- }
- var referenceSymbol = typeInfoResolver.getSymbolAtLocation(referenceLocation);
- if (referenceSymbol) {
- var referenceSymbolDeclaration = referenceSymbol.valueDeclaration;
- var shorthandValueSymbol = typeInfoResolver.getShorthandAssignmentValueSymbol(referenceSymbolDeclaration);
- var relatedSymbol = getRelatedSymbol(searchSymbols, referenceSymbol, referenceLocation);
- if (relatedSymbol) {
- var referencedSymbol = getReferencedSymbol(relatedSymbol);
- referencedSymbol.references.push(getReferenceEntryFromNode(referenceLocation));
- }
- else if (!(referenceSymbol.flags & 67108864) && searchSymbols.indexOf(shorthandValueSymbol) >= 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*;
+ var possiblePositions = getPossibleSymbolReferencePositions(sourceFile, searchText, container.getStart(), container.getEnd());
+ if (possiblePositions.length) {
+ var searchSymbols = populateSearchSymbolSet(searchSymbol, searchLocation);
+ ts.forEach(possiblePositions, function (position) {
+ cancellationToken.throwIfCancellationRequested();
+ var referenceLocation = ts.getTouchingPropertyName(sourceFile, position);
+ if (!isValidReferencePosition(referenceLocation, searchText)) {
+ if ((findInStrings && isInString(position)) ||
+ (findInComments && isInComment(position))) {
+ result.push({
+ definition: undefined,
+ references: [{
+ fileName: sourceFile.fileName,
+ textSpan: ts.createTextSpan(position, searchText.length),
+ isWriteAccess: false
+ }]
+ });
+ }
+ return;
+ }
+ if (!(getMeaningFromLocation(referenceLocation) & searchMeaning)) {
+ return;
+ }
+ var referenceSymbol = typeInfoResolver.getSymbolAtLocation(referenceLocation);
+ if (referenceSymbol) {
+ var referenceSymbolDeclaration = referenceSymbol.valueDeclaration;
+ var shorthandValueSymbol = typeInfoResolver.getShorthandAssignmentValueSymbol(referenceSymbolDeclaration);
+ var relatedSymbol = getRelatedSymbol(searchSymbols, referenceSymbol, referenceLocation);
+ if (relatedSymbol) {
+ var referencedSymbol = getReferencedSymbol(relatedSymbol);
+ referencedSymbol.references.push(getReferenceEntryFromNode(referenceLocation));
+ }
+ else if (!(referenceSymbol.flags & 67108864) && searchSymbols.indexOf(shorthandValueSymbol) >= 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,KAAKA,GAA4BA,IAAwBA,IAAKA,CAACA,IAAIA,CAACA,IAAIA,KAAKA,GAAsBA,CAACA,CAACA,CAACA;gBAC/GA,MAAMA,CAAmCA,IAAKA,CAACA,IAAKA,CAACA,UAAUA,CAACA;YACpEA,CAACA;YACDA,MAAMA,CAACA,UAAUA,CAACA;QACtBA,CAACA;QAEDzgB,4BAA4BA,YAAoBA;YAC5C0gB,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,IAAIA,YAAYA,CAACA,OAAOA,CAACA,CAACA,CAACA;gBAClCA,EAAEA,CAACA,CAACA,EAAEA,KAAKA,SAASA,CAACA,CAACA,CAACA;oBACnBA,MAAMA,CAACA,IAAIA,CAACA;gBAChBA,CAACA;YACLA,CAACA;YACDA,MAAMA,CAACA,KAAKA,CAACA;QACjBA,CAACA;QAED1gB,oCAAoCA,IAAoCA;YACpE2gB,IAAIA,YAAYA,GAAGA,eAAeA,CAACA,IAAIA,CAACA,CAACA;YACzCA,IAAIA,KAAKA,GAAGA,cAAcA,CAACA,YAAYA,CAACA,CAACA;YACzCA,EAAEA,CAACA,CAACA,CAACA,KAAKA,CAACA,cAAcA,CAACA,CAACA,CAACA;gBACxBA,IAAIA,kBAAkBA,GAAGA,YAAYA,CAACA,OAAOA,CAACA,SAASA,CAACA,CAACA;gBACzDA,EAAEA,CAACA,CAACA,kBAAkBA,IAAIA,kBAAkBA,CAACA,YAAYA,CAACA,CAACA,CAACA,CAACA;oBACzDA,IAAIA,WAAWA,GAAGA,2BAA2BA,CAACA,kBAAkBA,CAACA,IAAIA,kBAAkBA,CAACA,gBAAgBA,CAACA;oBACzGA,KAAKA,CAACA,WAAWA,EAAEA,cAAWA,CAACA,4EAA4EA,CAACA,CAACA;gBACjHA,CAACA;gBACDA,KAAKA,CAACA,cAAcA,GAAGA,IAAIA,CAACA;YAChCA,CAACA;QACLA,CAACA;QAED3gB,4BAA4BA,IAAUA;YAClC4gB,EAAEA,CAACA,CAACA,CAACA,IAAIA,CAACA;gBAACA,MAAMA,CAACA;YAClBA,MAAMA,CAACA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA,CAACA;gBAChBA,KAAKA,GAAwBA;oBACzBA,MAAMA,CAACA,kBAAkBA,CAA2BA,IAAIA,CAACA,CAACA;gBAC9DA,KAAKA,GAAoBA;oBACrBA,MAAMA,CAACA,cAAcA,CAAuBA,IAAIA,CAACA,CAACA;gBACtDA,KAAKA,GAA8BA,CAACA;gBACpCA,KAAKA,GAA4BA;oBAC7BA,MAAMA,CAACA,wBAAwBA,CAAsBA,IAAIA,CAACA,CAACA;gBAC/DA,KAAKA,GAAuBA,CAACA;gBAC7BA,KAAKA,GAA0BA,CAACA;gBAChCA,KAAKA,GAAwBA,CAACA;gBAC9BA,KAAKA,GAA6BA;oBAC9BA,MAAMA,CAACA,yBAAyBA,CAAuBA,IAAIA,CAACA,CAACA;gBACjEA,KAAKA,GAAyBA;oBAC1BA,MAAMA,CAACA,yBAAyBA,CAAuBA,IAAIA,CAACA,CAACA;gBACjEA,KAAKA,GAA4BA,CAACA;gBAClCA,KAAKA,GAA0BA;oBAC3BA,MAAMA,CAACA,sBAAsBA,CAAoBA,IAAIA,CAACA,CAACA;gBAC3DA,KAAKA,GAAsBA;oBACvBA,MAAMA,CAACA,2BAA2BA,CAAyBA,IAAIA,CAACA,CAACA;gBACrEA,KAAKA,GAAsBA,CAACA;gBAC5BA,KAAKA,GAAsBA;oBACvBA,MAAMA,CAACA,wBAAwBA,CAAsBA,IAAIA,CAACA,CAACA;gBAC/DA,KAAKA,GAAwBA;oBACzBA,MAAMA,CAACA,kBAAkBA,CAAoBA,IAAIA,CAACA,CAACA;gBACvDA,KAAKA,GAAoBA;oBACrBA,MAAMA,CAACA,cAAcA,CAAgBA,IAAIA,CAACA,CAACA;gBAC/CA,KAAKA,GAAsBA;oBACvBA,MAAMA,CAACA,gBAAgBA,CAAkBA,IAAIA,CAACA,CAACA;gBACnDA,KAAKA,GAAoBA;oBACrBA,MAAMA,CAACA,cAAcA,CAAgBA,IAAIA,CAACA,CAACA;gBAC/CA,KAAKA,GAAoBA;oBACrBA,MAAMA,CAACA,cAAcA,CAAgBA,IAAIA,CAACA,CAACA;gBAC/CA,KAAKA,GAAoBA;oBACrBA,MAAMA,CAACA,cAAcA,CAAgBA,IAAIA,CAACA,CAACA;gBAC/CA,KAAKA,GAA4BA;oBAC7BA,MAAMA,CAACA,kBAAkBA,CAAyBA,IAAKA,CAACA,IAAIA,CAACA,CAACA;gBAClEA,KAAKA,GAA8BA;oBAC/BA,MAAMA,CAACA,wBAAwBA,CAAsBA,IAAIA,CAACA,CAACA;gBAC/DA,KAAKA,GAAgBA,CAACA;gBACtBA,KAAKA,GAAsBA;oBACvBA,MAAMA,CAACA,UAAUA,CAAQA,IAAIA,CAACA,CAACA;gBACnCA,KAAKA,GAA4BA;oBAC7BA,MAAMA,CAACA,sBAAsBA,CAAoBA,IAAIA,CAACA,CAACA;gBAC3DA,KAAKA,GAA8BA;oBAC/BA,MAAMA,CAACA,wBAAwBA,CAAsBA,IAAIA,CAACA,CAACA;gBAC/DA,KAAKA,GAAsBA;oBACvBA,MAAMA,CAACA,gBAAgBA,CAAcA,IAAIA,CAACA,CAACA;gBAC/CA,KAAKA,GAAsBA;oBACvBA,MAAMA,CAACA,gBAAgBA,CAAcA,IAAIA,CAACA,CAACA;gBAC/CA,KAAKA,GAAyBA;oBAC1BA,MAAMA,CAACA,mBAAmBA,CAAiBA,IAAIA,CAACA,CAACA;gBACrDA,KAAKA,GAAuBA;oBACxBA,MAAMA,CAACA,iBAAiBA,CAAeA,IAAIA,CAACA,CAACA;gBACjDA,KAAKA,GAAyBA;oBAC1BA,MAAMA,CAACA,mBAAmBA,CAAiBA,IAAIA,CAACA,CAACA;gBACrDA,KAAKA,GAAyBA;oBAC1BA,MAAMA,CAACA,mBAAmBA,CAAiBA,IAAIA,CAACA,CAACA;gBACrDA,KAAKA,GAA4BA,CAACA;gBAClCA,KAAKA,GAAyBA;oBAC1BA,MAAMA,CAACA,6BAA6BA,CAA2BA,IAAIA,CAACA,CAACA;gBACzEA,KAAKA,GAA0BA;oBAC3BA,MAAMA,CAACA,oBAAoBA,CAAkBA,IAAIA,CAACA,CAACA;gBACvDA,KAAKA,GAAwBA;oBACzBA,MAAMA,CAACA,kBAAkBA,CAAgBA,IAAIA,CAACA,CAACA;gBACnDA,KAAKA,GAA0BA;oBAC3BA,MAAMA,CAACA,oBAAoBA,CAAkBA,IAAIA,CAACA,CAACA;gBACvDA,KAAKA,GAA2BA;oBAC5BA,MAAMA,CAACA,qBAAqBA,CAAmBA,IAAIA,CAACA,CAACA;gBACzDA,KAAKA,GAAyBA;oBAC1BA,MAAMA,CAACA,mBAAmBA,CAAiBA,IAAIA,CAACA,CAACA;gBACrDA,KAAKA,GAAuBA;oBACxBA,MAAMA,CAACA,iBAAiBA,CAAeA,IAAIA,CAACA,CAACA;gBACjDA,KAAKA,GAA8BA;oBAC/BA,MAAMA,CAACA,wBAAwBA,CAAsBA,IAAIA,CAACA,CAACA;gBAC/DA,KAAKA,GAAyBA;oBAC1BA,MAAMA,CAACA,mBAAmBA,CAAiBA,IAAIA,CAACA,CAACA;gBACrDA,KAAKA,GAA2BA;oBAC5BA,MAAMA,CAACA,qBAAqBA,CAAmBA,IAAIA,CAACA,CAACA;gBACzDA,KAAKA,GAA+BA;oBAChCA,MAAMA,CAACA,yBAAyBA,CAAuBA,IAAIA,CAACA,CAACA;gBACjEA,KAAKA,GAA+BA;oBAChCA,MAAMA,CAACA,yBAAyBA,CAAuBA,IAAIA,CAACA,CAACA;gBACjEA,KAAKA,GAA0BA;oBAC3BA,MAAMA,CAACA,oBAAoBA,CAAkBA,IAAIA,CAACA,CAACA;gBACvDA,KAAKA,GAA4BA;oBAC7BA,MAAMA,CAACA,sBAAsBA,CAAoBA,IAAIA,CAACA,CAACA;gBAC3DA,KAAKA,GAA4BA;oBAC7BA,MAAMA,CAACA,sBAAsBA,CAAoBA,IAAIA,CAACA,CAACA;gBAC3DA,KAAKA,GAAkCA;oBACnCA,MAAMA,CAACA,4BAA4BA,CAA0BA,IAAIA,CAACA,CAACA;gBACvEA,KAAKA,GAA4BA;oBAC7BA,MAAMA,CAACA,sBAAsBA,CAAoBA,IAAIA,CAACA,CAACA;gBAC3DA,KAAKA,GAA2BA;oBAC5BA,MAAMA,CAACA,qBAAqBA,CAAmBA,IAAIA,CAACA,CAACA;gBACzDA,KAAKA,GAAyBA;oBAC1BA,qCAAqCA,CAACA,IAAIA,CAACA,CAACA;oBAC5CA,MAAMA,CAACA;gBACXA,KAAKA,GAA4BA;oBAC7BA,qCAAqCA,CAACA,IAAIA,CAACA,CAACA;oBAC5CA,MAAMA,CAACA;gBACXA,KAAKA,GAA6BA;oBAC9BA,MAAMA,CAACA,uBAAuBA,CAACA,IAAIA,CAACA,CAACA;YAC7CA,CAACA;QACLA,CAACA;QAWD5gB,uCAAuCA,IAAUA;YAC7C6gB,MAAMA,CAACA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA,CAACA;gBAChBA,KAAKA,GAA6BA,CAACA;gBACnCA,KAAKA,GAAwBA;oBACzBA,UAAOA,CAA2BA,IAAKA,CAACA,UAAUA,EAAEA,6BAA6BA,CAACA,CAACA;oBACnFA,gDAAgDA,CAAqBA,IAAIA,CAACA,CAACA;oBAC3EA,KAAKA,CAACA;gBACVA,KAAKA,GAA4BA,CAACA;gBAClCA,KAAKA,GAA0BA;oBAC3BA,UAAOA,CAAqBA,IAAKA,CAACA,UAAUA,EAAEA,6BAA6BA,CAACA,CAACA;oBAC7EA,EAAEA,CAACA,CAACA,wBAAqBA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;wBAC9BA,gDAAgDA,CAAoBA,IAAIA,CAACA,CAACA;oBAC9EA,CAACA;oBACDA,KAAKA,CAACA;gBACVA,KAAKA,GAAsBA,CAACA;gBAC5BA,KAAKA,GAAsBA,CAACA;gBAC5BA,KAAKA,GAAsBA,CAACA;gBAC5BA,KAAKA,GAA8BA;oBAC/BA,UAAOA,CAA2BA,IAAKA,CAACA,UAAUA,EAAEA,6BAA6BA,CAACA,CAACA;oBACnFA,KAAKA,CAACA;gBACVA,KAAKA,GAAwBA;oBACzBA,6BAA6BA,CAAiBA,IAAKA,CAACA,UAAUA,CAACA,CAACA;oBAChEA,KAAKA,CAACA;gBACVA,KAAKA,GAAoBA,CAACA;gBAC1BA,KAAKA,GAA8BA,CAACA;gBACpCA,KAAKA,GAA4BA,CAACA;gBAClCA,KAAKA,GAA+BA,CAACA;gBACrCA,KAAKA,GAA8BA,CAACA;gBACpCA,KAAKA,GAAyBA,CAACA;gBAC/BA,KAAKA,GAAiCA,CAACA;gBACvCA,KAAKA,GAAkCA,CAACA;gBACxCA,KAAKA,GAA6BA,CAACA;gBACnCA,KAAKA,GAAmCA,CAACA;gBACzCA,KAAKA,GAAkCA,CAACA;gBACxCA,KAAKA,GAAyBA,CAACA;gBAC/BA,KAAKA,GAAwBA,CAACA;gBAC9BA,KAAKA,GAAmCA,CAACA;gBACzCA,KAAKA,GAA6BA,CAACA;gBACnCA,KAAKA,GAAuBA,CAACA;gBAC7BA,KAAKA,GAAkCA,CAACA;gBACxCA,KAAKA,GAAkCA,CAACA;gBACxCA,KAAKA,GAA2BA,CAACA;gBACjCA,KAAKA,GAAyBA,CAACA;gBAC/BA,KAAKA,GAA2BA,CAACA;gBACjCA,KAAKA,GAAgCA,CAACA;gBACtCA,KAAKA,GAAiCA,CAACA;gBACvCA,KAAKA,GAA2BA,CAACA;gBACjCA,KAAKA,GAAgCA,CAACA;gBACtCA,KAAKA,GAAkCA,CAACA;gBACxCA,KAAKA,GAAgBA,CAACA;gBACtBA,KAAKA,GAAsBA,CAACA;gBAC5BA,KAAKA,GAA4BA,CAACA;gBAClCA,KAAKA,GAA8BA,CAACA;gBACpCA,KAAKA,GAAsBA,CAACA;gBAC5BA,KAAKA,GAAsBA,CAACA;gBAC5BA,KAAKA,GAAyBA,CAACA;gBAC/BA,KAAKA,GAAuBA,CAACA;gBAC7BA,KAAKA,GAAyBA,CAACA;gBAC/BA,KAAKA,GAAyBA,CAACA;gBAC/BA,KAAKA,GAA4BA,CAACA;gBAClCA,KAAKA,GAAyBA,CAACA;gBAC/BA,KAAKA,GAA0BA,CAACA;gBAChCA,KAAKA,GAA0BA,CAACA;gBAChCA,KAAKA,GAAoBA,CAACA;gBAC1BA,KAAKA,GAAqBA,CAACA;gBAC3BA,KAAKA,GAAwBA,CAACA;gBAC9BA,KAAKA,GAA2BA,CAACA;gBACjCA,KAAKA,GAAyBA,CAACA;gBAC/BA,KAAKA,GAAuBA,CAACA;gBAC7BA,KAAKA,GAAsBA,CAACA;gBAC5BA,KAAKA,GAA8BA,CAACA;gBACpCA,KAAKA,GAAkCA,CAACA;gBACxCA,KAAKA,GAA2BA,CAACA;gBACjCA,KAAKA,GAA0BA,CAACA;gBAChCA,KAAKA,GAAqBA,CAACA;gBAC3BA,KAAKA,GAA2BA,CAACA;gBACjCA,KAAKA,GAAqBA;oBACtBA,eAAYA,CAACA,IAAIA,EAAEA,6BAA6BA,CAACA,CAACA;oBAClDA,KAAKA,CAACA;YACdA,CAACA;QACLA,CAACA;QAED7gB,yBAAyBA,IAAgBA;YACrC8gB,IAAIA,KAAKA,GAAGA,IAAIA,IAAIA,EAAEA,CAACA,OAAOA,EAAEA,CAACA;YACjCA,qBAAqBA,CAACA,IAAIA,CAACA,CAACA;YAC5BA,YAASA,IAAIA,IAAIA,IAAIA,EAAEA,CAACA,OAAOA,EAAEA,GAAGA,KAAKA,CAACA;QAC9CA,CAACA;QAGD9gB,+BAA+BA,IAAgBA;YAC3C+gB,IAAIA,KAAKA,GAAGA,YAAYA,CAACA,IAAIA,CAACA,CAACA;YAC/BA,EAAEA,CAACA,CAACA,CAACA,CAACA,KAAKA,CAACA,KAAKA,GAAGA,CAA0BA,CAACA,CAACA,CAACA,CAACA;gBAE9CA,sBAAsBA,CAACA,IAAIA,CAACA,CAACA;gBAE7BA,WAAWA,GAAGA,KAAKA,CAACA;gBACpBA,uBAAuBA,CAACA,MAAMA,GAAGA,CAACA,CAACA;gBAEnCA,UAAOA,CAACA,IAAIA,CAACA,UAAUA,EAAEA,kBAAkBA,CAACA,CAACA;gBAC7CA,6BAA6BA,CAACA,IAAIA,CAACA,CAACA;gBAEpCA,EAAEA,CAACA,CAACA,mBAAgBA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;oBACzBA,0BAA0BA,CAACA,IAAIA,CAACA,CAACA;gBACrCA,CAACA;gBAEDA,EAAEA,CAACA,CAACA,uBAAuBA,CAACA,MAAMA,CAACA,CAACA,CAACA;oBACjCA,UAAOA,CAACA,uBAAuBA,EAAEA,qCAAqCA,CAACA,CAACA;oBACxEA,uBAAuBA,CAACA,MAAMA,GAAGA,CAACA,CAACA;gBACvCA,CAACA;gBAEDA,EAAEA,CAACA,CAACA,WAAWA,CAACA,CAACA,CAACA;oBACdA,KAAKA,CAACA,KAAKA,IAAIA,CAA0BA,CAACA;gBAC9CA,CAACA;gBAEDA,EAAEA,CAACA,CAACA,YAAYA,CAACA,CAACA,CAACA;oBACfA,KAAKA,CAACA,KAAKA,IAAIA,GAA2BA,CAACA;gBAC/CA,CAACA;gBAEDA,KAAKA,CAACA,KAAKA,IAAIA,CAA0BA,CAACA;YAC9CA,CAACA;QACLA,CAACA;QAED/gB,wBAAwBA,UAAuBA;YAC3CghB,8BAA8BA,EAAEA,CAACA;YACjCA,EAAEA,CAACA,CAACA,UAAUA,CAACA,CAACA,CAACA;gBACbA,eAAeA,CAACA,UAAUA,CAACA,CAACA;gBAC5BA,MAAMA,CAACA,WAAWA,CAACA,cAAcA,CAACA,UAAUA,CAACA,QAAQA,CAACA,CAACA;YAC3DA,CAACA;YACDA,UAAOA,CAACA,IAAIA,CAACA,cAAcA,EAAEA,EAAEA,eAAeA,CAACA,CAACA;YAChDA,MAAMA,CAACA,WAAWA,CAACA,cAAcA,EAAEA,CAACA;QACxCA,CAACA;QAEDhhB;YACIihB,8BAA8BA,EAAEA,CAACA;YACjCA,MAAMA,CAACA,WAAWA,CAACA,oBAAoBA,EAAEA,CAACA;QAC9CA,CAACA;QAEDjhB;YACIkhB,EAAEA,CAACA,CAACA,CAACA,kBAAkBA,CAACA,CAACA,CAACA;gBACtBA,MAAMA,IAAIA,KAAKA,CAACA,2EAA2EA,CAACA,CAACA;YACjGA,CAACA;QACLA,CAACA;QAIDlhB,mCAAmCA,IAAUA;YACzCmhB,EAAEA,CAACA,CAACA,IAAIA,CAACA,CAACA,CAACA;gBACPA,OAAOA,IAAIA,CAACA,MAAMA,EAAEA,CAACA;oBACjBA,EAAEA,CAACA,CAACA,IAAIA,CAACA,MAAMA,CAACA,IAAIA,KAAKA,GAAwBA,IAAoBA,IAAIA,CAACA,MAAOA,CAACA,SAASA,KAAKA,IAAIA,CAACA,CAACA,CAACA;wBACnGA,MAAMA,CAACA,IAAIA,CAACA;oBAChBA,CAACA;oBACDA,IAAIA,GAAGA,IAAIA,CAACA,MAAMA,CAACA;gBACvBA,CAACA;YACLA,CAACA;YAEDA,MAAMA,CAACA,KAAKA,CAACA;QACjBA,CAACA;QAEDnhB,2BAA2BA,QAAcA,EAAEA,OAAoBA;YAC3DohB,IAAIA,OAAOA,GAAgBA,EAAEA,CAACA;YAC9BA,IAAIA,WAAWA,GAAcA,CAACA,CAACA;YAE/BA,EAAEA,CAACA,CAACA,yBAAyBA,CAACA,QAAQA,CAACA,CAACA,CAACA,CAACA;gBAEtCA,MAAMA,CAACA,EAAEA,CAACA;YACdA,CAACA;YAEDA,eAAeA,EAAEA,CAACA;YAElBA,MAAMA,CAACA,cAAcA,CAACA,OAAOA,CAACA,CAACA;YAE/BA;gBACIC,OAAOA,QAAQA,EAAEA,CAACA;oBACdA,EAAEA,CAACA,CAACA,QAAQA,CAACA,MAAMA,IAAIA,CAACA,kBAAkBA,CAACA,QAAQA,CAACA,CAACA,CAACA,CAACA;wBACnDA,WAAWA,CAACA,QAAQA,CAACA,MAAMA,EAAEA,OAAOA,CAACA,CAACA;oBAC1CA,CAACA;oBAEDA,MAAMA,CAACA,CAACA,QAAQA,CAACA,IAAIA,CAACA,CAACA,CAACA;wBACpBA,KAAKA,GAAqBA;4BACtBA,EAAEA,CAACA,CAACA,CAACA,mBAAgBA,CAAaA,QAAQA,CAACA,CAACA,CAACA,CAACA;gCAC1CA,KAAKA,CAACA;4BACVA,CAACA;wBACLA,KAAKA,GAA4BA;4BAC7BA,WAAWA,CAACA,eAAeA,CAACA,QAAQA,CAACA,CAACA,OAAOA,EAAEA,OAAOA,GAAGA,OAAwBA,CAACA,CAACA;4BACnFA,KAAKA,CAACA;wBACVA,KAAKA,GAA0BA;4BAC3BA,WAAWA,CAACA,eAAeA,CAACA,QAAQA,CAACA,CAACA,OAAOA,EAAEA,OAAOA,GAAGA,CAAsBA,CAACA,CAACA;4BACjFA,KAAKA,CAACA;wBACVA,KAAKA,GAA2BA,CAACA;wBACjCA,KAAKA,GAA+BA;4BAChCA,EAAEA,CAACA,CAACA,CAACA,CAACA,WAAWA,GAAGA,GAAgBA,CAACA,CAACA,CAACA,CAACA;gCACpCA,WAAWA,CAACA,eAAeA,CAACA,QAAQA,CAACA,CAACA,OAAOA,EAAEA,OAAOA,GAAGA,MAAgBA,CAACA,CAACA;4BAC/EA,CAACA;4BACDA,KAAKA,CAACA;wBACVA,KAAKA,GAA6BA;4BAC9BA,EAAEA,CAACA,CAAsBA,QAASA,CAACA,IAAIA,CAACA,CAACA,CAACA;gCACtCA,UAAUA,CAACA,QAAQA,CAACA,MAAMA,EAAEA,OAAOA,CAACA,CAACA;4BACzCA,CAACA;4BACDA,KAAKA,CAACA;oBACdA,CAACA;oBAEDA,WAAWA,GAAGA,QAAQA,CAACA,KAAKA,CAACA;oBAC7BA,QAAQA,GAAGA,QAAQA,CAACA,MAAMA,CAACA;gBAC/BA,CAACA;gBAEDA,WAAWA,CAACA,OAAOA,EAAEA,OAAOA,CAACA,CAACA;YAClCA,CAACA;YAGDD,oBAAoBA,MAAcA,EAAEA,OAAoBA;gBACpDE,EAAEA,CAACA,CAACA,MAAMA,CAACA,KAAKA,GAAGA,OAAOA,CAACA,CAACA,CAACA;oBACzBA,IAAIA,EAAEA,GAAGA,MAAMA,CAACA,IAAIA,CAACA;oBACrBA,EAAEA,CAACA,CAACA,CAACA,oBAAoBA,CAACA,EAAEA,CAACA,IAAIA,CAACA,cAAWA,CAACA,OAAOA,EAAEA,EAAEA,CAACA,CAACA,CAACA,CAACA;wBACzDA,OAAOA,CAACA,EAAEA,CAACA,GAAGA,MAAMA,CAACA;oBACzBA,CAACA;gBACLA,CAACA;YACLA,CAACA;YAEDF,qBAAqBA,MAAmBA,EAAEA,OAAoBA;gBAC1DG,EAAEA,CAACA,CAACA,OAAOA,CAACA,CAACA,CAACA;oBACVA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,IAAIA,MAAMA,CAACA,CAACA,CAACA;wBACpBA,EAAEA,CAACA,CAACA,cAAWA,CAACA,MAAMA,EAAEA,EAAEA,CAACA,CAACA,CAACA,CAACA;4BAC1BA,UAAUA,CAACA,MAAMA,CAACA,EAAEA,CAACA,EAAEA,OAAOA,CAACA,CAACA;wBACpCA,CAACA;oBACLA,CAACA;gBACLA,CAACA;YACLA,CAACA;YAEDH,EAAEA,CAACA,CAACA,yBAAyBA,CAACA,QAAQA,CAACA,CAACA,CAACA,CAACA;gBAEtCA,MAAMA,CAACA,EAAEA,CAACA;YACdA,CAACA;YAEDA,OAAOA,QAAQA,EAAEA,CAACA;gBACdA,EAAEA,CAACA,CAACA,QAAQA,CAACA,MAAMA,IAAIA,CAACA,kBAAkBA,CAACA,QAAQA,CAACA,CAACA,CAACA,CAACA;oBACnDA,WAAWA,CAACA,QAAQA,CAACA,MAAMA,EAAEA,OAAOA,CAACA,CAACA;gBAC1CA,CAACA;gBACDA,MAAMA,CAACA,CAACA,QAAQA,CAACA,IAAIA,CAACA,CAACA,CAACA;oBACpBA,KAAKA,GAAqBA;wBACtBA,EAAEA,CAACA,CAACA,CAACA,mBAAgBA,CAAaA,QAAQA,CAACA,CAACA;4BAACA,KAAKA,CAACA;oBACvDA,KAAKA,GAA4BA;wBAC7BA,WAAWA,CAACA,eAAeA,CAACA,QAAQA,CAACA,CAACA,OAAOA,EAAEA,OAAOA,GAAGA,OAAwBA,CAACA,CAACA;wBACnFA,KAAKA,CAACA;oBACVA,KAAKA,GAA0BA;wBAC3BA,WAAWA,CAACA,eAAeA,CAACA,QAAQA,CAACA,CAACA,OAAOA,EAAEA,OAAOA,GAAGA,CAAsBA,CAACA,CAACA;wBACjFA,KAAKA,CAACA;oBACVA,KAAKA,GAA2BA,CAACA;oBACjCA,KAAKA,GAA+BA;wBAChCA,EAAEA,CAACA,CAACA,CAACA,CAACA,WAAWA,GAAGA,GAAgBA,CAACA,CAACA,CAACA,CAACA;4BACpCA,WAAWA,CAACA,eAAeA,CAACA,QAAQA,CAACA,CAACA,OAAOA,EAAEA,OAAOA,GAAGA,MAAgBA,CAACA,CAACA;wBAC/EA,CAACA;wBACDA,KAAKA,CAACA;oBACVA,KAAKA,GAA6BA;wBAC9BA,EAAEA,CAACA,CAAsBA,QAASA,CAACA,IAAIA,CAACA,CAACA,CAACA;4BACtCA,UAAUA,CAACA,QAAQA,CAACA,MAAMA,EAAEA,OAAOA,CAACA,CAACA;wBACzCA,CAACA;wBACDA,KAAKA,CAACA;gBACdA,CAACA;gBACDA,WAAWA,GAAGA,QAAQA,CAACA,KAAKA,CAACA;gBAC7BA,QAAQA,GAAGA,QAAQA,CAACA,MAAMA,CAACA;YAC/BA,CAACA;YACDA,WAAWA,CAACA,OAAOA,EAAEA,OAAOA,CAACA,CAACA;YAC9BA,MAAMA,CAACA,cAAcA,CAACA,OAAOA,CAACA,CAACA;QACnCA,CAACA;QAEDphB,+BAA+BA,IAAUA;YACrCwhB,MAAMA,CAACA,IAAIA,CAACA,IAAIA,IAAIA,EAAqBA;gBACrCA,iBAAiBA,CAACA,IAAIA,CAACA,MAAMA,CAACA;gBAChBA,IAAIA,CAACA,MAAOA,CAACA,IAAIA,KAAKA,IAAIA,CAACA;QACjDA,CAACA;QAEDxhB,2BAA2BA,IAAUA;YACjCyhB,MAAMA,CAACA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA,CAACA;gBAChBA,KAAKA,GAAwBA,CAACA;gBAC9BA,KAAKA,GAA2BA,CAACA;gBACjCA,KAAKA,GAA+BA,CAACA;gBACrCA,KAAKA,GAA+BA,CAACA;gBACrCA,KAAKA,GAA0BA;oBAC3BA,MAAMA,CAACA,IAAIA,CAACA;YACpBA,CAACA;QACLA,CAACA;QAGDzhB,mCAAmCA,UAAsBA;YACrD0hB,IAAIA,IAAIA,GAASA,UAAUA,CAACA;YAC5BA,OAAOA,IAAIA,CAACA,MAAMA,IAAIA,IAAIA,CAACA,MAAMA,CAACA,IAAIA,KAAKA,GAAwBA;gBAAEA,IAAIA,GAAGA,IAAIA,CAACA,MAAMA,CAACA;YACxFA,MAAMA,CAACA,IAAIA,CAACA,MAAMA,IAAIA,IAAIA,CAACA,MAAMA,CAACA,IAAIA,KAAKA,GAAwBA,CAACA;QACxEA,CAACA;QAED1hB,oBAAoBA,IAAUA;YAC1B2hB,EAAEA,CAACA,CAACA,GAAwBA,IAAIA,IAAIA,CAACA,IAAIA,IAAIA,IAAIA,CAACA,IAAIA,IAAIA,GAAuBA,CAACA,CAACA,CAACA;gBAChFA,MAAMA,CAACA,IAAIA,CAACA;YAChBA,CAACA;YAEDA,MAAMA,CAACA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA,CAACA;gBAChBA,KAAKA,GAAqBA,CAACA;gBAC3BA,KAAKA,GAAwBA,CAACA;gBAC9BA,KAAKA,GAAwBA,CAACA;gBAC9BA,KAAKA,GAAyBA,CAACA;gBAC/BA,KAAKA,GAAwBA;oBACzBA,MAAMA,CAACA,IAAIA,CAACA;gBAChBA,KAAKA,EAAsBA;oBACvBA,MAAMA,CAACA,IAAIA,CAACA,MAAMA,CAACA,IAAIA,KAAKA,GAAyBA,CAACA;gBAC1DA,KAAKA,CAAwBA;oBAEzBA,MAAMA,CAACA,IAAIA,CAACA,MAAMA,CAACA,IAAIA,KAAKA,GAAoBA,CAACA;gBAIrDA,KAAKA,EAAqBA;oBAEtBA,EAAEA,CAACA,CAACA,IAAIA,CAACA,MAAMA,CAACA,IAAIA,KAAKA,GAAwBA,IAAoBA,IAAIA,CAACA,MAAOA,CAACA,KAAKA,KAAKA,IAAIA,CAACA,CAACA,CAACA;wBAC/FA,IAAIA,GAAGA,IAAIA,CAACA,MAAMA,CAACA;oBACvBA,CAACA;gBAELA,KAAKA,GAAwBA;oBAEzBA,QAAKA,CAACA,MAAMA,CAACA,IAAIA,CAACA,IAAIA,KAAKA,EAAqBA,IAAIA,IAAIA,CAACA,IAAIA,KAAKA,GAAwBA,EAAEA,2EAA2EA,CAACA,CAACA;oBAEzKA,IAAIA,QAAMA,GAAGA,IAAIA,CAACA,MAAMA,CAACA;oBACzBA,EAAEA,CAACA,CAACA,QAAMA,CAACA,IAAIA,KAAKA,GAAoBA,CAACA,CAACA,CAACA;wBACvCA,MAAMA,CAACA,KAAKA,CAACA;oBACjBA,CAACA;oBAODA,EAAEA,CAACA,CAACA,GAAwBA,IAAIA,QAAMA,CAACA,IAAIA,IAAIA,QAAMA,CAACA,IAAIA,IAAIA,GAAuBA,CAACA,CAACA,CAACA;wBACpFA,MAAMA,CAACA,IAAIA,CAACA;oBAChBA,CAACA;oBACDA,MAAMA,CAACA,CAACA,QAAMA,CAACA,IAAIA,CAACA,CAACA,CAACA;wBAClBA,KAAKA,GAAwBA;4BACzBA,MAAMA,CAACA,IAAIA,KAAgCA,QAAOA,CAACA,UAAUA,CAACA;wBAClEA,KAAKA,GAA8BA,CAACA;wBACpCA,KAAKA,GAA4BA,CAACA;wBAClCA,KAAKA,GAAoBA,CAACA;wBAC1BA,KAAKA,GAA8BA;4BAC/BA,MAAMA,CAACA,IAAIA,KAA+BA,QAAOA,CAACA,IAAIA,CAACA;wBAC3DA,KAAKA,GAA8BA,CAACA;wBACpCA,KAAKA,GAA6BA,CAACA;wBACnCA,KAAKA,GAAwBA,CAACA;wBAC9BA,KAAKA,GAAsBA,CAACA;wBAC5BA,KAAKA,GAA4BA,CAACA;wBAClCA,KAAKA,GAA0BA,CAACA;wBAChCA,KAAKA,GAAsBA,CAACA;wBAC5BA,KAAKA,GAAsBA;4BACvBA,MAAMA,CAACA,IAAIA,KAA+BA,QAAOA,CAACA,IAAIA,CAACA;wBAC3DA,KAAKA,GAAwBA,CAACA;wBAC9BA,KAAKA,GAA6BA,CAACA;wBACnCA,KAAKA,GAAyBA;4BAC1BA,MAAMA,CAACA,IAAIA,KAA4BA,QAAOA,CAACA,IAAIA,CAACA;wBACxDA,KAAKA,GAAkCA;4BACnCA,MAAMA,CAACA,IAAIA,KAAqBA,QAAOA,CAACA,IAAIA,CAACA;wBACjDA,KAAKA,GAAyBA,CAACA;wBAC/BA,KAAKA,GAAwBA;4BACzBA,MAAMA,CAAkBA,QAAOA,CAACA,aAAaA,IAAIA,UAAOA,CAAkBA,QAAOA,CAACA,aAAaA,EAAEA,IAAIA,CAACA,IAAIA,CAACA,CAACA;wBAChHA,KAAKA,GAAmCA;4BAEpCA,MAAMA,CAACA,KAAKA,CAACA;oBACrBA,CAACA;YACTA,CAACA;YAEDA,MAAMA,CAACA,KAAKA,CAACA;QACjBA,CAACA;QAED3hB,qDAAqDA,eAA2BA;YAC5E4hB,OAAOA,eAAeA,CAACA,MAAMA,CAACA,IAAIA,KAAKA,GAAwBA,EAAEA,CAACA;gBAC9DA,eAAeA,GAAkBA,eAAeA,CAACA,MAAMA,CAACA;YAC5DA,CAACA;YAEDA,EAAEA,CAACA,CAACA,eAAeA,CAACA,MAAMA,CAACA,IAAIA,KAAKA,GAAkCA,CAACA,CAACA,CAACA;gBACrEA,MAAMA,CAA2BA,eAAeA,CAACA,MAAOA,CAACA,eAAeA,KAAKA,eAAeA,IAA6BA,eAAeA,CAACA,MAAMA,CAACA;YACpJA,CAACA;YAEDA,EAAEA,CAACA,CAACA,eAAeA,CAACA,MAAMA,CAACA,IAAIA,KAAKA,GAA2BA,CAACA,CAACA,CAACA;gBAC9DA,MAAMA,CAAoBA,eAAeA,CAACA,MAAOA,CAACA,UAAUA,KAAWA,eAAeA,IAAsBA,eAAeA,CAACA,MAAMA,CAACA;YACvIA,CAACA;YAEDA,MAAMA,CAACA,SAASA,CAACA;QACrBA,CAACA;QAED5hB,iDAAiDA,IAAgBA;YAC7D6hB,MAAMA,CAACA,2CAA2CA,CAACA,IAAIA,CAACA,KAAKA,SAASA,CAACA;QAC3EA,CAACA;QAED7hB,oDAAoDA,IAAUA;YAC1D8hB,MAAMA,CAACA,CAACA,IAAIA,CAACA,MAAMA,CAACA,IAAIA,KAAKA,GAAwBA,IAAoBA,IAAIA,CAACA,MAAOA,CAACA,KAAKA,KAAKA,IAAIA,CAACA;gBACjGA,CAACA,IAAIA,CAACA,MAAMA,CAACA,IAAIA,KAAKA,GAAmCA,IAA+BA,IAAIA,CAACA,MAAOA,CAACA,IAAIA,KAAKA,IAAIA,CAACA,CAACA;QAC5HA,CAACA;QAED9hB,yDAAyDA,UAAiDA;YACtG+hB,EAAEA,CAACA,CAACA,oBAAiBA,CAACA,UAAUA,CAACA,CAACA,CAACA,CAACA;gBAChCA,MAAMA,CAACA,eAAeA,CAACA,UAAUA,CAACA,MAAMA,CAACA,CAACA;YAC9CA,CAACA;YAEDA,EAAEA,CAACA,CAACA,UAAUA,CAACA,MAAMA,CAACA,IAAIA,KAAKA,GAA2BA,CAACA,CAACA,CAACA;gBACzDA,MAAMA,CAACA,iBAAiBA,CAAaA,UAAUA,EAC1BA,MAAiBA,GAAGA,MAAgBA,GAAGA,IAAqBA,GAAGA,OAAiBA,CAACA,CAACA;YAC3GA,CAACA;YAEDA,EAAEA,CAACA,CAACA,UAAUA,CAACA,IAAIA,KAAKA,GAAmCA,CAACA,CAACA,CAACA;gBAC1DA,EAAEA,CAACA,CAACA,uCAAuCA,CAAaA,UAAUA,CAACA,CAACA,CAACA,CAACA;oBAElEA,MAAMA,CAACA,4CAA4CA,CAAaA,UAAUA,CAACA,CAACA;gBAChFA,CAACA;YACLA,CAACA;YAEDA,EAAEA,CAACA,CAACA,0CAA0CA,CAACA,UAAUA,CAACA,CAACA,CAACA,CAACA;gBACzDA,UAAUA,GAA6CA,UAAUA,CAACA,MAAMA,CAACA;YAC7EA,CAACA;YAEDA,EAAEA,CAACA,CAACA,eAAYA,CAACA,UAAUA,CAACA,CAACA,CAACA,CAACA;gBAC3BA,EAAEA,CAACA,CAACA,eAAYA,CAACA,UAAUA,CAACA,KAAKA,CAACA,CAACA,CAACA,CAACA;oBAEjCA,MAAMA,CAACA,SAASA,CAACA;gBACrBA,CAACA;gBAEDA,EAAEA,CAACA,CAACA,UAAUA,CAACA,IAAIA,KAAKA,EAAqBA,CAACA,CAACA,CAACA;oBAG5CA,IAAIA,OAAOA,GAAgBA,MAAiBA,GAAGA,OAAiBA,CAACA;oBACjEA,MAAMA,CAACA,iBAAiBA,CAAaA,UAAUA,EAAEA,OAAOA,CAACA,CAACA;gBAC9DA,CAACA;gBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,UAAUA,CAACA,IAAIA,KAAKA,GAAmCA,CAACA,CAACA,CAACA;oBAC/DA,IAAIA,MAAMA,GAAGA,YAAYA,CAACA,UAAUA,CAACA,CAACA,cAAcA,CAACA;oBACrDA,EAAEA,CAACA,CAACA,CAACA,MAAMA,CAACA,CAACA,CAACA;wBACVA,6BAA6BA,CAA2BA,UAAUA,CAACA,CAACA;oBACxEA,CAACA;oBACDA,MAAMA,CAACA,YAAYA,CAACA,UAAUA,CAACA,CAACA,cAAcA,CAACA;gBACnDA,CAACA;gBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,UAAUA,CAACA,IAAIA,KAAKA,GAAwBA,CAACA,CAACA,CAACA;oBACpDA,IAAIA,MAAMA,GAAGA,YAAYA,CAACA,UAAUA,CAACA,CAACA,cAAcA,CAACA;oBACrDA,EAAEA,CAACA,CAACA,CAACA,MAAMA,CAACA,CAACA,CAACA;wBACVA,kBAAkBA,CAAgBA,UAAUA,CAACA,CAACA;oBAClDA,CAACA;oBACDA,MAAMA,CAACA,YAAYA,CAACA,UAAUA,CAACA,CAACA,cAAcA,CAACA;gBACnDA,CAACA;YACLA,CAACA;YACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,yBAAyBA,CAAaA,UAAUA,CAACA,CAACA,CAACA,CAACA;gBACzDA,IAAIA,OAAOA,GAAGA,UAAUA,CAACA,MAAMA,CAACA,IAAIA,KAAKA,GAAwBA,GAAGA,MAAgBA,GAAGA,IAAqBA,CAACA;gBAG7GA,OAAOA,IAAIA,OAAiBA,CAACA;gBAC7BA,MAAMA,CAACA,iBAAiBA,CAAaA,UAAUA,EAAEA,OAAOA,CAACA,CAACA;YAC9DA,CAACA;YAGDA,MAAMA,CAACA,SAASA,CAACA;QACrBA,CAACA;QAED/hB,uBAAuBA,IAAUA;YAC7BgiB,EAAEA,CAACA,CAACA,yBAAyBA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;gBAElCA,MAAMA,CAACA,SAASA,CAACA;YACrBA,CAACA;YAEDA,EAAEA,CAACA,CAACA,oBAAiBA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;gBAE1BA,MAAMA,CAACA,eAAeA,CAACA,IAAIA,CAACA,MAAMA,CAACA,CAACA;YACxCA,CAACA;YAEDA,EAAEA,CAACA,CAACA,IAAIA,CAACA,IAAIA,KAAKA,EAAqBA,IAAIA,uCAAuCA,CAAaA,IAAIA,CAACA,CAACA,CAACA,CAACA;gBACnGA,MAAMA,CAACA,IAAIA,CAACA,MAAMA,CAACA,IAAIA,KAAKA,GAA2BA;sBACjDA,+CAA+CA,CAAaA,IAAIA,CAACA;sBACjEA,4CAA4CA,CAAaA,IAAIA,CAACA,CAACA;YACzEA,CAACA;YAEDA,MAAMA,CAACA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA,CAACA;gBAChBA,KAAKA,EAAqBA,CAACA;gBAC3BA,KAAKA,GAAmCA,CAACA;gBACzCA,KAAKA,GAAwBA;oBACzBA,MAAMA,CAACA,+CAA+CA,CAAwCA,IAAIA,CAACA,CAACA;gBAExGA,KAAKA,EAAsBA,CAACA;gBAC5BA,KAAKA,EAAuBA;oBACxBA,IAAIA,IAAIA,GAAGA,eAAeA,CAAaA,IAAIA,CAACA,CAACA;oBAC7CA,MAAMA,CAACA,IAAIA,CAACA,MAAMA,CAACA;gBAEvBA,KAAKA,GAA6BA;oBAE9BA,IAAIA,sBAAsBA,GAAGA,IAAIA,CAACA,MAAMA,CAACA;oBACzCA,EAAEA,CAACA,CAACA,sBAAsBA,IAAIA,sBAAsBA,CAACA,IAAIA,KAAKA,GAAsBA,CAACA,CAACA,CAACA;wBACnFA,MAAMA,CAAoBA,sBAAsBA,CAACA,MAAOA,CAACA,MAAMA,CAACA;oBACpEA,CAACA;oBACDA,MAAMA,CAACA,SAASA,CAACA;gBAErBA,KAAKA,CAAwBA;oBAEzBA,IAAIA,UAAsBA,CAACA;oBAC3BA,EAAEA,CAACA,CAACA,CAACA,0CAAuCA,CAACA,IAAIA,CAACA,MAAMA,CAACA,MAAMA,CAACA;wBAC5DA,qDAAkDA,CAACA,IAAIA,CAACA,MAAMA,CAACA,MAAMA,CAACA,KAAKA,IAAIA,CAACA;wBAChFA,CAACA,CAACA,IAAIA,CAACA,MAAMA,CAACA,IAAIA,KAAKA,GAA4BA,IAAIA,IAAIA,CAACA,MAAMA,CAACA,IAAIA,KAAKA,GAA4BA,CAACA;4BACjFA,IAAIA,CAACA,MAAOA,CAACA,eAAeA,KAAKA,IAAIA,CAACA,CAACA,CAACA,CAACA;wBACjEA,MAAMA,CAACA,yBAAyBA,CAACA,IAAIA,EAAqBA,IAAIA,CAACA,CAACA;oBACpEA,CAACA;gBAGLA,KAAKA,CAAyBA;oBAE1BA,EAAEA,CAACA,CAACA,IAAIA,CAACA,MAAMA,CAACA,IAAIA,IAAIA,GAAkCA,IAA8BA,IAAIA,CAACA,MAAOA,CAACA,kBAAkBA,KAAKA,IAAIA,CAACA,CAACA,CAACA;wBAC/HA,IAAIA,UAAUA,GAAGA,eAAeA,CAA2BA,IAAIA,CAACA,MAAOA,CAACA,UAAUA,CAACA,CAACA;wBACpFA,EAAEA,CAACA,CAACA,UAAUA,KAAKA,WAAWA,CAACA;4BAACA,MAAMA,CAACA,SAASA,CAACA;wBACjDA,IAAIA,YAAYA,GAAGA,eAAeA,CAACA,UAAUA,CAACA,CAACA;wBAC/CA,EAAEA,CAACA,CAACA,YAAYA,KAAKA,WAAWA,CAACA;4BAACA,MAAMA,CAACA,SAASA,CAACA;wBACnDA,MAAMA,CAACA,iBAAiBA,CAACA,YAAYA,EAAsBA,IAAKA,CAACA,IAAIA,CAACA,CAACA;oBAC3EA,CAACA;oBACDA,KAAKA,CAACA;YACdA,CAACA;YACDA,MAAMA,CAACA,SAASA,CAACA;QACrBA,CAACA;QAEDhiB,2CAA2CA,QAAcA;YAIrDiiB,EAAEA,CAACA,CAACA,QAAQA,IAAIA,QAAQA,CAACA,IAAIA,KAAKA,GAAsCA,CAACA,CAACA,CAACA;gBACvEA,MAAMA,CAACA,iBAAiBA,CAA+BA,QAASA,CAACA,IAAIA,EAAEA,MAAiBA,CAACA,CAACA;YAC9FA,CAACA;YACDA,MAAMA,CAACA,SAASA,CAACA;QACrBA,CAACA;QAEDjiB,uBAAuBA,IAAUA;YAC7BkiB,EAAEA,CAACA,CAACA,yBAAyBA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;gBAElCA,MAAMA,CAACA,WAAWA,CAACA;YACvBA,CAACA;YAEDA,EAAEA,CAACA,CAACA,eAAYA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;gBACrBA,MAAMA,CAACA,mBAAmBA,CAAaA,IAAIA,CAACA,CAACA;YACjDA,CAACA;YAEDA,EAAEA,CAACA,CAACA,UAAUA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;gBACnBA,MAAMA,CAACA,mBAAmBA,CAAWA,IAAIA,CAACA,CAACA;YAC/CA,CAACA;YAEDA,EAAEA,CAACA,CAACA,iBAAiBA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;gBAE1BA,IAAIA,MAAMA,GAAGA,eAAeA,CAACA,IAAIA,CAACA,CAACA;gBACnCA,MAAMA,CAACA,uBAAuBA,CAACA,MAAMA,CAACA,CAACA;YAC3CA,CAACA;YAEDA,EAAEA,CAACA,CAACA,qBAAqBA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;gBAC9BA,IAAIA,MAAMA,GAAGA,aAAaA,CAACA,IAAIA,CAACA,CAACA;gBACjCA,MAAMA,CAACA,MAAMA,IAAIA,uBAAuBA,CAACA,MAAMA,CAACA,CAACA;YACrDA,CAACA;YAEDA,EAAEA,CAACA,CAACA,gBAAaA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;gBAEtBA,IAAIA,MAAMA,GAAGA,eAAeA,CAACA,IAAIA,CAACA,CAACA;gBACnCA,MAAMA,CAACA,eAAeA,CAACA,MAAMA,CAACA,CAACA;YACnCA,CAACA;YAEDA,EAAEA,CAACA,CAACA,oBAAiBA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;gBAC1BA,IAAIA,MAAMA,GAAGA,aAAaA,CAACA,IAAIA,CAACA,CAACA;gBACjCA,MAAMA,CAACA,MAAMA,IAAIA,eAAeA,CAACA,MAAMA,CAACA,CAACA;YAC7CA,CAACA;YAEDA,EAAEA,CAACA,CAACA,uCAAuCA,CAAaA,IAAIA,CAACA,CAACA,CAACA,CAACA;gBAC5DA,IAAIA,MAAMA,GAAGA,aAAaA,CAACA,IAAIA,CAACA,CAACA;gBACjCA,IAAIA,YAAYA,GAAGA,MAAMA,IAAIA,uBAAuBA,CAACA,MAAMA,CAACA,CAACA;gBAC7DA,MAAMA,CAACA,YAAYA,KAAKA,WAAWA,GAAGA,YAAYA,GAAGA,eAAeA,CAACA,MAAMA,CAACA,CAACA;YACjFA,CAACA;YAEDA,MAAMA,CAACA,WAAWA,CAACA;QACvBA,CAACA;QAEDliB,6BAA6BA,IAAgBA;YACzCmiB,EAAEA,CAACA,CAACA,0CAA0CA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;gBACnDA,IAAIA,GAAeA,IAAIA,CAACA,MAAMA,CAACA;YACnCA,CAACA;YACDA,MAAMA,CAACA,eAAeA,CAACA,IAAIA,CAACA,CAACA;QACjCA,CAACA;QAIDniB,sCAAsCA,IAAUA;YAC5CoiB,IAAIA,GAAGA,eAAeA,CAACA,IAAIA,CAACA,CAACA;YAC7BA,IAAIA,WAAWA,GAAGA,iBAAiBA,CAACA,mBAAmBA,CAACA,IAAIA,CAACA,CAACA,CAACA;YAC/DA,EAAEA,CAACA,CAACA,mBAAmBA,CAACA,IAAIA,EAAEA,CAAkBA,CAACA,CAACA,MAAMA,IAAIA,mBAAmBA,CAACA,IAAIA,EAAEA,CAAuBA,CAACA,CAACA,MAAMA,CAACA,CAACA,CAACA;gBACpHA,UAAOA,CAACA,mBAAmBA,CAACA,kBAAkBA,CAACA,EAAEA,UAAAA,CAACA;oBAC9CA,EAAEA,CAACA,CAACA,CAACA,cAAWA,CAACA,WAAWA,EAAEA,CAACA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;wBACpCA,WAAWA,CAACA,CAACA,CAACA,IAAIA,CAACA,GAAGA,CAACA,CAACA;oBAC5BA,CAACA;gBACLA,CAACA,CAACA,CAACA;YACPA,CAACA;YACDA,MAAMA,CAACA,eAAeA,CAACA,WAAWA,CAACA,CAACA;QACxCA,CAACA;QAEDpiB,wBAAwBA,MAAcA;YAClCqiB,EAAEA,CAACA,CAACA,MAAMA,CAACA,KAAKA,GAAGA,SAAyBA,CAACA,CAACA,CAACA;gBAC3CA,IAAIA,OAAOA,GAAaA,EAAEA,CAACA;gBAC3BA,IAAIA,OAAIA,GAAGA,MAAMA,CAACA,IAAIA,CAACA;gBACvBA,UAAOA,CAACA,cAAcA,CAACA,MAAMA,CAACA,CAACA,SAASA,CAACA,KAAKA,EAAEA,UAAAA,CAACA;oBAC7CA,OAAOA,CAACA,IAAIA,CAACA,iBAAiBA,CAACA,CAACA,EAAEA,OAAIA,CAACA,CAACA,CAACA;gBAC7CA,CAACA,CAACA,CAACA;gBACHA,MAAMA,CAACA,OAAOA,CAACA;YACnBA,CAACA;YACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,MAAMA,CAACA,KAAKA,GAAGA,QAAqBA,CAACA,CAACA,CAACA;gBAC5CA,IAAIA,MAAMA,GAAGA,cAAcA,CAACA,MAAMA,CAACA,CAACA,MAAMA,CAACA;gBAC3CA,EAAEA,CAACA,CAACA,MAAMA,CAACA,CAACA,CAACA;oBACTA,MAAMA,CAACA,CAACA,MAAMA,CAACA,CAACA;gBACpBA,CAACA;YACLA,CAACA;YACDA,MAAMA,CAACA,CAACA,MAAMA,CAACA,CAACA;QACpBA,CAACA;QAIDriB,gCAAgCA,MAAcA;YAC1CsiB,MAAMA,CAACA,MAAMA,CAACA,KAAKA,GAAGA,GAAuBA,IAAIA,MAAMA,CAACA,YAAYA,CAACA,MAAMA,KAAKA,CAACA,IAAIA,MAAMA,CAACA,YAAYA,CAACA,CAACA,CAACA,CAACA,IAAIA,KAAKA,GAAqBA,CAACA;QAC/IA,CAACA;QAEDtiB,kCAAkCA,MAAcA,EAAEA,uBAA+CA;YAG7FuiB,EAAEA,CAACA,CAACA,eAAeA,IAAIA,CAAgBA,CAACA,CAACA,CAACA;gBACtCA,MAAMA,CAACA,SAASA,CAACA;YACrBA,CAACA;YAEDA,IAAIA,IAAIA,GAAGA,2BAA2BA,CAACA,MAAMA,CAACA,CAACA;YAC/CA,EAAEA,CAACA,CAACA,IAAIA,CAACA,CAACA,CAACA;gBACPA,EAAEA,CAACA,CAACA,IAAIA,CAACA,IAAIA,KAAKA,GAAuBA,CAACA,CAACA,CAACA;oBACxCA,MAAMA,CAACA,uBAAuBA,CAAoBA,IAAIA,CAACA,MAAMA,CAACA,GAAGA,UAAUA,CAACA;gBAChFA,CAACA;gBACDA,EAAEA,CAACA,CAACA,IAAIA,CAACA,IAAIA,KAAKA,GAA0BA,CAACA,CAACA,CAACA;oBAC3CA,IAAIA,UAAUA,GAAGA,uBAAuBA,CAAoBA,IAAIA,CAACA,MAAMA,CAACA,MAAMA,CAACA,MAAMA,CAACA,CAACA;oBACvFA,IAAIA,YAAYA,GAAqBA,IAAKA,CAACA,YAAYA,IAAsBA,IAAKA,CAACA,IAAIA,CAACA;oBACxFA,MAAMA,CAACA,UAAUA,GAAGA,GAAGA,GAAGA,qBAAkBA,CAACA,YAAYA,CAACA,IAAIA,CAACA,CAACA;gBACpEA,CAACA;YACLA,CAACA;QACLA,CAACA;QAEDviB,mCAAmCA,MAAcA,EAAEA,QAAcA,EAAEA,uBAA+CA;YAC9GwiB,EAAEA,CAACA,CAACA,sBAAsBA,CAACA,MAAMA,CAACA,MAAMA,CAACA,CAACA,CAACA,CAACA;gBAGxCA,EAAEA,CAACA,CAACA,eAAeA,IAAIA,CAAgBA,CAACA,CAACA,CAACA;oBACtCA,MAAMA,CAACA,SAASA,CAACA;gBACrBA,CAACA;gBACDA,MAAMA,CAACA,UAAUA,GAAGA,qBAAkBA,CAACA,MAAMA,CAACA,IAAIA,CAACA,CAACA;YACxDA,CAACA;YACDA,IAAIA,IAAIA,GAAGA,QAAQA,CAACA;YACpBA,IAAIA,eAAeA,GAAGA,iBAAiBA,CAACA,MAAMA,CAACA,CAACA;YAChDA,OAAOA,IAAIA,EAAEA,CAACA;gBACVA,EAAEA,CAACA,CAACA,CAACA,IAAIA,CAACA,IAAIA,KAAKA,GAA4BA,IAAIA,IAAIA,CAACA,IAAIA,KAAKA,GAA0BA,CAACA,IAAIA,eAAeA,CAACA,IAAIA,CAACA,KAAKA,eAAeA,CAACA,CAACA,CAACA;oBACxIA,MAAMA,CAACA,uBAAuBA,CAAsCA,IAAIA,CAACA,GAAGA,GAAGA,GAAGA,qBAAkBA,CAACA,MAAMA,CAACA,IAAIA,CAACA,CAACA;gBACtHA,CAACA;gBACDA,IAAIA,GAAGA,IAAIA,CAACA,MAAMA,CAACA;YACvBA,CAACA;QACLA,CAACA;QAEDxiB,uCAAuCA,IAAgBA,EAAEA,uBAA+CA;YACpGyiB,IAAIA,MAAMA,GAAGA,YAAYA,CAACA,IAAIA,CAACA,CAACA,cAAcA,IAAIA,CAACA,oBAAiBA,CAACA,IAAIA,CAACA,GAAGA,eAAeA,CAACA,IAAIA,CAACA,MAAMA,CAACA,GAAGA,SAASA,CAACA,CAACA;YACvHA,EAAEA,CAACA,CAACA,MAAMA,CAACA,CAACA,CAACA;gBAGTA,EAAEA,CAACA,CAACA,MAAMA,CAACA,MAAMA,CAACA,CAACA,CAACA;oBAChBA,MAAMA,CAACA,yBAAyBA,CAACA,MAAMA,EAAEA,IAAIA,CAACA,MAAMA,EAAEA,uBAAuBA,CAACA,CAACA;gBACnFA,CAACA;gBAIDA,IAAIA,YAAYA,GAAGA,sCAAsCA,CAACA,MAAMA,CAACA,CAACA;gBAClEA,EAAEA,CAACA,CAACA,MAAMA,KAAKA,YAAYA,IAAIA,CAACA,CAACA,YAAYA,CAACA,KAAKA,GAAGA,GAA0BA,CAACA,CAACA,CAACA,CAACA;oBAChFA,MAAMA,CAACA,yBAAyBA,CAACA,YAAYA,EAAEA,IAAIA,CAACA,MAAMA,EAAEA,uBAAuBA,CAACA,CAACA;gBACzFA,CAACA;gBAEDA,EAAEA,CAACA,CAACA,MAAMA,CAACA,KAAKA,GAAGA,OAAiBA,CAACA,CAACA,CAACA;oBACnCA,MAAMA,CAACA,wBAAwBA,CAACA,MAAMA,EAAEA,uBAAuBA,CAACA,CAACA;gBACrEA,CAACA;YACLA,CAACA;QACLA,CAACA;QAEDziB,iCAAiCA,IAAUA;YACvC0iB,MAAMA,CAACA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA,CAACA;gBAChBA,KAAKA,GAAkCA,CAACA;gBACxCA,KAAKA,GAAuBA,CAACA;gBAC7BA,KAAKA,GAA0BA,CAACA;gBAChCA,KAAKA,GAA0BA,CAACA;gBAChCA,KAAKA,GAA0BA;oBAC3BA,MAAMA,CAACA,sBAAsBA,CAACA,eAAeA,CAACA,IAAIA,CAACA,CAACA,CAACA;gBACzDA,KAAKA,GAA4BA;oBAC7BA,IAAIA,YAAYA,GAAuBA,IAAKA,CAACA,YAAYA,CAACA;oBAC1DA,MAAMA,CAACA,YAAYA,IAAIA,UAAOA,CAACA,YAAYA,CAACA,QAAQA,EAAEA,uBAAuBA,CAACA,CAACA;gBACnFA,KAAKA,GAA2BA;oBAC5BA,MAAMA,CAAoBA,IAAKA,CAACA,UAAUA,IAAuBA,IAAKA,CAACA,UAAUA,CAACA,IAAIA,KAAKA,EAAqBA,GAAGA,sBAAsBA,CAACA,eAAeA,CAACA,IAAIA,CAACA,CAACA,GAAGA,IAAIA,CAACA;YAChLA,CAACA;YACDA,MAAMA,CAACA,KAAKA,CAACA;QACjBA,CAACA;QAED1iB,mDAAmDA,IAA6BA;YAC5E2iB,EAAEA,CAACA,CAACA,IAAIA,CAACA,MAAMA,CAACA,IAAIA,KAAKA,GAAqBA,IAAIA,CAACA,0CAAuCA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;gBAE/FA,MAAMA,CAACA,KAAKA,CAACA;YACjBA,CAACA;YACDA,MAAMA,CAACA,sBAAsBA,CAACA,eAAeA,CAACA,IAAIA,CAACA,CAACA,CAACA;QACzDA,CAACA;QAED3iB,gCAAgCA,MAAcA;YAC1C4iB,IAAIA,MAAMA,GAAGA,YAAYA,CAACA,MAAMA,CAACA,CAACA;YAElCA,MAAMA,CAACA,MAAMA,KAAKA,aAAaA,IAAIA,MAAMA,CAACA,KAAKA,GAAGA,MAAiBA,IAAIA,CAACA,gCAAgCA,CAACA,MAAMA,CAACA,CAACA;QACrHA,CAACA;QAED5iB,0CAA0CA,CAASA;YAC/C6iB,MAAMA,CAACA,iBAAiBA,CAACA,CAACA,CAACA,IAAIA,CAACA,CAACA,mBAAmBA,CAACA;QACzDA,CAACA;QAED7iB,sCAAsCA,IAAUA,EAAEA,aAAuBA;YACrE8iB,EAAEA,CAACA,CAACA,2BAAwBA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;gBACjCA,IAAIA,MAAMA,GAAGA,eAAeA,CAACA,IAAIA,CAACA,CAACA;gBACnCA,EAAEA,CAACA,CAACA,cAAcA,CAACA,MAAMA,CAACA,CAACA,UAAUA,CAACA,CAACA,CAACA;oBACpCA,MAAMA,CAACA,IAAIA,CAACA;gBAChBA,CAACA;YACLA,CAACA;YAEDA,EAAEA,CAACA,CAACA,aAAaA,CAACA,CAACA,CAACA;gBAChBA,MAAMA,CAACA,eAAYA,CAACA,IAAIA,EAAEA,UAAAA,IAAIA,IAAIA,OAAAA,4BAA4BA,CAACA,IAAIA,EAAEA,aAAaA,CAACA,EAAjDA,CAAiDA,CAACA,CAACA;YACzFA,CAACA;YACDA,MAAMA,CAACA,KAAKA,CAACA;QACjBA,CAACA;QAED9iB,oCAAoCA,IAA6BA;YAC7D+iB,EAAEA,CAACA,CAACA,gBAAaA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;gBAC3BA,IAAIA,MAAMA,GAAGA,eAAeA,CAACA,IAAIA,CAACA,CAACA;gBACnCA,IAAIA,kBAAkBA,GAAGA,qBAAqBA,CAACA,MAAMA,CAACA,CAACA;gBAOvDA,MAAMA,CAACA,kBAAkBA,CAACA,MAAMA,GAAGA,CAACA;oBAMhCA,CAACA,kBAAkBA,CAACA,MAAMA,KAAKA,CAACA,IAAIA,kBAAkBA,CAACA,CAACA,CAACA,CAACA,WAAWA,KAAKA,IAAIA,CAACA,CAACA;YACxFA,CAACA;YACDA,MAAMA,CAACA,KAAKA,CAACA;QACjBA,CAACA;QAED/iB,2BAA2BA,IAAUA;YACjCgjB,MAAMA,CAACA,YAAYA,CAACA,IAAIA,CAACA,CAACA,KAAKA,CAACA;QACpCA,CAACA;QAEDhjB,4BAA4BA,IAAgBA;YACxCijB,uBAAuBA,CAAkBA,IAAIA,CAACA,MAAMA,CAACA,CAACA;YACtDA,MAAMA,CAACA,YAAYA,CAACA,IAAIA,CAACA,CAACA,eAAeA,CAACA;QAC9CA,CAACA;QAEDjjB,0BAA0BA,IAAqEA;YAC3FkjB,EAAEA,CAACA,CAACA,IAAIA,CAACA,IAAIA,KAAKA,GAAqBA,CAACA,CAACA,CAACA;gBACtCA,MAAMA,CAACA,kBAAkBA,CAAaA,IAAIA,CAACA,CAACA;YAChDA,CAACA;YAEDA,IAAIA,MAAMA,GAAGA,YAAYA,CAACA,IAAIA,CAACA,CAACA,cAAcA,CAACA;YAC/CA,EAAEA,CAACA,CAACA,MAAMA,IAAIA,CAACA,MAAMA,CAACA,KAAKA,GAAGA,CAAsBA,CAACA,CAACA,CAACA,CAACA;gBAEpDA,EAAEA,CAACA,CAACA,yBAAsBA,CAACA,MAAMA,CAACA,gBAAgBA,CAACA,MAAMA,CAACA,CAACA,CAACA,CAACA;oBACzDA,MAAMA,CAACA,kBAAkBA,CAAaA,MAAMA,CAACA,gBAAgBA,CAACA,CAACA;gBACnEA,CAACA;YACLA,CAACA;YAEDA,MAAMA,CAACA,SAASA,CAACA;QACrBA,CAACA;QAEDljB,gCAAgCA,WAA0DA,EAAEA,oBAA0BA,EAAEA,KAAsBA,EAAEA,MAAoBA;YAEhKmjB,IAAIA,MAAMA,GAAGA,eAAeA,CAACA,WAAWA,CAACA,CAACA;YAC1CA,IAAIA,IAAIA,GAAGA,MAAMA,IAAIA,CAACA,CAACA,MAAMA,CAACA,KAAKA,GAAGA,CAACA,IAAuBA,GAAGA,MAAqBA,CAACA,CAACA;kBAClFA,eAAeA,CAACA,MAAMA,CAACA;kBACvBA,WAAWA,CAACA;YAElBA,uBAAuBA,EAAEA,CAACA,gBAAgBA,CAACA,IAAIA,EAAEA,MAAMA,EAAEA,oBAAoBA,EAAEA,KAAKA,CAACA,CAACA;QAC1FA,CAACA;QAEDnjB,+CAA+CA,oBAA0CA,EAAEA,oBAA0BA,EAAEA,KAAsBA,EAAEA,MAAoBA;YAC/JojB,IAAIA,SAASA,GAAGA,2BAA2BA,CAACA,oBAAoBA,CAACA,CAACA;YAClEA,uBAAuBA,EAAEA,CAACA,gBAAgBA,CAACA,wBAAwBA,CAACA,SAASA,CAACA,EAAEA,MAAMA,EAAEA,oBAAoBA,EAAEA,KAAKA,CAACA,CAACA;QACzHA,CAACA;QAEDpjB,+BAA+BA,IAAgBA,EAAEA,oBAA0BA,EAAEA,KAAsBA,EAAEA,MAAoBA;YACrHqjB,IAAIA,IAAIA,GAAGA,mBAAmBA,CAACA,IAAIA,CAACA,CAACA;YACrCA,uBAAuBA,EAAEA,CAACA,gBAAgBA,CAACA,IAAIA,EAAEA,MAAMA,EAAEA,oBAAoBA,EAAEA,KAAKA,CAACA,CAACA;QAC1FA,CAACA;QAEDrjB,uBAAuBA,IAAYA;YAC/BsjB,MAAMA,CAACA,cAAWA,CAACA,OAAOA,EAAEA,IAAIA,CAACA,CAACA;QACtCA,CAACA;QAEDtjB,6BAA6BA,QAAcA,EAAEA,IAAYA;YACrDujB,QAAKA,CAACA,MAAMA,CAACA,CAACA,oBAAiBA,CAACA,QAAQA,CAACA,EAAEA,wDAAwDA,CAACA,CAACA;YACrGA,MAAMA,CAACA,CAACA,CAACA,WAAWA,CAACA,QAAQA,EAAEA,IAAIA,EAAEA,MAAiBA,EAA0BA,SAASA,EAAcA,SAASA,CAACA,CAACA;QACtHA,CAACA;QAEDvjB,kCAAkCA,CAAaA;YAC3CwjB,QAAKA,CAACA,MAAMA,CAACA,CAACA,oBAAiBA,CAACA,CAACA,CAACA,CAACA,CAACA;YAEpCA,IAAIA,qCAAqCA,GACrCA,CAACA,CAACA,MAAMA,CAACA,IAAIA,KAAKA,GAAyBA,IAAIA,CAACA,CAACA,CAACA,MAAMA,CAACA,IAAIA,KAAKA,GAA8BA,IAA0BA,CAACA,CAACA,MAAOA,CAACA,IAAIA,KAAKA,CAACA,CAACA,CAACA;YAEpJA,IAAIA,MAAMA,GACNA,CAACA,qCAAqCA,GAAGA,eAAeA,CAACA,CAACA,CAACA,MAAMA,CAACA,GAAGA,SAASA,CAACA;gBAC/EA,YAAYA,CAACA,CAACA,CAACA,CAACA,cAAcA;gBAC9BA,WAAWA,CAACA,CAACA,EAAEA,CAACA,CAACA,IAAIA,EAAEA,MAAiBA,GAAGA,OAAiBA,EAA0BA,SAASA,EAAcA,SAASA,CAACA,CAACA;YAE5HA,IAAIA,YAAYA,GACZA,MAAMA;gBACNA,CAACA,MAAMA,CAACA,KAAKA,GAAGA,CAA+BA,CAACA;gBAChDA,MAAMA,CAACA,gBAAgBA,CAACA,MAAMA,CAACA,IAAIA,KAAKA,GAAsBA,CAACA;YAEnEA,EAAEA,CAACA,CAACA,YAAYA,CAACA,CAACA,CAACA;gBAGfA,cAAcA,CAACA,MAAMA,CAACA,CAACA;gBACvBA,MAAMA,CAACA,MAAMA,CAACA,EAAEA,CAACA;YACrBA,CAACA;YACDA,MAAMA,CAACA,SAASA,CAACA;QACrBA,CAACA;QAEDxjB,2CAA2CA,YAAkBA,EAAEA,aAAqBA;YAChFyjB,EAAEA,CAACA,CAACA,YAAYA,KAAKA,WAAWA,CAACA,CAACA,CAACA;gBAC/BA,MAAMA,CAACA,WAAWA,CAACA;YACvBA,CAACA;YAEDA,IAAIA,SAASA,GAAGA,sBAAsBA,CAACA,YAAYA,CAACA,CAACA;YACrDA,EAAEA,CAACA,CAACA,CAACA,SAASA,CAACA,CAACA,CAACA;gBACbA,MAAMA,CAACA,WAAWA,CAACA;YACvBA,CAACA;YAEDA,IAAIA,qBAAqBA,GAAGA,yBAAyBA,CAACA,SAASA,EAAEA,aAAaA,CAACA,CAACA;YAChFA,MAAMA,CAACA,4BAA4BA,CAACA,qBAAqBA,CAACA,CAACA;QAC/DA,CAACA;QAEDzjB;YACI0jB,MAAMA,CAACA;gBACHA,6BAA6BA,+BAAAA;gBAC7BA,uBAAuBA,yBAAAA;gBACvBA,aAAaA,eAAAA;gBACbA,4BAA4BA,8BAAAA;gBAC5BA,iBAAiBA,mBAAAA;gBACjBA,yCAAyCA,2CAAAA;gBACzCA,oBAAoBA,sBAAAA;gBACpBA,0BAA0BA,4BAAAA;gBAC1BA,sBAAsBA,wBAAAA;gBACtBA,qCAAqCA,uCAAAA;gBACrCA,qBAAqBA,uBAAAA;gBACrBA,kBAAkBA,oBAAAA;gBAClBA,mBAAmBA,qBAAAA;gBACnBA,gBAAgBA,kBAAAA;gBAChBA,mBAAmBA,qBAAAA;gBACnBA,oBAAoBA,sBAAAA;gBACpBA,wBAAwBA,0BAAAA;aAC3BA,CAACA;QACNA,CAACA;QAED1jB;YAEI2jB,UAAOA,CAACA,IAAIA,CAACA,cAAcA,EAAEA,EAAEA,UAAAA,IAAIA;gBAC/BA,iBAAcA,CAACA,IAAIA,CAACA,CAACA;YACzBA,CAACA,CAACA,CAACA;YAGHA,UAAOA,CAACA,IAAIA,CAACA,cAAcA,EAAEA,EAAEA,UAAAA,IAAIA;gBAC/BA,EAAEA,CAACA,CAACA,CAACA,mBAAgBA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;oBAC1BA,gBAAgBA,CAACA,OAAOA,EAAEA,IAAIA,CAACA,MAAMA,CAACA,CAACA;gBAC3CA,CAACA;YACLA,CAACA,CAACA,CAACA;YAGHA,cAAcA,CAACA,eAAeA,CAACA,CAACA,IAAIA,GAAGA,aAAaA,CAACA;YACrDA,cAAcA,CAACA,eAAeA,CAACA,CAACA,IAAIA,GAAGA,aAAaA,CAACA,YAAYA,CAACA,CAACA;YACnEA,cAAcA,CAACA,aAAaA,CAACA,CAACA,IAAIA,GAAGA,WAAWA,CAACA;YACjDA,OAAOA,CAACA,eAAeA,CAACA,IAAIA,CAACA,GAAGA,eAAeA,CAACA;YAEhDA,iBAAiBA,GAAGA,mBAAmBA,CAACA,OAAOA,CAACA,CAACA;YACjDA,eAAeA,GAAGA,qBAAqBA,CAACA,iBAAiBA,EAAYA,CAACA,CAACA,CAACA;YACxEA,gBAAgBA,GAAGA,aAAaA,CAACA,QAAQA,CAACA,CAACA;YAC3CA,kBAAkBA,GAAGA,aAAaA,CAACA,UAAUA,CAACA,CAACA;YAC/CA,gBAAgBA,GAAGA,aAAaA,CAACA,QAAQA,CAACA,CAACA;YAC3CA,gBAAgBA,GAAGA,aAAaA,CAACA,QAAQA,CAACA,CAACA;YAC3CA,iBAAiBA,GAAGA,aAAaA,CAACA,SAASA,CAACA,CAACA;YAC7CA,gBAAgBA,GAAGA,aAAaA,CAACA,QAAQA,CAACA,CAACA;YAC3CA,iCAAiCA,GAAGA,qBAAqBA,CAACA,mBAAmBA,CAACA,yBAAyBA,CAACA,EAAEA,CAACA,CAACA,CAACA;YAC7GA,wBAAwBA,GAAGA,aAAaA,CAACA,gBAAgBA,CAACA,CAACA;YAC3DA,2BAA2BA,GAAGA,aAAaA,CAACA,mBAAmBA,CAACA,CAACA;YACjEA,yBAAyBA,GAAGA,aAAaA,CAACA,iBAAiBA,CAACA,CAACA;YAC7DA,4BAA4BA,GAAGA,aAAaA,CAACA,oBAAoBA,CAACA,CAACA;YAInEA,EAAEA,CAACA,CAACA,eAAeA,IAAIA,CAAgBA,CAACA,CAACA,CAACA;gBACtCA,8BAA8BA,GAAGA,aAAaA,CAACA,sBAAsBA,CAACA,CAACA;gBACvEA,kBAAkBA,GAAGA,aAAaA,CAACA,QAAQA,CAACA,CAACA;gBAC7CA,+BAA+BA,GAAGA,oBAAoBA,CAACA,QAAQA,CAACA,CAACA;gBACjEA,kBAAkBA,GAAGA,aAAaA,CAACA,UAAUA,EAAYA,CAACA,CAACA,CAACA;YAChEA,CAACA;YACDA,IAAIA,CAACA,CAACA;gBACFA,8BAA8BA,GAAGA,WAAWA,CAACA;gBAK7CA,kBAAkBA,GAAGA,mBAAmBA,CAACA,SAASA,EAAEA,YAAYA,EAAEA,UAAUA,EAAEA,UAAUA,EAAEA,SAASA,EAAEA,SAASA,CAACA,CAACA;gBAChHA,+BAA+BA,GAAGA,SAASA,CAACA;YAChDA,CAACA;YAEDA,YAAYA,GAAGA,eAAeA,CAACA,OAAOA,CAACA,CAACA;QAC5CA,CAACA;QAID3jB,gCAAgCA,IAAUA;YACtC4jB,EAAEA,CAACA,CAACA,CAACA,IAAIA,CAACA,UAAUA,CAACA,CAACA,CAACA;gBACnBA,MAAMA,CAACA,KAAKA,CAACA;YACjBA,CAACA;YACDA,EAAEA,CAACA,CAACA,CAACA,qBAAkBA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;gBAC5BA,MAAMA,CAACA,kBAAkBA,CAACA,IAAIA,EAAEA,cAAWA,CAACA,6BAA6BA,CAACA,CAACA;YAC/EA,CAACA;YACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,eAAeA,GAAGA,CAAgBA,CAACA,CAACA,CAACA;gBAC1CA,MAAMA,CAACA,kBAAkBA,CAACA,IAAIA,EAAEA,cAAWA,CAACA,oEAAoEA,CAACA,CAACA;YACtHA,CAACA;YACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,IAAIA,CAACA,IAAIA,KAAKA,GAAsBA,IAAIA,IAAIA,CAACA,IAAIA,KAAKA,GAAsBA,CAACA,CAACA,CAACA;gBACpFA,IAAIA,SAASA,GAAGA,6BAA0BA,CAAoBA,IAAIA,CAACA,MAAOA,CAACA,OAAOA,EAAuBA,IAAIA,CAACA,CAACA;gBAC/GA,EAAEA,CAACA,CAACA,SAASA,CAACA,aAAaA,CAACA,UAAUA,IAAIA,IAAIA,KAAKA,SAASA,CAACA,cAAcA,CAACA,CAACA,CAACA;oBAC1EA,MAAMA,CAACA,kBAAkBA,CAACA,IAAIA,EAAEA,cAAWA,CAACA,gFAAgFA,CAACA,CAACA;gBAClIA,CAACA;YACLA,CAACA;YACDA,MAAMA,CAACA,KAAKA,CAACA;QACjBA,CAACA;QAED5jB,+BAA+BA,IAAUA;YACrC6jB,MAAMA,CAACA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA,CAACA;gBAChBA,KAAKA,GAAsBA,CAACA;gBAC5BA,KAAKA,GAAsBA,CAACA;gBAC5BA,KAAKA,GAAsBA,CAACA;gBAC5BA,KAAKA,GAA8BA,CAACA;gBACpCA,KAAKA,GAA4BA,CAACA;gBAClCA,KAAKA,GAA4BA,CAACA;gBAClCA,KAAKA,GAA0BA,CAACA;gBAChCA,KAAKA,GAAyBA,CAACA;gBAC/BA,KAAKA,GAA2BA,CAACA;gBACjCA,KAAKA,GAA+BA,CAACA;gBACrCA,KAAKA,GAA4BA,CAACA;gBAClCA,KAAKA,GAA0BA,CAACA;gBAChCA,KAAKA,GAA4BA,CAACA;gBAClCA,KAAKA,GAA8BA,CAACA;gBACpCA,KAAKA,GAA+BA,CAACA;gBACrCA,KAAKA,GAA4BA,CAACA;gBAClCA,KAAKA,GAAkCA,CAACA;gBACxCA,KAAKA,GAA4BA,CAACA;gBAClCA,KAAKA,GAA2BA,CAACA;gBACjCA,KAAKA,GAAoBA;oBACrBA,KAAKA,CAACA;gBACVA;oBACIA,MAAMA,CAACA,KAAKA,CAACA;YACrBA,CAACA;YAEDA,EAAEA,CAACA,CAACA,CAACA,IAAIA,CAACA,SAASA,CAACA,CAACA,CAACA;gBAClBA,MAAMA,CAACA;YACXA,CAACA;YAEDA,IAAIA,UAAgBA,EAAEA,WAAiBA,EAAEA,aAAmBA,EAAEA,WAAiBA,CAACA;YAChFA,IAAIA,KAAKA,GAAGA,CAACA,CAACA;YACdA,GAAGA,CAACA,CAAiBA,UAAcA,EAAdA,KAAAA,IAAIA,CAACA,SAASA,kBAA9BA,OAAYA,EAAZA,IAA8BA,CAACA;gBAA/BA,IAAIA,QAAQA,SAAAA;gBACbA,MAAMA,CAACA,CAACA,QAAQA,CAACA,IAAIA,CAACA,CAACA,CAACA;oBACpBA,KAAKA,GAAwBA,CAACA;oBAC9BA,KAAKA,GAA2BA,CAACA;oBACjCA,KAAKA,GAAyBA;wBAC1BA,IAAIA,IAAIA,SAAQA,CAACA;wBACjBA,EAAEA,CAACA,CAACA,QAAQA,CAACA,IAAIA,KAAKA,GAAwBA,CAACA,CAACA,CAACA;4BAC7CA,IAAIA,GAAGA,QAAQA,CAACA;wBACpBA,CAACA;wBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,QAAQA,CAACA,IAAIA,KAAKA,GAA2BA,CAACA,CAACA,CAACA;4BACrDA,IAAIA,GAAGA,WAAWA,CAACA;4BACnBA,aAAaA,GAAGA,QAAQA,CAACA;wBAC7BA,CAACA;wBACDA,IAAIA,CAACA,CAACA;4BACFA,IAAIA,GAAGA,SAASA,CAACA;4BACjBA,WAAWA,GAAGA,QAAQA,CAACA;wBAC3BA,CAACA;wBAEDA,EAAEA,CAACA,CAACA,KAAKA,GAAGA,GAA+BA,CAACA,CAACA,CAACA;4BAC1CA,MAAMA,CAACA,kBAAkBA,CAACA,QAAQA,EAAEA,cAAWA,CAACA,mCAAmCA,CAACA,CAACA;wBACzFA,CAACA;wBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,KAAKA,GAAGA,GAAgBA,CAACA,CAACA,CAACA;4BAChCA,MAAMA,CAACA,kBAAkBA,CAACA,QAAQA,EAAEA,cAAWA,CAACA,mCAAmCA,EAAEA,IAAIA,EAAEA,QAAQA,CAACA,CAACA;wBACzGA,CAACA;wBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,IAAIA,CAACA,MAAMA,CAACA,IAAIA,KAAKA,GAAsBA,IAAIA,IAAIA,CAACA,MAAMA,CAACA,IAAIA,KAAKA,GAAqBA,CAACA,CAACA,CAACA;4BACjGA,MAAMA,CAACA,kBAAkBA,CAACA,QAAQA,EAAEA,cAAWA,CAACA,6CAA6CA,EAAEA,IAAIA,CAACA,CAACA;wBACzGA,CAACA;wBACDA,KAAKA,IAAIA,iBAAcA,CAACA,QAAQA,CAACA,IAAIA,CAACA,CAACA;wBACvCA,KAAKA,CAACA;oBAEVA,KAAKA,GAAwBA;wBACzBA,EAAEA,CAACA,CAACA,KAAKA,GAAGA,GAAgBA,CAACA,CAACA,CAACA;4BAC3BA,MAAMA,CAACA,kBAAkBA,CAACA,QAAQA,EAAEA,cAAWA,CAACA,wBAAwBA,EAAEA,QAAQA,CAACA,CAACA;wBACxFA,CAACA;wBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,IAAIA,CAACA,MAAMA,CAACA,IAAIA,KAAKA,GAAsBA,IAAIA,IAAIA,CAACA,MAAMA,CAACA,IAAIA,KAAKA,GAAqBA,CAACA,CAACA,CAACA;4BACjGA,MAAMA,CAACA,kBAAkBA,CAACA,QAAQA,EAAEA,cAAWA,CAACA,6CAA6CA,EAAEA,QAAQA,CAACA,CAACA;wBAC7GA,CAACA;wBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,IAAIA,CAACA,IAAIA,KAAKA,GAAoBA,CAACA,CAACA,CAACA;4BAC1CA,MAAMA,CAACA,kBAAkBA,CAACA,QAAQA,EAAEA,cAAWA,CAACA,wCAAwCA,EAAEA,QAAQA,CAACA,CAACA;wBACxGA,CAACA;wBACDA,KAAKA,IAAIA,GAAgBA,CAACA;wBAC1BA,UAAUA,GAAGA,QAAQA,CAACA;wBACtBA,KAAKA,CAACA;oBAEVA,KAAKA,EAAwBA;wBACzBA,EAAEA,CAACA,CAACA,KAAKA,GAAGA,CAAgBA,CAACA,CAACA,CAACA;4BAC3BA,MAAMA,CAACA,kBAAkBA,CAACA,QAAQA,EAAEA,cAAWA,CAACA,wBAAwBA,EAAEA,QAAQA,CAACA,CAACA;wBACxFA,CAACA;wBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,KAAKA,GAAGA,CAAiBA,CAACA,CAACA,CAACA;4BACjCA,MAAMA,CAACA,kBAAkBA,CAACA,QAAQA,EAAEA,cAAWA,CAACA,mCAAmCA,EAAEA,QAAQA,EAAEA,SAASA,CAACA,CAACA;wBAC9GA,CAACA;wBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,IAAIA,CAACA,MAAMA,CAACA,IAAIA,KAAKA,GAA2BA,CAACA,CAACA,CAACA;4BACxDA,MAAMA,CAACA,kBAAkBA,CAACA,QAAQA,EAAEA,cAAWA,CAACA,4CAA4CA,EAAEA,QAAQA,CAACA,CAACA;wBAC5GA,CAACA;wBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,IAAIA,CAACA,IAAIA,KAAKA,GAAoBA,CAACA,CAACA,CAACA;4BAC1CA,MAAMA,CAACA,kBAAkBA,CAACA,QAAQA,EAAEA,cAAWA,CAACA,wCAAwCA,EAAEA,QAAQA,CAACA,CAACA;wBACxGA,CAACA;wBACDA,KAAKA,IAAIA,CAAgBA,CAACA;wBAC1BA,KAAKA,CAACA;oBAEVA,KAAKA,GAAyBA;wBAC1BA,EAAEA,CAACA,CAACA,KAAKA,GAAGA,CAAiBA,CAACA,CAACA,CAACA;4BAC5BA,MAAMA,CAACA,kBAAkBA,CAACA,QAAQA,EAAEA,cAAWA,CAACA,wBAAwBA,EAAEA,SAASA,CAACA,CAACA;wBACzFA,CAACA;wBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,IAAIA,CAACA,MAAMA,CAACA,IAAIA,KAAKA,GAA2BA,CAACA,CAACA,CAACA;4BACxDA,MAAMA,CAACA,kBAAkBA,CAACA,QAAQA,EAAEA,cAAWA,CAACA,4CAA4CA,EAAEA,SAASA,CAACA,CAACA;wBAC7GA,CAACA;wBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,IAAIA,CAACA,IAAIA,KAAKA,GAAoBA,CAACA,CAACA,CAACA;4BAC1CA,MAAMA,CAACA,kBAAkBA,CAACA,QAAQA,EAAEA,cAAWA,CAACA,wCAAwCA,EAAEA,SAASA,CAACA,CAACA;wBACzGA,CAACA;wBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,qBAAkBA,CAACA,IAAIA,CAACA,MAAMA,CAACA,IAAIA,IAAIA,CAACA,MAAMA,CAACA,IAAIA,KAAKA,GAAsBA,CAACA,CAACA,CAACA;4BACtFA,MAAMA,CAACA,kBAAkBA,CAACA,QAAQA,EAAEA,cAAWA,CAACA,+DAA+DA,CAACA,CAACA;wBACrHA,CAACA;wBACDA,KAAKA,IAAIA,CAAiBA,CAACA;wBAC3BA,WAAWA,GAAGA,QAAQA,CAAAA;wBACtBA,KAAKA,CAACA;gBACdA,CAACA;aACJA;YAEDA,EAAEA,CAACA,CAACA,IAAIA,CAACA,IAAIA,KAAKA,GAAsBA,CAACA,CAACA,CAACA;gBACvCA,EAAEA,CAACA,CAACA,KAAKA,GAAGA,GAAgBA,CAACA,CAACA,CAACA;oBAC3BA,MAAMA,CAACA,kBAAkBA,CAACA,UAAUA,EAAEA,cAAWA,CAACA,sDAAsDA,EAAEA,QAAQA,CAACA,CAACA;gBACxHA,CAACA;gBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,KAAKA,GAAGA,EAAmBA,CAACA,CAACA,CAACA;oBACnCA,MAAMA,CAACA,kBAAkBA,CAACA,aAAaA,EAAEA,cAAWA,CAACA,sDAAsDA,EAAEA,WAAWA,CAACA,CAACA;gBAC9HA,CAACA;gBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,KAAKA,GAAGA,EAAiBA,CAACA,CAACA,CAACA;oBACjCA,MAAMA,CAACA,kBAAkBA,CAACA,WAAWA,EAAEA,cAAWA,CAACA,sDAAsDA,EAAEA,SAASA,CAACA,CAACA;gBAC1HA,CAACA;YACLA,CAACA;YACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,CAACA,IAAIA,CAACA,IAAIA,KAAKA,GAA4BA,IAAIA,IAAIA,CAACA,IAAIA,KAAKA,GAAkCA,CAACA,IAAIA,KAAKA,GAAGA,CAAiBA,CAACA,CAACA,CAACA;gBACrIA,MAAMA,CAACA,kBAAkBA,CAACA,WAAWA,EAAEA,cAAWA,CAACA,4DAA4DA,EAAEA,SAASA,CAACA,CAACA;YAChIA,CAACA;YACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,IAAIA,CAACA,IAAIA,KAAKA,GAA+BA,IAAIA,KAAKA,GAAGA,CAAiBA,CAACA,CAACA,CAACA;gBAClFA,MAAMA,CAACA,kBAAkBA,CAACA,WAAWA,EAAEA,cAAWA,CAACA,+DAA+DA,EAAEA,SAASA,CAACA,CAACA;YACnIA,CAACA;YACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,IAAIA,CAACA,IAAIA,KAAKA,GAAoBA,IAAIA,CAACA,KAAKA,GAAGA,GAA+BA,CAACA,IAAIA,mBAAgBA,CAAwBA,IAAKA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;gBAC9IA,MAAMA,CAACA,kBAAkBA,CAACA,IAAIA,EAAEA,cAAWA,CAACA,iDAAiDA,CAACA,CAACA;YACnGA,CAACA;QACLA,CAACA;QAED7jB,gDAAgDA,IAAqBA;YACjE8jB,EAAEA,CAACA,CAACA,IAAIA,IAAIA,IAAIA,CAACA,gBAAgBA,CAACA,CAACA,CAACA;gBAChCA,IAAIA,KAAKA,GAAGA,IAAIA,CAACA,GAAGA,GAAGA,GAAGA,CAACA,MAAMA,CAACA;gBAClCA,IAAIA,GAAGA,GAAGA,IAAIA,CAACA,GAAGA,CAACA;gBACnBA,IAAIA,UAAUA,GAAGA,sBAAmBA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA,CAACA;gBAC9CA,MAAMA,CAACA,iBAAiBA,CAACA,UAAUA,EAAEA,KAAKA,EAAEA,GAAGA,GAAGA,KAAKA,EAAEA,cAAWA,CAACA,0BAA0BA,CAACA,CAACA;YACrGA,CAACA;QACLA,CAACA;QAED9jB,uCAAuCA,IAA6BA,EAAEA,cAAmDA,EAAEA,IAAgBA;YACvI+jB,EAAEA,CAACA,CAACA,sCAAsCA,CAACA,cAAcA,CAACA,CAACA,CAACA,CAACA;gBACzDA,MAAMA,CAACA,IAAIA,CAACA;YAChBA,CAACA;YAEDA,EAAEA,CAACA,CAACA,cAAcA,IAAIA,cAAcA,CAACA,MAAMA,KAAKA,CAACA,CAACA,CAACA,CAACA;gBAChDA,IAAIA,KAAKA,GAAGA,cAAcA,CAACA,GAAGA,GAAGA,GAAGA,CAACA,MAAMA,CAACA;gBAC5CA,IAAIA,GAAGA,GAAGA,aAAUA,CAACA,IAAIA,CAACA,IAAIA,EAAEA,cAAcA,CAACA,GAAGA,CAACA,GAAGA,GAAGA,CAACA,MAAMA,CAACA;gBACjEA,MAAMA,CAACA,iBAAiBA,CAACA,IAAIA,EAAEA,KAAKA,EAAEA,GAAGA,GAAGA,KAAKA,EAAEA,cAAWA,CAACA,mCAAmCA,CAACA,CAACA;YACxGA,CAACA;QACLA,CAACA;QAED/jB,mCAAmCA,UAA2CA;YAC1EgkB,EAAEA,CAACA,CAACA,sCAAsCA,CAACA,UAAUA,CAACA,CAACA,CAACA,CAACA;gBACrDA,MAAMA,CAACA,IAAIA,CAACA;YAChBA,CAACA;YAEDA,IAAIA,qBAAqBA,GAAGA,KAAKA,CAACA;YAClCA,IAAIA,cAAcA,GAAGA,UAAUA,CAACA,MAAMA,CAACA;YAEvCA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,cAAcA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;gBACtCA,IAAIA,SAASA,GAAGA,UAAUA,CAACA,CAACA,CAACA,CAACA;gBAC9BA,EAAEA,CAACA,CAACA,SAASA,CAACA,cAAcA,CAACA,CAACA,CAACA;oBAC3BA,EAAEA,CAACA,CAACA,CAACA,KAAKA,CAACA,cAAcA,GAAGA,CAACA,CAACA,CAACA,CAACA,CAACA;wBAC7BA,MAAMA,CAACA,kBAAkBA,CAACA,SAASA,CAACA,cAAcA,EAAEA,cAAWA,CAACA,iDAAiDA,CAACA,CAACA;oBACvHA,CAACA;oBAEDA,EAAEA,CAACA,CAACA,SAASA,CAACA,aAAaA,CAACA,CAACA,CAACA;wBAC1BA,MAAMA,CAACA,kBAAkBA,CAACA,SAASA,CAACA,aAAaA,EAAEA,cAAWA,CAACA,mCAAmCA,CAACA,CAACA;oBACxGA,CAACA;oBAEDA,EAAEA,CAACA,CAACA,SAASA,CAACA,WAAWA,CAACA,CAACA,CAACA;wBACxBA,MAAMA,CAACA,kBAAkBA,CAACA,SAASA,CAACA,IAAIA,EAAEA,cAAWA,CAACA,2CAA2CA,CAACA,CAACA;oBACvGA,CAACA;gBACLA,CAACA;gBACDA,IAAIA,CAACA,EAAEA,CAACA,CAACA,SAASA,CAACA,aAAaA,IAAIA,SAASA,CAACA,WAAWA,CAACA,CAACA,CAACA;oBACxDA,qBAAqBA,GAAGA,IAAIA,CAACA;oBAE7BA,EAAEA,CAACA,CAACA,SAASA,CAACA,aAAaA,IAAIA,SAASA,CAACA,WAAWA,CAACA,CAACA,CAACA;wBACnDA,MAAMA,CAACA,kBAAkBA,CAACA,SAASA,CAACA,IAAIA,EAAEA,cAAWA,CAACA,mDAAmDA,CAACA,CAACA;oBAC/GA,CAACA;gBACLA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,EAAEA,CAACA,CAACA,qBAAqBA,CAACA,CAACA,CAACA;wBACxBA,MAAMA,CAACA,kBAAkBA,CAACA,SAASA,CAACA,IAAIA,EAAEA,cAAWA,CAACA,wDAAwDA,CAACA,CAACA;oBACpHA,CAACA;gBACLA,CAACA;YACLA,CAACA;QACLA,CAACA;QAEDhkB,6CAA6CA,IAA6BA;YAEtEikB,IAAIA,IAAIA,GAAGA,sBAAmBA,CAACA,IAAIA,CAACA,CAACA;YACrCA,MAAMA,CAACA,sBAAsBA,CAACA,IAAIA,CAACA,IAAIA,qBAAqBA,CAACA,IAAIA,CAACA,IAAIA,6BAA6BA,CAACA,IAAIA,EAAEA,IAAIA,CAACA,cAAcA,EAAEA,IAAIA,CAACA;gBAChIA,yBAAyBA,CAACA,IAAIA,CAACA,UAAUA,CAACA,IAAIA,yBAAyBA,CAACA,IAAIA,EAAEA,IAAIA,CAACA,CAACA;QAC5FA,CAACA;QAEDjkB,mCAAmCA,IAA6BA,EAAEA,IAAgBA;YAC9EkkB,EAAEA,CAACA,CAACA,IAAIA,CAACA,IAAIA,KAAKA,GAAwBA,CAACA,CAACA,CAACA;gBACzCA,IAAIA,aAAaA,GAAkBA,IAAIA,CAACA;gBACxCA,IAAIA,SAASA,GAAGA,gCAA6BA,CAACA,IAAIA,EAAEA,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,CAA0BA,CAACA,CAACA,CAACA;oBAChEA,KAAKA,CAACA,OAAOA,CAACA,CAACA;gBACnBA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,KAAKA,CAACA,MAAMA,CAACA,CAACA;gBAClBA,CAACA;YACLA,CAACA;YAEDjE,mBAAmBA,IAAUA;gBACzBkE,EAAEA,CAACA,CAACA,eAAeA,IAAIA,CAAgBA,CAACA,CAACA,CAACA;oBACtCA,KAAKA,CAACA,OAAOA,CAACA,CAACA;gBACnBA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,IAAIA,KAAKA,GAAGA,QAAQA,CAACA,iBAAiBA,CAACA,IAAIA,CAACA,CAACA;oBAC7CA,EAAEA,CAACA,CAACA,KAAKA,GAAGA,EAA4BA,CAACA,CAACA,CAACA;wBACvCA,KAAKA,CAACA,kBAAkBA,CAACA,CAACA;oBAC9BA,CAACA;oBACDA,IAAIA,CAACA,CAACA;wBACFA,KAAKA,CAACA,QAAQA,CAACA,CAACA;oBACpBA,CAACA;gBACLA,CAACA;YACLA,CAACA;YAEDlE,kCAAkCA,IAAoBA;gBAClDmE,KAAKA,CAACA,IAAIA,CAACA,CAACA;gBACZA,IAAIA,QAAQA,GAAGA,IAAIA,CAACA,QAAQA,CAACA;gBAC7BA,QAAQA,CAACA,QAAQA,EAAEA,CAACA,EAAEA,QAAQA,CAACA,MAAMA,EAAgBA,KAAKA,EAAoBA,QAAQA,CAACA,gBAAgBA,CAACA,CAACA;gBACzGA,KAAKA,CAACA,IAAIA,CAACA,CAACA;YAChBA,CAACA;YAEDnE,iCAAiCA,IAAoBA;gBACjDoE,KAAKA,CAACA,GAAGA,CAACA,CAACA;gBACXA,IAAIA,QAAQA,GAAGA,IAAIA,CAACA,QAAQA,CAACA;gBAC7BA,QAAQA,CAACA,QAAQA,EAAEA,CAACA,EAAEA,QAAQA,CAACA,MAAMA,EAAgBA,KAAKA,EAAoBA,QAAQA,CAACA,gBAAgBA,CAACA,CAACA;gBACzGA,KAAKA,CAACA,GAAGA,CAACA,CAACA;YACfA,CAACA;YAEDpE,4BAA4BA,IAAoBA;gBAC5CqE,EAAEA,CAACA,CAACA,IAAIA,CAACA,YAAYA,CAACA,CAACA,CAACA;oBACpBA,IAAIA,CAACA,IAAIA,CAACA,YAAYA,EAAgCA,KAAKA,CAACA,CAACA;oBAC7DA,KAAKA,CAACA,IAAIA,CAACA,CAACA;gBAChBA,CAACA;gBACDA,EAAEA,CAACA,CAACA,IAAIA,CAACA,cAAcA,CAACA,CAACA,CAACA;oBACtBA,KAAKA,CAACA,KAAKA,CAACA,CAACA;gBACjBA,CAACA;gBACDA,EAAEA,CAACA,CAACA,mBAAgBA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;oBAC9BA,IAAIA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA;gBACpBA,CAACA;gBACDA,IAAIA,CAACA,CAACA;oBACFA,oBAAoBA,CAACA,IAAIA,CAACA,CAACA;gBAC/BA,CAACA;gBACDA,YAAYA,CAACA,KAAKA,EAAEA,IAAIA,CAACA,WAAWA,CAACA,CAACA;YAC1CA,CAACA;YAEDrE,qCAAqCA,IAA6BA;gBAC9DsE,KAAKA,CAACA,KAAKA,CAACA,CAACA;gBACbA,IAAIA,CAA2BA,IAAKA,CAACA,UAAUA,CAACA,CAACA;YACrDA,CAACA;YAEDtE,uDAAuDA,IAAgBA;gBACnEuE,MAAMA,CAACA,CAACA,IAAIA,CAACA,IAAIA,CAACA,CAACA,CAACA;oBAChBA,KAAKA,EAAqBA,CAACA;oBAC3BA,KAAKA,GAAiCA,CAACA;oBACvCA,KAAKA,GAAmCA,CAACA;oBACzCA,KAAKA,GAAkCA,CAACA;oBACxCA,KAAKA,GAAyBA,CAACA;oBAC/BA,KAAKA,GAAkCA;wBAGnCA,MAAMA,CAACA,KAAKA,CAACA;gBACrBA,CAACA;gBACDA,MAAMA,CAACA,IAAIA,CAACA;YAChBA,CAACA;YAEDvE,4BAA4BA,QAAsBA,EAAEA,SAAkBA,EAAEA,aAAsBA;gBAC1FwE,IAAIA,GAAGA,GAAGA,CAACA,CAACA;gBACZA,IAAIA,KAAKA,GAAGA,CAACA,CAACA;gBACdA,IAAIA,MAAMA,GAAGA,QAAQA,CAACA,MAAMA,CAACA;gBAC7BA,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,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A,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,CA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,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